public class Billboard extends Behavior
If the alignment mode is ROTATE_ABOUT_AXIS, the rotation will be around the specified axis. If the alignment mode is ROTATE_ABOUT_POINT, the rotation will be about the specified point, with an additional rotation to align the +y axis of the TransformGroup with the +y axis in the View.
Note that in a multiple View system, the alignment is done to the primary View only.
Billboard nodes are ideal for drawing screen aligned-text or for drawing roughly-symmetrical objects. A typical use might consist of a quadrilateral that contains a texture of a tree.
OrientedShape3D
Modifier and Type | Field and Description |
---|---|
static int |
ROTATE_ABOUT_AXIS
Specifies that rotation should be about the specified axis.
|
static int |
ROTATE_ABOUT_POINT
Specifies that rotation should be about the specified point and
that the children's Y-axis should match the view object's Y-axis.
|
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
Constructor and Description |
---|
Billboard()
Constructs a Billboard node with default parameters.
|
Billboard(TransformGroup tg)
Constructs a Billboard node with default parameters that operates
on the specified TransformGroup node.
|
Billboard(TransformGroup tg,
int mode,
Point3f point)
Constructs a Billboard node with the specified rotation point and mode
that operates on the specified TransformGroup node.
|
Billboard(TransformGroup tg,
int mode,
Vector3f axis)
Constructs a Billboard node with the specified axis and mode
that operates on the specified TransformGroup node.
|
Modifier and Type | Method and Description |
---|---|
Node |
cloneNode(boolean forceDuplicate)
Creates a new instance of the node.
|
void |
getAlignmentAxis(Vector3f axis)
Gets the alignment axis and sets the parameter to this value.
|
int |
getAlignmentMode()
Gets the alignment mode.
|
void |
getRotationPoint(Point3f point)
Gets the rotation point and sets the parameter to this value.
|
TransformGroup |
getTarget()
Returns a copy of the transformGroup associated with this Billboard.
|
void |
initialize()
Initialize method that sets up initial wakeup criteria.
|
void |
processStimulus(Enumeration criteria)
Process stimulus method that computes appropriate transform.
|
void |
setAlignmentAxis(float x,
float y,
float z)
Sets the alignment axis.
|
void |
setAlignmentAxis(Vector3f axis)
Sets the alignment axis.
|
void |
setAlignmentMode(int mode)
Sets the alignment mode.
|
void |
setRotationPoint(float x,
float y,
float z)
Sets the rotation point.
|
void |
setRotationPoint(Point3f point)
Sets the rotation point.
|
void |
setTarget(TransformGroup tg)
Sets the tranformGroup for this Billboard object.
|
void |
updateNodeReferences(NodeReferenceTable referenceTable)
Callback used to allow a node to check if any scene graph objects
referenced
by that node have been duplicated via a call to
cloneTree . |
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, wakeupOn
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
public static final int ROTATE_ABOUT_AXIS
public static final int ROTATE_ABOUT_POINT
public Billboard()
public Billboard(TransformGroup tg)
tg
- the TransformGroup node that this Billboard
node operates uponpublic Billboard(TransformGroup tg, int mode, Vector3f axis)
tg
- the TransformGroup node that this Billboard
node operates uponmode
- alignment mode, one of ROTATE_ABOUT_AXIS or
ROTATE_ABOUT_POINTaxis
- the ray about which the billboard rotatespublic Billboard(TransformGroup tg, int mode, Point3f point)
tg
- the TransformGroup node that this Billboard
node operates uponmode
- alignment mode, one of ROTATE_ABOUT_AXIS or
ROTATE_ABOUT_POINTpoint
- the position about which the billboard rotatespublic void setAlignmentMode(int mode)
mode
- one of: ROTATE_ABOUT_AXIS or ROTATE_ABOUT_POINTpublic int getAlignmentMode()
public void setAlignmentAxis(Vector3f axis)
axis
- the ray about which the billboard rotatespublic void setAlignmentAxis(float x, float y, float z)
x
- the x component of the ray about which the billboard rotatesy
- the y component of the ray about which the billboard rotatesz
- the z component of the ray about which the billboard rotatespublic void getAlignmentAxis(Vector3f axis)
axis
- the vector that will contain the ray about which
the billboard rotatespublic void setRotationPoint(Point3f point)
point
- the point about which the billboard rotatespublic void setRotationPoint(float x, float y, float z)
x
- the x component of the point about which the billboard rotatesy
- the y component of the point about which the billboard rotatesz
- the z component of the point about which the billboard rotatespublic void getRotationPoint(Point3f point)
point
- the position the Billboard rotates aboutpublic void setTarget(TransformGroup tg)
tg
- the transformGroup node which replaces the current
transformGroup node for this Billboardpublic TransformGroup getTarget()
public void initialize()
initialize
in class Behavior
public void processStimulus(Enumeration criteria)
processStimulus
in class Behavior
criteria
- an enumeration of the criteria that caused the
stimuluspublic Node cloneNode(boolean forceDuplicate)
cloneTree
to duplicate the current node.cloneNode
in class Node
forceDuplicate
- when set to true
, causes the
duplicateOnCloneTree
flag to be ignored. When
false
, the value of each node's
duplicateOnCloneTree
variable determines whether
NodeComponent data is duplicated or copied.Node.cloneTree()
,
Node.cloneNode(boolean)
,
Node.duplicateNode(org.scijava.java3d.Node, boolean)
,
NodeComponent.setDuplicateOnCloneTree(boolean)
public void updateNodeReferences(NodeReferenceTable referenceTable)
cloneTree
.
This method is called by cloneTree
after all nodes in
the sub-graph have been duplicated. The cloned Leaf node's method
will be called and the Leaf node can then look up any object references
by using the getNewObjectReference
method found in the
NodeReferenceTable
object. If a match is found, a
reference to the corresponding object in the newly cloned sub-graph
is returned. If no corresponding reference is found, either a
DanglingReferenceException is thrown or a reference to the original
object is returned depending on the value of the
allowDanglingReferences
parameter passed in the
cloneTree
call.
NOTE: Applications should not call this method directly. It should only be called by the cloneTree method.
updateNodeReferences
in class Behavior
referenceTable
- a NodeReferenceTableObject that contains the
getNewObjectReference
method needed to search for
new object instances.NodeReferenceTable
,
Node.cloneTree()
,
DanglingReferenceException
Copyright © 2016–2022 SciJava. All rights reserved.