|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.hdcookbook.grin.Feature
com.hdcookbook.grin.features.Modifier
com.hdcookbook.grin.features.Translator
public class Translator
A Translator wraps other features, and adds movement taken from a translator model (represented at runtime by an InterpolatedModel) to it. The subfeature is translated by the given amount. For backwards compatibility reasons, there's also an "absolute" mode that attempts to use the coordinates of the upper-left hand corner of the child, but this mode is deprecated.
InterpolatedModel
Field Summary | |
---|---|
protected int |
fx
|
protected int |
fy
|
protected InterpolatedModel |
model
|
protected boolean |
modelIsRelative
|
static int |
OFFSCREEN
A special value to use to translate something offscreen. |
static int |
X_FIELD
The field number in our model for the X coordinate |
static int |
Y_FIELD
The field number in our model for the Y coordinate |
Fields inherited from class com.hdcookbook.grin.features.Modifier |
---|
activated, part |
Fields inherited from class com.hdcookbook.grin.Feature |
---|
name, show |
Constructor Summary | |
---|---|
Translator(Show show)
|
Method Summary | |
---|---|
void |
addDisplayAreas(RenderContext context)
Add all of the areas that are displayed for this feature with the current frame. |
protected Feature |
createClone(java.util.HashMap clones)
This is an implementation method that should not be called direction by applications; applications should call cloneSubgraph(). |
void |
destroy()
Free any resources held by this feature. |
InterpolatedModel |
getModel()
Get the translation that moves us |
int |
getX()
Get the upper-left hand corner of this feature as presently displayed. |
int |
getY()
Get the upper-left hand corner of this feature as presently displayed Return Integer.MAX_VALUE if this feature has no visible representation. |
void |
initialize()
Initialize this feature. |
protected void |
initializeClone(Feature original,
java.util.HashMap clones)
This is an implementation method that should not be called direction by applications; it is called from cloneSubgraph(). |
void |
nextFrame()
Called from Segment with the Show lock held, to advance us to the state we should be in for the next frame. |
void |
paintFrame(java.awt.Graphics2D gr)
Paint the current state of this feature to gr. |
void |
readInstanceData(GrinDataInputStream in,
int length)
Reads in this node information from the binary file format. |
Methods inherited from class com.hdcookbook.grin.features.Modifier |
---|
addSubgraph, getPart, markDisplayAreasChanged, needsMoreSetup, setActivateMode, setChildChanged, setSetupMode, setup |
Methods inherited from class com.hdcookbook.grin.Feature |
---|
activate, cloneCommands, clonedReference, cloneSubgraph, deactivate, destroyClonedSubgraph, getName, isSetup, makeNewClone, resetFeature, sendFeatureSetup, setName, setup, toString, unsetup |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int X_FIELD
InterpolatedModel
,
Constant Field Valuespublic static final int Y_FIELD
InterpolatedModel
,
Constant Field Valuespublic static final int OFFSCREEN
protected InterpolatedModel model
protected int fx
protected int fy
protected boolean modelIsRelative
Constructor Detail |
---|
public Translator(Show show)
Method Detail |
---|
protected Feature createClone(java.util.HashMap clones)
Create a new clone of this feature. This method creates a new instance of this feature, and creates new instances of any sub-features, but it does not initialize the feature. This method is called from Feature.makeNewClone().
See the documentation of cloneSubgraph() for a list of runtime exceptions this method can throw. Subclasses that wish to support cloning must override this method.
createClone
in class Feature
clones
- A map from original feature to cloned feature. Entries
are added by Feature.makeNewClone().Feature.makeNewClone(java.util.HashMap)
,
Feature.cloneSubgraph(java.util.HashMap)
protected void initializeClone(Feature original, java.util.HashMap clones)
Initialize this cloned feature from its original. This is called after the entire subgraph has been cloned, so the HashMap containing the set of clones will be complete. See the documentation of cloneSubgraph() for a list of runtime exceptions this method can throw. Subclasses that wish to support cloning must override this method.
If this feature doesn't need initialization it's OK for a feature to not implement it; the default version of this method does nothing. Typically, you only need to implement this for features that have references to other features that aren't sub-features, or that have commands that might have references to other features.
initializeClone
in class Feature
Feature.cloneSubgraph(java.util.HashMap)
public InterpolatedModel getModel()
public void initialize()
initialize
in class Modifier
public void destroy()
It's possible an active segment may be destroyed. For example, the last segment a show is in when the show is destroyed will probably be active (and it will probably be an empty segment too!).
destroy
in class Modifier
public void nextFrame()
nextFrame
in class Modifier
public void addDisplayAreas(RenderContext context)
A feature that displays something needs to maintain a record of it in a DrawRecord. The animation framework uses this to track what needs to be erased and drawn from frame to frame.
Clients of the GRIN framework should not call this method directly. Feature subclasses must implement this method.
Subclasses will probably want to override this to account for changes in the drawing environment they make. The version in this class simply calls this method on the modified part.
addDisplayAreas
in class Modifier
context
- The context for tracking rendering stateDrawRecord
public int getX()
getX
in class Modifier
public int getY()
getY
in class Modifier
public void paintFrame(java.awt.Graphics2D gr)
paintFrame
in class Modifier
gr
- The place to paint to.public void readInstanceData(GrinDataInputStream in, int length) throws java.io.IOException
Node
An implementation of this method is recommended to call in.readSuperClassData(this) as the first line of the method to read in information that is defined in the base class of this Node type.
This should only be called while initializing this object.
readInstanceData
in interface Node
in
- InputStream to read data from.length
- the number of bytes that this node's information occupies
in the InputStream. The implementation of this method is expected to
read exactly this number of bytes from the stream. This can be used
for a debugging purpose.
java.io.IOException
- if error occurs.GrinDataInputStream.readSuperClassData(Feature)
,
GrinDataInputStream.readSuperClassData(RCHandler)
,
GrinDataInputStream.readSuperClassData(Segment)
,
GrinDataInputStream.readSuperClassData(Command)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |