com.xj.anylogic.engine.presentation
Class Shape3DObject

java.lang.Object
  extended by com.xj.anylogic.engine.presentation.Shape
      extended by com.xj.anylogic.engine.presentation.Shape3DObject
All Implemented Interfaces:
com.xj.anylogic.engine.internal.Child, com.xj.anylogic.engine.internal.presentation.Accessor3D_xjal, com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal, Locatable2D, Locatable3D, java.io.Serializable, java.lang.Cloneable

public class Shape3DObject
extends Shape
implements Locatable3D, com.xj.anylogic.engine.internal.Child, com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal

Persistent 3D object shape loaded from X3D file. Also visible on 2D animation.
3D Object element enables AnyLogic users to import ready-to-use 3D objects created in some third-party 3D graphics packets into their models.
3D Object supports import of 3D objects stored in X3D and VRML files. X3D format is the XML-based file format for representing 3D computer graphics, the successor to the Virtual Reality Modeling Language (VRML).

Author:
XJ Technologies Company Ltd. www.anylogic.com
See Also:
Serialized Form

Field Summary
static int XYZ_AXIS_ORDER
           
static int YZX_AXIS_ORDER
           
static int ZXY_AXIS_ORDER
           
 
Fields inherited from class com.xj.anylogic.engine.presentation.Shape
UNKNOWN_NAME
 
Constructor Summary
Shape3DObject(Presentable presentable, boolean ispublic, double x, double y, double z, double rotation, double scale, java.lang.String packagePrefix, java.lang.String fileName, int axisOrder, boolean applyShading, double topLeftX, double topLeftY, double width, double height)
          Constructs a 3D shape with specific attributes.
 
Method Summary
 Shape3DObject clone()
          Creates and returns a copy of this shape (i.e. new shape instance).
 boolean contains(double px, double py)
          Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e. in the same system with the coordinates of this shape, x and y)
 void dispose()
          Releases resources allocated by this object, should be called on active object destroy.
 void draw(Panel panel, java.awt.Graphics2D g, java.awt.geom.AffineTransform xform, boolean publicOnly)
          Draws the object in a given context.
 Element3D_xjal get3DElement_xjal()
          This method is internal and shouldn't be accessed by user.
 java.lang.String getFilename()
          Returns the name of X3D file
 java.lang.String getFilePath_xjal()
          This method is not intended to be called by user and may be removed in the next releases
 Presentable getPresentable()
          Returns the Presentable object (ActiveObject or Experiment) where this shape belongs to, or null.
 double getScaleZ()
          Returns the scale of the shape along z axis
 double getZ()
          Returns the z coordinate of the shape.
 double getZOffset()
          Returns the offset from z coordinate of the location base.
 boolean onClickAt(double px, double py, boolean publicOnly)
          Tests if the object contains the point with the given coordinates and, if yes, executes the shape's reaction on click at that point.
 void restoreOwner(java.lang.Object owner)
          This method normally should not be called by user
This method restores owner of this object
The method is used in snapshot saving/loading
 void set3DElement_xjal(Element3D_xjal element3D)
          This method is internal and shouldn't be accessed by user.
 void setContextReference_xjal(Presentable contextReference)
          This method is internal and shouldn't be accessed by user.
 void setPos(double x, double y)
          Sets (x, y) coordinates of the shape.
 void setPos(double x, double y, double z)
          Sets coordinates of the shape
 void setRotation(double rotation)
          Sets the rotation of the shape.
 void setScale(double scale)
          Sets the scale of the object along all the axes
 void setScale(double sx, double sy)
          Sets the scales of the shape along both axes
 void setScaleX(double sx)
          Sets the scale of the shape along x axis
 void setScaleY(double sy)
          Sets the scale of the shape along y axis
 void setScaleZ(double sz)
          Sets the scale of the shape along z axis
 void setVisible(boolean visible)
          Sets the visibility of the shape.
 void setX(double x)
          Sets the x coordinate of the shape
 void setY(double y)
          Sets the y coordinate of the shape
 void setZ(double z)
          Sets the z coordinate of the object
 
Methods inherited from class com.xj.anylogic.engine.presentation.Shape
canHandleClick, getGroup, getName, getRotation, getScaleX, getScaleY, getX, getY, isVisible, onClick
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.xj.anylogic.engine.Locatable2D
getX, getY
 

Field Detail

XYZ_AXIS_ORDER

public static final int XYZ_AXIS_ORDER
See Also:
Constant Field Values

YZX_AXIS_ORDER

public static final int YZX_AXIS_ORDER
See Also:
Constant Field Values

ZXY_AXIS_ORDER

public static final int ZXY_AXIS_ORDER
See Also:
Constant Field Values
Constructor Detail

Shape3DObject

public Shape3DObject(Presentable presentable,
                     boolean ispublic,
                     double x,
                     double y,
                     double z,
                     double rotation,
                     double scale,
                     java.lang.String packagePrefix,
                     java.lang.String fileName,
                     int axisOrder,
                     boolean applyShading,
                     double topLeftX,
                     double topLeftY,
                     double width,
                     double height)
Constructs a 3D shape with specific attributes.

Parameters:
presentable - the presentable object owning this object
ispublic - if true, the shape is visible on container's presentation
x - the x coordinate of the object
y - the y coordinate of the object
z - the z coordinate of the object
rotation - the rotation of the object in radians
scale - the scale of the object
packagePrefix - the package name of original active object where this object is defined, formatted using '/' characters; with '/' character at the beginning and at the end
fileName - the name of X3D file
axisOrder - axis order of this figure, may be used for orientation correction for objects obtained from different 3D editors
applyShading - if true, AnyLogic light shaders will be added to this object to provide nicer lighting effects. If you experience problems with specific X3D file, set this parameter to false
topLeftX - the x coordinate of the top-left corner of XY-projection of object in local object coordinates
topLeftY - the y coordinate of the top-left corner of XY-projection of object in local object coordinates
width - the width of the XY-projection of object in local object coordinates
height - the height of the XY-projection of object in local object coordinates
Method Detail

getFilename

public java.lang.String getFilename()
Returns the name of X3D file

Returns:
the name of X3D file

getFilePath_xjal

public java.lang.String getFilePath_xjal()
This method is not intended to be called by user and may be removed in the next releases


onClickAt

public boolean onClickAt(double px,
                         double py,
                         boolean publicOnly)
Tests if the object contains the point with the given coordinates and, if yes, executes the shape's reaction on click at that point.

Overrides:
onClickAt in class Shape
Parameters:
px - the x coordinate of the click
py - the y coordinate of the click
publicOnly - if true, not public shape returns false
Returns:
true if the click has been handled AND further click processing is not needed, false otherwise

contains

public boolean contains(double px,
                        double py)
Description copied from class: Shape
Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e. in the same system with the coordinates of this shape, x and y)

Specified by:
contains in class Shape
Parameters:
px - the x coordinate relative to this shape's container
py - the y coordinate relative to this shape's container
Returns:
true if the shape contains the point with the given coordinates

draw

public void draw(Panel panel,
                 java.awt.Graphics2D g,
                 java.awt.geom.AffineTransform xform,
                 boolean publicOnly)
Draws the object in a given context.

Specified by:
draw in class Shape
Parameters:
panel - the panel where the drawing is done
g - the graphics where the drawing takes place
xform - the "original" transform that must be restored before drawing
publicOnly - if true, the shape is only drawn if it is public

getPresentable

public Presentable getPresentable()
Description copied from class: Shape
Returns the Presentable object (ActiveObject or Experiment) where this shape belongs to, or null.

Specified by:
getPresentable in interface com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal
Overrides:
getPresentable in class Shape
Returns:
the Presentable that owns this shape, or null

restoreOwner

public void restoreOwner(java.lang.Object owner)
Description copied from class: Shape
This method normally should not be called by user
This method restores owner of this object
The method is used in snapshot saving/loading

Specified by:
restoreOwner in interface com.xj.anylogic.engine.internal.Child
Overrides:
restoreOwner in class Shape
Parameters:
owner - owner of this object, usually ActiveObject, Experiment or ShapeGroup

clone

public final Shape3DObject clone()
Description copied from class: Shape
Creates and returns a copy of this shape (i.e. new shape instance).
The returned shape is the object of the same class
The returned copy isn't automatically added to the group this shape belongs to.
The clone is created in the context of the same experiment or active object

Note that cloning of GIS shape, controls and charts is not supported

Overrides:
clone in class Shape

setX

public void setX(double x)
Description copied from class: Shape
Sets the x coordinate of the shape

Overrides:
setX in class Shape
Parameters:
x - the new value of x coordinate

setY

public void setY(double y)
Description copied from class: Shape
Sets the y coordinate of the shape

Overrides:
setY in class Shape
Parameters:
y - the new value of y coordinate

setZ

public void setZ(double z)
Sets the z coordinate of the object

Parameters:
z - the new value of z coordinate

getZ

public double getZ()
Returns the z coordinate of the shape.

Specified by:
getZ in interface Locatable3D
Returns:
the z coordinate of the shape

setPos

public void setPos(double x,
                   double y)
Sets (x, y) coordinates of the shape.
Z-coordinate is left unchanged

Overrides:
setPos in class Shape
Parameters:
x - the new value of x coordinate
y - the new value of y coordinate

setPos

public void setPos(double x,
                   double y,
                   double z)
Sets coordinates of the shape

Parameters:
x - the new value of x coordinate
y - the new value of y coordinate
z - the new value of z coordinate

setScale

public void setScale(double scale)
Sets the scale of the object along all the axes

Overrides:
setScale in class Shape
Parameters:
scale - the new value of scale

setScale

public void setScale(double sx,
                     double sy)
Description copied from class: Shape
Sets the scales of the shape along both axes

Overrides:
setScale in class Shape
Parameters:
sx - the new value of scale along x axis, 1 = keep original size
sy - the new value of scale along y axis, 1 = keep original size

setScaleX

public void setScaleX(double sx)
Description copied from class: Shape
Sets the scale of the shape along x axis

Overrides:
setScaleX in class Shape
Parameters:
sx - the new value of scale along x axis, 1 = keep original size

setScaleY

public void setScaleY(double sy)
Description copied from class: Shape
Sets the scale of the shape along y axis

Overrides:
setScaleY in class Shape
Parameters:
sy - the new value of scale along y axis, 1 = keep original size

setScaleZ

public void setScaleZ(double sz)
Sets the scale of the shape along z axis

Parameters:
sz - the new value of scale along z axis, 1 = keep original size

getScaleZ

public double getScaleZ()
Returns the scale of the shape along z axis

Returns:
the scale of the shape along z axis, 1 = keep original size

getZOffset

public double getZOffset()
Description copied from interface: Locatable3D
Returns the offset from z coordinate of the location base.
This e.g. returns getZHeight() for some 3D shapes

Specified by:
getZOffset in interface Locatable3D
Returns:
the offset from z coordinate of the location

setRotation

public void setRotation(double rotation)
Description copied from class: Shape
Sets the rotation of the shape.

Overrides:
setRotation in class Shape
Parameters:
rotation - the new value of rotation in radians

setVisible

public void setVisible(boolean visible)
Description copied from class: Shape
Sets the visibility of the shape.

Overrides:
setVisible in class Shape
Parameters:
visible - visibility: true - visible, false - not

get3DElement_xjal

public Element3D_xjal get3DElement_xjal()
Description copied from interface: com.xj.anylogic.engine.internal.presentation.Accessor3D_xjal
This method is internal and shouldn't be accessed by user.
It is public due to technical reasons.

Specified by:
get3DElement_xjal in interface com.xj.anylogic.engine.internal.presentation.Accessor3D_xjal

set3DElement_xjal

public void set3DElement_xjal(Element3D_xjal element3D)
Description copied from interface: com.xj.anylogic.engine.internal.presentation.Accessor3D_xjal
This method is internal and shouldn't be accessed by user.
It is public due to technical reasons.

Specified by:
set3DElement_xjal in interface com.xj.anylogic.engine.internal.presentation.Accessor3D_xjal

setContextReference_xjal

public void setContextReference_xjal(Presentable contextReference)
Description copied from interface: com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal
This method is internal and shouldn't be accessed by user.
It is public due to technical reasons.

Specified by:
setContextReference_xjal in interface com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal

dispose

public void dispose()
Releases resources allocated by this object, should be called on active object destroy.



Copyright © 1991-2008 XJ Technlogies. All Rights Reserved.