|
Jazz API Documentation | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--edu.umd.cs.jazz.ZSceneGraphObject
ZSceneGraphObject is the base class for all objects in the Jazz scenegraph. It provides support for the basic shared methods between all nodes and visual components.
Coordinate Systems
Application developers must understand the basic coordinate systems used in Jazz.
The basic coordinate system has its origin at the upper-left. The X-axis increases positively
to the right, and the Y-axis increase positively down.
Because certain node types define transforms which define a new relative coordinate system, it is important to realize that typically, objects are not placed in "global" coordinates. Rather, every object is defined in their own "local" coordinate system. The relationship of the local coordinate system to the global coordinate system is determined by the series of transforms between that object, and the root of the scenegraph.
All Jazz operations occur in local coordinates. For instance, coordinates and rectangles object receiving those parameters. In addition, objects cache their bounds within in their local coordinates. This is efficient because it means that if an object changes itself, none of its ancestors need to be notified in any way.
ZNode,
ZVisualComponent, Serialized Form| Field Summary | |
protected ZBounds |
bounds
The bounds occupied by this object in its own local coordinate system. |
protected static ZObjectReferenceTable |
objRefTable
The single instance of the object reference table used for cloning scenegraph trees. |
static boolean |
volatileBounds_DEFAULT
|
| Constructor Summary | |
protected |
ZSceneGraphObject()
Constructs an empty scenegraph object. |
| Method Summary | |
protected void |
computeBounds()
Recomputes and caches the bounds for this node. |
java.lang.String |
dump()
Generate a string that represents this object for debugging. |
void |
duplicateObject(ZSceneGraphObject refObj)
Copies all object information from the reference object into the current object. |
ZBounds |
getBounds()
Return a copy of the bounds of the subtree rooted at this node in local coordinates. |
boolean |
getVolatileBounds()
Determines if this node is volatile. |
void |
repaint()
Repaint causes the portions of the surfaces that this object appears in to be marked as needing painting, and queues events to cause those areas to be painted. |
void |
reshape()
Reshape causes the portion of the surface that this object appears in before the bounds are changed to be marked as needing painting, and queues events to cause those areas to be painted. |
void |
setState(java.lang.String fieldType,
java.lang.String fieldName,
java.lang.Object fieldValue)
Set some state of this object as it gets read back in. |
void |
setVolatileBounds(boolean v)
Specifies whether or not this node is volatile. |
protected void |
updateBounds()
Internal method that causes this node and all of its ancestors to recompute their bounds. |
void |
updateObjectReferences(ZObjectReferenceTable objRefTable)
Manage dangling references when scenegraph objects are cloned. |
protected void |
updateVolatility()
Internal method to compute and cache the volatility of a node, to recursively call the parents to compute volatility. |
void |
writeObject(ZObjectOutputStream out)
Write out all of this object's state. |
void |
writeObjectRecurse(ZObjectOutputStream out)
Specify which objects this object references in order to write out the scenegraph properly |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
public static final boolean volatileBounds_DEFAULT
protected static ZObjectReferenceTable objRefTable
protected ZBounds bounds
| Constructor Detail |
protected ZSceneGraphObject()
Most objects will want to store their bounds, and so we allocate bounds here. However, if a particular object is implemented by computing its bounds every time it is asked instead of allocating it, then it can free up the bounds allocated here.
| Method Detail |
public void duplicateObject(ZSceneGraphObject refObj)
refObj - The reference object to copypublic ZBounds getBounds()
protected void computeBounds()
public void repaint()
Scenegraph objects should call repaint when their internal state has changed and they need to be redrawn on the screen.
Important note : Scenegraph objects should call reshape() instead of repaint() if the internal state change effects the bounds of the shape in any way (e.g. changing penwidth, selection, transform, adding points to a line, etc.)
reshape()public void reshape()
Scenegraph objects should call reshape when their internal state has changed in such a way that their bounds have changed.
Important note : Scenegraph objects should call repaint() instead of reshape() if the bounds of the shape have not changed.
repaint()protected void updateBounds()
public final boolean getVolatileBounds()
setVolatileBounds(boolean).
All parents of this node are also volatile when this is volatile.
Volatile objects are those objects that change regularly, such as an object that is animated, or one whose rendering depends on its context.
setVolatileBounds(boolean)public void setVolatileBounds(boolean v)
v - the new specification of whether this node is volatile.getVolatileBounds()protected void updateVolatility()
setVolatileBounds(boolean),
getVolatileBounds()public void updateObjectReferences(ZObjectReferenceTable objRefTable)
objRefTable - The table that maintains the relationships between cloned objects.public java.lang.String dump()
ZDebug.dump(edu.umd.cs.jazz.ZNode)
public void writeObject(ZObjectOutputStream out)
throws java.io.IOException
out - The stream that this object writes into
public void writeObjectRecurse(ZObjectOutputStream out)
throws java.io.IOException
out - The stream that this object writes into
public void setState(java.lang.String fieldType,
java.lang.String fieldName,
java.lang.Object fieldValue)
fieldType - The fully qualified type of the fieldfieldName - The name of the fieldfieldValue - The value of the field
|
Jazz API Documentation | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||