com.xj.anylogic.engine.presentation
Class Shape3DPhantom

java.lang.Object
  extended by com.xj.anylogic.engine.presentation.Shape
      extended by com.xj.anylogic.engine.presentation.Shape3DPhantom
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 Shape3DPhantom
extends Shape
implements Locatable3D, com.xj.anylogic.engine.internal.presentation.WorldObject3D_xjal

Persistent phantom shape. Contains a reference to some other shape which is drawn in the place of this shape.

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

Field Summary
 
Fields inherited from class com.xj.anylogic.engine.presentation.Shape
UNKNOWN_NAME
 
Constructor Summary
Shape3DPhantom()
          Constructs a phantom shape with empty reference and default attributes.
Shape3DPhantom(boolean ispublic, double x, double y, double z, double rotation, Shape referenceShape)
          Constructs a phantom shape with specified reference and attributes.
 
Method Summary
 boolean canHandleClick(boolean publicOnly)
          Checks if the shape can handle mouse clicks in its current condition, namely with current public and visibility settings.
 Shape3DPhantom 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 draw(Panel panel, java.awt.Graphics2D g, java.awt.geom.AffineTransform xform, boolean publicOnly)
          Draws the phantom shape in a given context
 Element3D_xjal get3DElement_xjal()
          This method is internal and shouldn't be accessed by user.
 Presentable getPresentable()
          Returns the Presentable object (ActiveObject or Experiment) where this shape belongs to, or null.
 double getRotation()
          Returns the horizontal rotation of the shape.
 double getRotationX()
          Returns the rotation of the shape around X axis (CW from +Y to +Z).
 double getRotationY()
          Returns the rotation of the shape around Y axis (CW from +Z to +X).
 double getRotationZ()
          Returns the rotation of the shape around Z axis (CW from +X to +Y).
 double getScaleZ()
          Returns the scale of the shape along z axis
 Shape getShape()
          Returns the shapes this phantom references to.
 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)
          Should be overridden to test if the shape contains the point with the given coordinates, and, if yes, execute the shape's reaction on click at that point.
 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 both coordinates of the shape
 void setPos(double x, double y, double z)
          Sets coordinates of the shape
 void setRotation(double rotation)
          Sets the horizontal rotation of the shape.
 void setRotationX(double rotationX)
          Sets rotation around X axis (CW from +Y to +Z) of the shape.
 void setRotationY(double rotationY)
          Sets rotation around Y axis (CW from +Z to +X) of the shape.
 void setRotationZ(double rotationZ)
          Sets the rotation of the shape around Z-axis.
 void setScale(double scale)
          Sets the scale of the figure 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 setShape(Shape shape)
          Sets the shape reference for this phantom shape.
 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 figure
 
Methods inherited from class com.xj.anylogic.engine.presentation.Shape
getGroup, getName, getScaleX, getScaleY, getX, getY, isVisible, onClick, restoreOwner
 
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
 

Constructor Detail

Shape3DPhantom

public Shape3DPhantom(boolean ispublic,
                      double x,
                      double y,
                      double z,
                      double rotation,
                      Shape referenceShape)
Constructs a phantom shape with specified reference and attributes.

Parameters:
ispublic - if true, the shape is visible on container's presentation
x - the x coordinate of the phantom shape
y - the y coordinate of the phantom shape
z - the z coordinate of the phantom shape
rotation - the horizontal rotation of the phantom shape in radians
referenceShape - the reference to the shape

Shape3DPhantom

public Shape3DPhantom()
Constructs a phantom shape with empty reference and default attributes.

Method Detail

getShape

public Shape getShape()
Returns the shapes this phantom references to.

Returns:
the shapes this phantom references to

setShape

public void setShape(Shape shape)
Sets the shape reference for this phantom shape.

Parameters:
shape - the shape reference for this phantom shape

draw

public void draw(Panel panel,
                 java.awt.Graphics2D g,
                 java.awt.geom.AffineTransform xform,
                 boolean publicOnly)
Draws the phantom shape 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

canHandleClick

public boolean canHandleClick(boolean publicOnly)
Description copied from class: Shape
Checks if the shape can handle mouse clicks in its current condition, namely with current public and visibility settings.

Overrides:
canHandleClick in class Shape
Parameters:
publicOnly - if true, non public shape would not handle clicks
Returns:
true if a click can be handled, otherwise false

onClickAt

public boolean onClickAt(double px,
                         double py,
                         boolean publicOnly)
Description copied from class: Shape
Should be overridden to test if the shape contains the point with the given coordinates, and, if yes, execute the shape's reaction on click at that point. This base implementation does nothing and return false

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

clone

public final Shape3DPhantom clone()
Creates and returns a copy of this shape (i.e. new shape instance).
The returned shape is the object of the same class
The shapes referenced by this phantom shape isn't cloned
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

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 figure

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

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

setPos

public void setPos(double x,
                   double y)
Description copied from class: Shape
Sets both coordinates of the shape

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 figure 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

setRotation

public void setRotation(double rotation)
Sets the horizontal rotation of the shape.

Overrides:
setRotation in class Shape
Parameters:
rotation - the new value of horizontal rotation in radians
See Also:
setRotationZ(double)

setRotationZ

public void setRotationZ(double rotationZ)
Sets the rotation of the shape around Z-axis.

Parameters:
rotationZ - the new value of rotation around Z-axis in radians

setRotationY

public void setRotationY(double rotationY)
Sets rotation around Y axis (CW from +Z to +X) of the shape.
Note that 2D animation of the group is shrunk only when rotated vertically, i.e. sides of group contents aren't drawn

Parameters:
rotationY - the new value of rotation around Y axis (CW from +Z to +X), in radians

setRotationX

public void setRotationX(double rotationX)
Sets rotation around X axis (CW from +Y to +Z) of the shape.
Note that 2D animation of the group is shrunk only when rotated vertically, i.e. sides of group contents aren't drawn

Parameters:
rotationX - the new value of rotation around X axis (CW from +Y to +Z), in radians

getRotation

public double getRotation()
Returns the horizontal rotation of the shape.

Overrides:
getRotation in class Shape
Returns:
the horizontal rotation of the shape in radians, clockwise

getRotationZ

public double getRotationZ()
Returns the rotation of the shape around Z axis (CW from +X to +Y).

Returns:
the rotation of the shape around Z axis (CW from +X to +Y), in radians

getRotationY

public double getRotationY()
Returns the rotation of the shape around Y axis (CW from +Z to +X).

Returns:
the rotation of the shape around Y axis (CW from +Z to +X), in radians

getRotationX

public double getRotationX()
Returns the rotation of the shape around X axis (CW from +Y to +Z).

Returns:
the rotation of the shape around X axis (CW from +Y to +Z), 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

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

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


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