r3ttag
real/code/r3ttag.h
r3code
Dynamic attribute class. All objects derived from this class support so called 'dynamic attribute' feature which allows any number of attributes to be attached to objects. These attributes can be set/read exactly the same way as any normal object attributes ie. by using the R3GetAttrs() and R3SetAttrs() functions. If the tag id of the attribute contains one of the 'type bits', it is dynamic. #define MYA_FooInt = (R3CL_ATTRBASE(xx) | R3TT_IMASK + 12) #define MYA_FooFloat = (R3CL_ATTRBASE(xx) | R3TT_FMASK) + 13) R3FLOAT fval; R3SetAttrs(obj, MYA_FooInt, 12, MYA_FooFloat, &fval, R3tAG_END);
oops/r3color.h oops/r3coords.h oops/r3vect.h oops/r3matrix.h
r3Model
R3CLID_MODEL
r3Ttag
R3CLID_TTAG - 70
CHANGETAG, DELETETAG, ENUM, FINDTAG, ANIMATETAG, TAGISANIMATED, CHANGEANIMATEDTAGVALUE, REMOVETAGANIMATTION, GETANIMATIONCURVE, ANIMRECORD, TIME, CHANGEINDEXEDANIMATEDT, GETKEYFRAMEINPUTOBJECT, SETKEYFRAMEINPUTOBJECT, REMOVEKEYFRAMEINPUT, SETADDKEYTOLERANCE, ISANIMTARGET, GETCURRENTTIME, MAKECHOREOGRAPHABLE, EXCHANGECHOREOGRAPHY, FINDTAGCLOSE, ALLOCANDGETUNIQUEID, ADDDEPENDENTTAGGED, REMOVEDEPENDENTTAGGED, ENUMDEPENDENTS, REMOVEALLTAGGEDDEPENDE, PROCESSSCRIPT, ENUMEXTERNALFILES, TRANSFORMTIMELINES, USESMATERIAL, ISANIMATED, DELETEKEYFRAMER, PREPANIMTAG, GETTIMELINE, SETTIMELINE, TOABSTIME, TOOBJTIME, WRITECHOREOGRAPHY, READCHOREOGRAPHY, ALLOCANDGETKEYFRAMER, REMOVETAGCHOREOGRAPHY, SCRIPTOUTPUT, REMOVEUNRESOLVEDDEPEND, DOMSGAWHENIDLE, FLUSHIDLES, BEGINANIM, ENDANIM, GETENDTIME, GETWEIGHT, WEIGHTCHANGED, CHANGEDEPENDENTTAGGED, ENUMDEPENDENTREFERENCE, REGISTERDEPENDENCYTAG, GETORIGVAL, REMOVEREFERENCES, SETSUBATTR, TOGLOBALTIME, TOLOCALTIME, TAGISANIMATEDINCHOREOG, INITTAG, BREAKTAGS, ISMANAGED, ISENABLED, NEWANIMTAG, GETCHORINPUT, NEWCHOROBJ, DELCHOROBJ, RESOLVEREFS, RECONSTRUCT, RECORD, PREPANIMATEDTAG, PREPINDEXEDANIMATEDTAG, RECONSTRUCTOPTIMIZED, EXECUTE, MIRRORTIMELINE, SETTAGVALUE, FLUSHSELECTEDIDLES, SCRIPTERROR, ISTIMEBASED, CALLUPDATE, MAKETARGET, ISTARGET, SETTAGS, LOADREADY, SETITAG, GETITAG, SETFTAG, GETFTAG, SETVTAG, GETVTAG, SETCSTAG, GETCSTAG, UNSELECTALLKNOTS, SELECTKNOT, TRANSLATESELECTEDKNOTS, DELETESELECTEDKNOTS, DUPLICATESELECTEDKNOTS, SETSELECTEDKNOTS, ENUMTIMELINES, GETANIMCURVEFORCHOR, GETNEXTKNOTPOS, GETPREVIOUSKNOTPOS, MANAGETAG, UPDATETAGSIZE, DELCHORBYINPUT, RESETKEYFRAMEINPUTOBJE, UNMANAGETAG, MOVECHOR, NEWCHOR, DELCHOR, COPYCHOR, CHORCHANGED, COPYANIMATEDATTRS, ADDKEYFRAME, TAGENABLEKEYFR, SELECTANIMTAG, ANIMTAGISSELECTED, UP, DOWN, SHOWCHOR, HIDECHOR, SHOWALLCHORS, PURGECHORS, TAGISKEYFRENABLED, GETCHORNAME, GETCHORCLID, GETCHORCOUNT, GETCHORBYINPUT, SUPPORTKEYFRAMING, FLUSHTAGS, SPLITTIMELINE, KEYFRAME, FINDTAGCLOSEHIERARCHY, TAGIDCHANGED, GETCURRENTFRAME, MAPFROMINPUT, MAPTOINPUT, SETINPUTSPACE, GETINPUTSPACE, SHARPENSELECTEDKNOTS, TOP, BOTTOM,
Keyframer, AnimRecord, ChoreographyFrequency, ChoreographyWeight, AnimIfTarget, AnimDisabled, AnimIfAnimated, Time, FloatSize, ColorSize, Target, Enabled, CurrentChor, InvisibleChors, ChoreographyActive, ChoreographyPeriodic, ChoreographyPhase, Frame, UniqueId, FindTagCloseMth, Script, ScriptClid,
R3TTM_CHANGETAG
CHANGETAG
R3TTM_CHANGETAG
R3BOOL, FALSE if failed
R3TAG*, R3TTA_OldTag (R3TAG *), R3TTA_NewTag (R3TAG *)
rc = obj.CHANGETAG(p3);
Change identifier and value of given dynamic attribute.
R3TTM_DELETETAG
DELETETAG
R3TTM_DELETETAG
R3BOOL, true if succeeded
R3INT, tag identifier.
rc = obj.DELETETAG(p3);
Delete given dynamic tag.
R3TTM_ENUM
ENUM
R3TTM_ENUM
R3INT, callback method
R3OBJ*, callback object
obj.ENUM(p1, p3);
Enumerate dynamic attributes to given object. Tags are passed to * the callback object as follows: * R3DoA2(cbobj, cbmth, (void*)tag, (void*)value);
R3TTM_FINDTAG
FINDTAG
R3TTM_FINDTAG
void*, private data
R3INT, tag identifier
rc = obj.FINDTAG(p3);
Find given dynamic tag. For internal use only.
R3TTM_ANIMATETAG
ANIMATETAG
R3TTM_ANIMATETAG
R3BOOL, true if succeeded.
R3BOOL, if true, tag is always animated even if the object is not in R3TTA_AnimRecord mode.
rc = obj.ANIMATETAG(p1, 0);
Make given attribute animateable.
R3TTM_TAGISANIMATED
TAGISANIMATED
R3TTM_TAGISANIMATED
R3BOOL, FALSE if not animated
R3INT, attribute identifier
R3INT, attribute index for indexed attributes, 1 for regular attrs.
rc = obj.TAGISANIMATED(p1, p3);
See if the given attribute is animated.
R3TTM_CHANGEANIMATEDTAGVALUE
CHANGEANIMATEDTAGVALUE
R3TTM_CHANGEANIMATEDTAGVALUE
R3INT, attribute
obj.CHANGEANIMATEDTAGVALUE(p3);
Notify the choreography system that the attribute value has changed. * For class implementors only.
R3TTM_REMOVETAGANIMATTION
REMOVETAGANIMATTION
R3TTM_REMOVETAGANIMATTION
R3BOOL, FALSE if the attrbute was not animated
R3INT, attribute identifier
R3INT, attribute index for indexed attrs, -1 for regular attrs.
rc = obj.REMOVETAGANIMATTION(p1, p3);
Remove all choreographs from the given attribute.
R3TTM_GETANIMATIONCURVE
GETANIMATIONCURVE
R3TTM_GETANIMATIONCURVE
R3OBJ*, curve object animating the
R3INT, tag
R3INT, tag index for indexed attrs or -1 for regular attributes
rc = obj.GETANIMATIONCURVE(p1, p3);
Get animation curve for the current choreography / currently selected point * and the specified attribute. * If the current choreography is not a keyframer (it doesn't define curves) or * if the object doesn't define the given attribute, NULL is returned
R3TTM_ANIMRECORD
ANIMRECORD
R3TTM_ANIMRECORD
R3FLOAT, time resolution (minimum time interval)
R3BOOL, true activates, false resets
obj.ANIMRECORD(p1, p3);
Activate animation recording
R3TTM_TIME
TIME
R3TTM_TIME
R3FLOAT, previous time
R3INT, new frame
R3FLOAT, new time
obj.TIME(p1, p2, p3);
Set time of the object.
R3TTM_CHANGEINDEXEDANIMATEDT
CHANGEINDEXEDANIMATEDT
R3TTM_CHANGEINDEXEDANIMATEDT
R3INT, index
R3BOOL, force, if TRUE, R3TTA_AnimProtect etc. attributes are ignored and new key is always created
R3INT, tag
obj.CHANGEINDEXEDANIMATEDT(p1, p2, p3);
For animating indexed attributes.
R3TTM_GETKEYFRAMEINPUTOBJECT
GETKEYFRAMEINPUTOBJECT
R3TTM_GETKEYFRAMEINPUTOBJECT
void*, obj,
R3TAG*, R3TTA_KiObj, R3TTA_KiTag, R3TTA_KiMth, R3TTA_KiIndex, R3TTA_KiType, R3TTA_KiSub, R3TTA_KiChoreographyIndex
rc = obj.GETKEYFRAMEINPUTOBJECT(p3);
Get object and tag used as input for keyframing
R3TTM_SETKEYFRAMEINPUTOBJECT
SETKEYFRAMEINPUTOBJECT
R3TTM_SETKEYFRAMEINPUTOBJECT
void*, obj,
rc = obj.SETKEYFRAMEINPUTOBJECT();
Set object and tag used as input for keyframing
R3TTM_REMOVEKEYFRAMEINPUT
REMOVEKEYFRAMEINPUT
R3TTM_REMOVEKEYFRAMEINPUT
void*, obj,
R3INT, choreography index
rc = obj.REMOVEKEYFRAMEINPUT(p3);
Remove special input for the given choreography and use time instead
R3TTM_SETADDKEYTOLERANCE
SETADDKEYTOLERANCE
R3TTM_SETADDKEYTOLERANCE
R3FLOAT, tolerance
obj.SETADDKEYTOLERANCE(p3);
Set tolerance for 'modify existing/create new' key. If there is already a key within this treshold, it is modified. Otherwise new key is created.
R3TTM_ISANIMTARGET
ISANIMTARGET
R3TTM_ISANIMTARGET
R3BOOL, true if can be animated.
rc = obj.ISANIMTARGET();
Check if the object is selected as animation target. If so, and if the anim recording is enabled for the object, all changes to attributes are recorded by key framer.
R3TTM_GETCURRENTTIME
GETCURRENTTIME
R3TTM_GETCURRENTTIME
R3FLOAT, buffer for time to be fetched.
obj.GETCURRENTTIME(p3);
Return the current time. Note: this works only if the owner object (layer) has set the GetTimeObj and GetTimeMth call backs and the object is linked into the layer.
R3TTM_MAKECHOREOGRAPHABLE
MAKECHOREOGRAPHABLE
R3TTM_MAKECHOREOGRAPHABLE
R3OBJ*, choreographer
rc = obj.MAKECHOREOGRAPHABLE();
Make the object choreographable. No choreographs are created.
R3TTM_EXCHANGECHOREOGRAPHY
EXCHANGECHOREOGRAPHY
R3TTM_EXCHANGECHOREOGRAPHY
R3INT, choreography to be copied
R3OBJ*, 'to' object
obj.EXCHANGECHOREOGRAPHY(p1, p3);
Copy the given choreography to other object.
R3TTM_FINDTAGCLOSE
FINDTAGCLOSE
R3TTM_FINDTAGCLOSE
R3OBJ*, object or NULL if not found
R3INT, tag identifier
R3INT, integer tag value, usually an unique identifier
R3OBJ*, set to null, used internally for managing recusion
rc = obj.FINDTAGCLOSE(p1, p2, p3);
find the nearest (closest) object in the object tree that defines the given attribute.
R3TTM_ALLOCANDGETUNIQUEID
ALLOCANDGETUNIQUEID
R3TTM_ALLOCANDGETUNIQUEID
obj.ALLOCANDGETUNIQUEID();
Return the value of the tag R3TTA_UniqueId if set. If not an unique id is alloced, set and returned
R3TTM_ADDDEPENDENTTAGGED
ADDDEPENDENTTAGGED
R3TTM_ADDDEPENDENTTAGGED
R3INT, attribute identifier identifying the dependency object
R3INT, attribute value for identifying the dependency object
obj.ADDDEPENDENTTAGGED(p1, p3);
Add the given input object to the dependency list of the object. * The given attribute identifier and value (typically R3TTA_UniqueId) * identifies the input object. * When objects state is changed, the R3RM_UPDATE is generated to the input object.
R3TTM_REMOVEDEPENDENTTAGGED
REMOVEDEPENDENTTAGGED
R3TTM_REMOVEDEPENDENTTAGGED
R3BOOL, true if object was found from the dependency list.
R3INT, attribute identifier
R3INT, unique attribute value identifying the dependency object
rc = obj.REMOVEDEPENDENTTAGGED(p1, p3);
Remove the given object from the dependency list of the object.
R3TTM_ENUMDEPENDENTS
ENUMDEPENDENTS
R3TTM_ENUMDEPENDENTS
R3TAG*, R3RA_Hook, R3RA_HookData
obj.ENUMDEPENDENTS(p3);
Enumerate dependency objects associated with the object. Dependants * are enumerated to given hook. int hook(R3OBJ *dependent, void *userdata);
R3TTM_REMOVEALLTAGGEDDEPENDE
REMOVEALLTAGGEDDEPENDE
R3TTM_REMOVEALLTAGGEDDEPENDE
obj.REMOVEALLTAGGEDDEPENDE();
Remove all dependants from the object.
R3TTM_PROCESSSCRIPT
PROCESSSCRIPT
R3TTM_PROCESSSCRIPT
R3BOOL, true if script was succesfully executed.
char*, script to be executed
rc = obj.PROCESSSCRIPT(p3);
Execute the script assosiated with the object.
R3TTM_ENUMEXTERNALFILES
ENUMEXTERNALFILES
R3TTM_ENUMEXTERNALFILES
R3OBJ*, callback object
R3INT, callback method
void*, context
obj.ENUMEXTERNALFILES(p1, p2, p3);
Enumerate external files used by the object
R3TTM_TRANSFORMTIMELINES
TRANSFORMTIMELINES
R3TTM_TRANSFORMTIMELINES
R3FLOAT, translate
R3FLOAT, scale
obj.TRANSFORMTIMELINES(0, p2, p3);
Translate and scale the time line of all choreographs of the object.
R3TTM_USESMATERIAL
USESMATERIAL
R3TTM_USESMATERIAL
R3INT, TRUE if the material is needed.
R3OBJ*, material object
char*, material name
rc = obj.USESMATERIAL(p1, p3);
Queries whether the material is needed by the object.
R3TTM_ISANIMATED
ISANIMATED
R3TTM_ISANIMATED
R3BOOL, true if animated.
R3BOOL, no recursive.
rc = obj.ISANIMATED(p3);
Check if the object (or one of its sub objects) defines animation effects.
R3TTM_DELETEKEYFRAMER
DELETEKEYFRAMER
R3TTM_DELETEKEYFRAMER
obj.DELETEKEYFRAMER();
Delete the key framer object and all choreographs with it.
R3TTM_PREPANIMTAG
PREPANIMTAG
R3TTM_PREPANIMTAG
obj.PREPANIMTAG();
Prepare attribute for key framing. Call this before the attribute is assigned.
R3TTM_GETTIMELINE
GETTIMELINE
R3TTM_GETTIMELINE
obj.GETTIMELINE();
Get object's time line.
R3TTM_SETTIMELINE
SETTIMELINE
R3TTM_SETTIMELINE
R3BOOL, if true, keys are scaled with inversion matrix
obj.SETTIMELINE(p1, 0);
Set object's time line. If 'p1' is true, keys are scaled inversely so that their positions remain the same in absolute time space.
R3TTM_TOABSTIME
TOABSTIME
R3TTM_TOABSTIME
R3FLOAT, time
obj.TOABSTIME(p3);
This method maps the given absolute time value to object's local time space. * To map global time value into the time space of time line, see TOLOCALTIME method.
R3TTM_TOOBJTIME
TOOBJTIME
R3TTM_TOOBJTIME
R3FLOAT
obj.TOOBJTIME(p3);
Map time from object's local time space to abs time space.
R3TTM_WRITECHOREOGRAPHY
WRITECHOREOGRAPHY
R3TTM_WRITECHOREOGRAPHY
R3BOOL, true if succeeded
R3INT, index of the choreography to be written,
R3TAG*, R3RA_FileObject, R3RA_Error
rc = obj.WRITECHOREOGRAPHY(p1, p3);
Write given choreography to a file
R3TTM_READCHOREOGRAPHY
READCHOREOGRAPHY
R3TTM_READCHOREOGRAPHY
R3BOOL, true if succeeded.
R3TAG*, R3RA_FileObject, R3RA_Error
rc = obj.READCHOREOGRAPHY(p3);
Read a choreography from a file.
R3TTM_ALLOCANDGETKEYFRAMER
ALLOCANDGETKEYFRAMER
R3TTM_ALLOCANDGETKEYFRAMER
R3OBJ*, keyframer. Null if failed.
rc = obj.ALLOCANDGETKEYFRAMER();
Create key framer for the object. If object already has a key framer, it is returned.
R3TTM_REMOVETAGCHOREOGRAPHY
REMOVETAGCHOREOGRAPHY
R3TTM_REMOVETAGCHOREOGRAPHY
R3BOOL, true if succeeded.
R3INT, animated tag
R3INT, animated tag index
R3INT, choreography index
rc = obj.REMOVETAGCHOREOGRAPHY(p1, p2, p3);
R3TTM_SCRIPTOUTPUT
SCRIPTOUTPUT
R3TTM_SCRIPTOUTPUT
char
obj.SCRIPTOUTPUT(p3);
output for scripts associated with the object.
R3TTM_REMOVEUNRESOLVEDDEPEND
REMOVEUNRESOLVEDDEPEND
R3TTM_REMOVEUNRESOLVEDDEPEND
R3INT, unique identifier specifying references to be removed, or null for all references
obj.REMOVEUNRESOLVEDDEPEND(p3);
Removes unresolved dependents.
R3TTM_DOMSGAWHENIDLE
DOMSGAWHENIDLE
R3TTM_DOMSGAWHENIDLE
R3BOOL, true if succeeded
R3OBJ*, object to be called
R3INT, method
void*, param
rc = obj.DOMSGAWHENIDLE(p1, p2, p3);
Send delayed method to an object.
R3TTM_FLUSHIDLES
FLUSHIDLES
R3TTM_FLUSHIDLES
R3INT, number of idles
rc = obj.FLUSHIDLES();
Execute all pending idle messages.
R3TTM_BEGINANIM
BEGINANIM
R3TTM_BEGINANIM
R3OBJ*, layer
R3INT, number of frames
obj.BEGINANIM(p1, p3);
Sent when animation 'play' started.
R3TTM_ENDANIM
ENDANIM
R3TTM_ENDANIM
obj.ENDANIM();
Sent to an object when animation is stopped.
R3TTM_GETENDTIME
GETENDTIME
R3TTM_GETENDTIME
R3FLOAT, buffer for end time to be fetched.
obj.GETENDTIME(p3);
Return the end time. Note: this works only if the owner object (layer) has set the GetEndTimeObj and GetEndTimeMth call backs and the object is linked into the layer.
R3TTM_GETWEIGHT
GETWEIGHT
R3TTM_GETWEIGHT
R3FLOAT, weight
obj.GETWEIGHT(p3);
Geometric objects can define object specific weight. It is up to the sub classes to implement this method.
R3TTM_WEIGHTCHANGED
WEIGHTCHANGED
R3TTM_WEIGHTCHANGED
obj.WEIGHTCHANGED();
Total weight of object has changed.
R3TTM_CHANGEDEPENDENTTAGGED
CHANGEDEPENDENTTAGGED
R3TTM_CHANGEDEPENDENTTAGGED
R3BOOL, true if succeeded.
R3INT, tag identifier of the dependency
R3INT, tag value of the dependency
R3INT, new tag value
rc = obj.CHANGEDEPENDENTTAGGED(p1, p2, p3);
Change value of the given dependency tag.
R3TTM_ENUMDEPENDENTREFERENCE
ENUMDEPENDENTREFERENCE
R3TTM_ENUMDEPENDENTREFERENCE
R3TAG*, R3RA_Hook, R3RA_HookData.
obj.ENUMDEPENDENTREFERENCE(p3);
Enumerates all tagged dependency references. The given callback is called as 'callback(obj, int tag, int uniqueid, void hookdata);
R3TTCM_REGISTERDEPENDENCYTAG
REGISTERDEPENDENCYTAG
R3TTCM_REGISTERDEPENDENCYTAG
R3BOOL, true if succeeded.
rc = obj.REGISTERDEPENDENCYTAG();
Describe bi-directional binding for optimized findtagclose.
R3TTM_GETORIGVAL
GETORIGVAL
R3TTM_GETORIGVAL
void*, data
R3INT, attribute
R3INT, index or -1 for regular attrs
rc = obj.GETORIGVAL(p1, p3);
R3TTM_REMOVEREFERENCES
REMOVEREFERENCES
R3TTM_REMOVEREFERENCES
R3BOOL, permanent
R3OBJ*, target object to be removed. NULL indicats that 'this' object will be removed.
obj.REMOVEREFERENCES(p1, p3);
For class implementors. Used for removing references to other objects, or for informing other objects to remove references to the object in question. Object removes all references to the given 'p3' target object. If 'p3' is null, then the dependency objects should remove their references to this object. If 'p1' is TRUE, references should be removed permanently (r3rm_delete). Otherwise references should be invalidated. This method is called from R3RM_REMOVE and R3RM_DELETE methods.
R3TTM_SETSUBATTR
SETSUBATTR
R3TTM_SETSUBATTR
R3INT, attribute to be set
R3INT, ordnum of the sub field (0 = x, 1 = y etc. )
R3FLOAT, new value
obj.SETSUBATTR(p1, p2, p3);
This method is used for setting x/y/z etc. components of vector attribututes.
R3TTM_TOGLOBALTIME
TOGLOBALTIME
R3TTM_TOGLOBALTIME
R3INT, choreography index
R3BOOL, scale only
R3FLOAT, time value
obj.TOGLOBALTIME(p1, p2, p3);
This method converts from time relative to a timeline to global time.
R3TTM_TOLOCALTIME
TOLOCALTIME
R3TTM_TOLOCALTIME
R3INT, choreography index
R3BOOL, scale only
R3FLOAT, time value
obj.TOLOCALTIME(p1, p2, p3);
This method converts global (absolute) time to time relative to a timeline * of the specified choreography.
R3TTM_TAGISANIMATEDINCHOREOG
TAGISANIMATEDINCHOREOG
R3TTM_TAGISANIMATEDINCHOREOG
R3BOOL, TRUE if the tag is animated in the given choreography
R3INT, choreography index, -1 for the currently active choreography
R3INT, animated tag
R3INT, animated tag index
rc = obj.TAGISANIMATEDINCHOREOG(p1, p2, p3);
R3TTM_INITTAG
INITTAG
R3TTM_INITTAG
R3BOOL, true if succeeded.
rc = obj.INITTAG();
Initialize given attribute for choreographing.
R3TTM_BREAKTAGS
BREAKTAGS
R3TTM_BREAKTAGS
R3TAG*, tag value pairs specifying the attribute + attribute index.
obj.BREAKTAGS(p3);
For chor class implementors. Causes constr. system to flush the specified attribute. Attribute will not be handled by the current chor.
R3TTM_ISMANAGED
ISMANAGED
R3TTM_ISMANAGED
R3BOOL, true if the attribute is managed
R3TAG*, R3TTA_AniClid, R3TTA_AniTag, R3TTA_AniTagIndex, R3TTA_KiObj, R3TTA_KiChoreographyIndex
rc = obj.ISMANAGED(p3);
See if the given attribute is managed, or managed by the given type constructor.
R3TTM_ISENABLED
ISENABLED
R3TTM_ISENABLED
R3BOOL, true if enabled
rc = obj.ISENABLED();
Same as R3RM_GET R3TTA_Enabled. Returns TRUE if object is enabled. * Object is 'disabled' when it is, for example, moved to undo buffer.
R3TTM_NEWANIMTAG
NEWANIMTAG
R3TTM_NEWANIMTAG
R3INT, attribute identifier
R3INT, attribute index or -1 for regular attributes
obj.NEWANIMTAG(p1, p3);
Create a new animateable attribute from the given attribute * identifier and attribute index.
R3TTM_GETCHORINPUT
GETCHORINPUT
R3TTM_GETCHORINPUT
R3OBJ*, input object
R3INT, choreography index
rc = obj.GETCHORINPUT(p3);
Fetch the input object associated with the given choreography
R3TTM_NEWCHOROBJ
NEWCHOROBJ
R3TTM_NEWCHOROBJ
R3OBJ*, choreography object
R3OBJ*, animated attribute returned by R3TTM_NEWANIMTAG
R3INT, choreography index
rc = obj.NEWCHOROBJ(p1, p3);
Create a new choreography object to manage the given attribute.
R3TTM_DELCHOROBJ
DELCHOROBJ
R3TTM_DELCHOROBJ
R3OBJ*, animated object
R3INT, choreography index
obj.DELCHOROBJ(p1, p3);
Delete a choreography object binding the given * choreography index and the animation object.
R3TTM_RESOLVEREFS
RESOLVEREFS
R3TTM_RESOLVEREFS
obj.RESOLVEREFS();
Resolve references. Called when an object is inserted to layer.
R3TTM_RECONSTRUCT
RECONSTRUCT
R3TTM_RECONSTRUCT
R3BOOL, force reconstruct
obj.RECONSTRUCT(p3);
Run construction process for the object.
R3TTM_RECORD
RECORD
R3TTM_RECORD
R3BOOL, true if succeeded
R3BOOL, true to enable, false to disable
rc = obj.RECORD(p3);
Enable animation recording for the object.
R3TTM_PREPANIMATEDTAG
PREPANIMATEDTAG
R3TTM_PREPANIMATEDTAG
R3INT, attribute
obj.PREPANIMATEDTAG(p3);
Prepare the attribute for key creation
R3TTM_PREPINDEXEDANIMATEDTAG
PREPINDEXEDANIMATEDTAG
R3TTM_PREPINDEXEDANIMATEDTAG
R3INT, index of the attribute
R3INT, attribute
obj.PREPINDEXEDANIMATEDTAG(p1, p3);
Prepare the attribute for key creation
R3TTM_RECONSTRUCTOPTIMIZED
RECONSTRUCTOPTIMIZED
R3TTM_RECONSTRUCTOPTIMIZED
R3BOOL, force
obj.RECONSTRUCTOPTIMIZED(p3);
Start optimized construcion. Don't call this method directly. Instead, call R3TTM_RECONSTRUCT
R3TTM_EXECUTE
EXECUTE
R3TTM_EXECUTE
obj.EXECUTE();
This method is sent by R3TTM_RECONSTRUCT. Constructors should * catch this method and apply their effects.
R3TTM_MIRRORTIMELINE
MIRRORTIMELINE
R3TTM_MIRRORTIMELINE
R3INT, chor
obj.MIRRORTIMELINE(p3);
Mirror the given choreography object.
R3TTM_SETTAGVALUE
SETTAGVALUE
R3TTM_SETTAGVALUE
R3BOOL, if the tag doesn't exist, return NULL, otherwise TRUE.
R3INT, dynamic tag
void*, value
rc = obj.SETTAGVALUE(p1, p3);
Sets value for a dynamic tag.
R3TTM_FLUSHSELECTEDIDLES
FLUSHSELECTEDIDLES
R3TTM_FLUSHSELECTEDIDLES
R3INT, method, if != 0 only these methods are removed/executed
R3BOOL, dont_execute, if TRUE selected idle messages are removed but not executed
obj.FLUSHSELECTEDIDLES(p1, p2, 0);
Execute selected pending idle messages
R3TTM_SCRIPTERROR
SCRIPTERROR
R3TTM_SCRIPTERROR
char*, format
char*, msg
obj.SCRIPTERROR(p1, p3);
Callback method for printing scripting errors
R3TTM_ISTIMEBASED
ISTIMEBASED
R3TTM_ISTIMEBASED
R3BOOL, true if time based.
rc = obj.ISTIMEBASED();
Return true if the object in question is animated and the animation depends on time.
R3TTM_CALLUPDATE
CALLUPDATE
R3TTM_CALLUPDATE
obj.CALLUPDATE();
Some objects may introduce several interfaces to a certain attribute. * When such an attribute is defined, this method must be catched. The method * should call R3RM_UPDATE with the attribute + all the other attributes * that depend on the attribute in question. For class implementors only.
R3TTM_MAKETARGET
MAKETARGET
R3TTM_MAKETARGET
R3BOOL, TRUE/FALSE to set/reset target property
obj.MAKETARGET(p3);
Set 'target' property for the object. This indicates that the object * is created / managed by other objects in the scene and there is no need to * save/load them, for example.
R3TTM_ISTARGET
ISTARGET
R3TTM_ISTARGET
R3BOOL, TRUE if target, FALSE if not
rc = obj.ISTARGET();
Return TRUE if the object has 'target' property set.
R3TTM_SETTAGS
SETTAGS
R3TTM_SETTAGS
R3TAG*, tag array
obj.SETTAGS(p3);
Same as R3RM_SET, except that no R3RM_CHANGED events are generated.
R3TTM_LOADREADY
LOADREADY
R3TTM_LOADREADY
obj.LOADREADY();
For class implementors only. Called when all object attributes are loaded.
R3TTM_SETITAG
SETITAG
R3TTM_SETITAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3INT, attribute to be set
rc = obj.SETITAG(p1, p3);
Set integer user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_GETITAG
GETITAG
R3TTM_GETITAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3INT*, buffer for the attribute to be fetched
rc = obj.GETITAG(p1, p3);
Fetch integer user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_SETFTAG
SETFTAG
R3TTM_SETFTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3FLOAT, attribute to be set
rc = obj.SETFTAG(p1, p3);
Set float user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_GETFTAG
GETFTAG
R3TTM_GETFTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3FLOAT, buffer for the attribute to be fetched
rc = obj.GETFTAG(p1, p3);
Fetch user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_SETVTAG
SETVTAG
R3TTM_SETVTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3VECTOR, attribute to be set
rc = obj.SETVTAG(p1, p3);
Set vector user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_GETVTAG
GETVTAG
R3TTM_GETVTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3VECTOR, buffer for the attribute to be fetched
rc = obj.GETVTAG(p1, p3);
Fetch vector user tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_SETCSTAG
SETCSTAG
R3TTM_SETCSTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3VECTOR, attribute to be set
rc = obj.SETCSTAG(p1, p3);
Set coordinate system tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_GETCSTAG
GETCSTAG
R3TTM_GETCSTAG
R3BOOL, true if succeeded
char*, tag identifier string. Must consists of four characters. The first character * determines the type, as defined in r3ttag.h (R3TT_I etc.).
R3COORDSYS, buffer for the attribute to be fetched
rc = obj.GETCSTAG(p1, p3);
Fetch coordinate system tag. User tags are identified as four ascii characters, whose * first character determines the type of the tag.
R3TTM_UNSELECTALLKNOTS
UNSELECTALLKNOTS
R3TTM_UNSELECTALLKNOTS
obj.UNSELECTALLKNOTS();
Unselect all key frames
R3TTM_SELECTKNOT
SELECTKNOT
R3TTM_SELECTKNOT
R3INT, attribute
R3INT, attribute index for indexed attrs, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex, R3TTA_KnotIndex
obj.SELECTKNOT(p1, p2, p3);
Select key frame specified by R3TTA_KnotIndex.
R3TTM_TRANSLATESELECTEDKNOTS
TRANSLATESELECTEDKNOTS
R3TTM_TRANSLATESELECTEDKNOTS
R3INT, attribute identifier
R3INT, attribute index for indexed attrs, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex, R3TTA_TranslateKnotDelta, R3TTA_TranslateKnotSnap
obj.TRANSLATESELECTEDKNOTS(p1, p2, p3);
Translate selected key frames. R3TTA_TransalteKnotDelta (R3FLOAT) defines * the translation in abs time space.
R3TTM_DELETESELECTEDKNOTS
DELETESELECTEDKNOTS
R3TTM_DELETESELECTEDKNOTS
R3INT, attribute
R3INT, attribute index, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex
obj.DELETESELECTEDKNOTS(p1, p2, p3);
Delete selected key frames from the given attribute and choreography.
R3TTM_DUPLICATESELECTEDKNOTS
DUPLICATESELECTEDKNOTS
R3TTM_DUPLICATESELECTEDKNOTS
R3INT, attribute
R3INT, attribute index, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex (R3INT), R3TTA_SelectDuplicateKnots (R3BOOL)
obj.DUPLICATESELECTEDKNOTS(p1, p2, p3);
Duplicate selected knots.
R3TTM_SETSELECTEDKNOTS
SETSELECTEDKNOTS
R3TTM_SETSELECTEDKNOTS
R3INT, attribute identifier
R3INT, attribute index, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex (R3INT), R3TTA_KnotValue (R3FLOAT*)
obj.SETSELECTEDKNOTS(p1, p2, p3);
Assign value to the selected key frames
R3TTM_ENUMTIMELINES
ENUMTIMELINES
R3TTM_ENUMTIMELINES
R3OBJ*, callback object to be called per timeline
R3INT, callback method
R3TAG*, R3TTA_ChoreographyIndex, R3RA_HookData,
obj.ENUMTIMELINES(p1, p2, p3);
Enumerate time lines for the given choreography. If ChoreographyIndex * is -1, all chors are enumerated.
R3TTM_GETANIMCURVEFORCHOR
GETANIMCURVEFORCHOR
R3TTM_GETANIMCURVEFORCHOR
R3OBJ*, curve or NULL if the point in question is not animated
R3INT, tag
R3INT, tag index or -1 for regular tags
R3TAG*, R3TTA_ChoreograhyIndex, R3TTA_PointIndex
rc = obj.GETANIMCURVEFORCHOR(p1, p2, p3);
Get animation curve for the given choreography, selected point and attribute.
R3TTM_GETNEXTKNOTPOS
GETNEXTKNOTPOS
R3TTM_GETNEXTKNOTPOS
R3BOOL, true if found
R3INT, attribute
R3INT, attribute index,
R3TAG*, R3TTA_ChoreographyIndex (R3INT), R3TTA_KnotValue (R3FLOAT*)
rc = obj.GETNEXTKNOTPOS(p1, p2, p3);
Given time in abs space, find the time of the next knot position. * The current time is given in R3TTA_KnotValue.
R3TTM_GETPREVIOUSKNOTPOS
GETPREVIOUSKNOTPOS
R3TTM_GETPREVIOUSKNOTPOS
R3BOOL, true if found
R3INT, attribute
R3INT, attribute index,
R3TAG*, R3TTA_ChoreographyIndex (R3INT), R3TTA_KnotValue (R3FLOAT*)
rc = obj.GETPREVIOUSKNOTPOS(p1, p2, p3);
Given time in abs space, find the time of the previous knot position. * The current time is given in R3TTA_KnotValue.
R3TTM_MANAGETAG
MANAGETAG
R3TTM_MANAGETAG
R3OBJ*, animated attribute object or NULL if failed
R3TAG*, see R3TTA_Ani.. tags
rc = obj.MANAGETAG(p3);
Same as R3TTM_PREPANIMTAG, but is not sensitive to anim. record mode. * Choreography is always created, unless there is already a chor. * with the given name and class id.
R3TTM_UPDATETAGSIZE
UPDATETAGSIZE
R3TTM_UPDATETAGSIZE
R3INT, tag
R3INT, tag index, or -1 for regular attrs.
obj.UPDATETAGSIZE(p1, p3);
This method is for backward compability only. IF an object writes an array to a file and the item size changes, all old projects must be update by calling this method for the attribute.
R3TTM_DELCHORBYINPUT
DELCHORBYINPUT
R3TTM_DELCHORBYINPUT
R3BOOL, true if chor was found and deleted.
R3TAG*, see R3TTA_Ani.. tags
rc = obj.DELCHORBYINPUT(p3);
Removes the choreography associated with the given input object.
R3TTM_RESETKEYFRAMEINPUTOBJE
RESETKEYFRAMEINPUTOBJE
R3TTM_RESETKEYFRAMEINPUTOBJE
obj.RESETKEYFRAMEINPUTOBJE();
Detach from the given input object.
R3TTM_UNMANAGETAG
UNMANAGETAG
R3TTM_UNMANAGETAG
R3TAG*
obj.UNMANAGETAG(p3);
Remove the given choreographs from the tag.
R3TTM_MOVECHOR
MOVECHOR
R3TTM_MOVECHOR
R3BOOL, true if succeeded
R3INT, from
R3INT, to
rc = obj.MOVECHOR(p1, p3);
Move the choreography in the constructin stack
R3TTM_NEWCHOR
NEWCHOR
R3TTM_NEWCHOR
R3BOOL, false if failed
R3CLID, class id
R3INT, chornum (choreography index) specifying the position.
char*, name
rc = obj.NEWCHOR(p1, p2, p3);
Create new choreography. The new chor is inserted after the specified chor index. * If -1 is passed in p2, the new chor is inserted after the current chor. Note: * This just creates a choreography entry. No animated attributes nor actual * choreography objects will be created.
R3TTM_DELCHOR
DELCHOR
R3TTM_DELCHOR
R3BOOL, true if succeeded
R3BOOL, dont try to resolve any references
R3INT, chornum
rc = obj.DELCHOR(p1, p3);
Delete choreography specified by ordnum
R3TTM_COPYCHOR
COPYCHOR
R3TTM_COPYCHOR
R3BOOL, true if succeeded
R3INT, chor to be copied
R3INT, index of the newly created chor. If -1, new chor will be inserted * after the current chor.
rc = obj.COPYCHOR(p1, p3);
Duplicate a choreography
R3TTM_CHORCHANGED
CHORCHANGED
R3TTM_CHORCHANGED
obj.CHORCHANGED();
Private callback method for reporting attr. changes.
R3TTM_COPYANIMATEDATTRS
COPYANIMATEDATTRS
R3TTM_COPYANIMATEDATTRS
R3BOOL, true if succeeded
R3OBJ*, from object
R3INT, from choreography
R3INT, to choreography
rc = obj.COPYANIMATEDATTRS(p1, p2, p3);
Copy animated attributes associated with the given source object and choreography to given target object and choreography.
R3TTM_ADDKEYFRAME
ADDKEYFRAME
R3TTM_ADDKEYFRAME
R3BOOL, true if succeeded
R3INT, attribute
R3INT, attribute index or -1 for regular attributes
rc = obj.ADDKEYFRAME(p1, p3);
Add new keyframe
R3TTM_TAGENABLEKEYFR
TAGENABLEKEYFR
R3TTM_TAGENABLEKEYFR
R3BOOL, true if succeeded
R3INT, attribute id
R3INT, attribute index, or -1 for regular attrs
R3BOOL, true to enable, false to disable
rc = obj.TAGENABLEKEYFR(p1, p2, p3);
Enable / disable keyframing for the given attribute
R3TTM_SELECTANIMTAG
SELECTANIMTAG
R3TTM_SELECTANIMTAG
R3BOOL, true if succeeded
R3INT, attr identifier
R3INT, index if indexed attr, -1 for regular attrs
R3BOOL, true selects, false deselects
rc = obj.SELECTANIMTAG(p1, p2, p3);
Selected animated attribute.
R3TTM_ANIMTAGISSELECTED
ANIMTAGISSELECTED
R3TTM_ANIMTAGISSELECTED
R3BOOL, true selected, false not selected
R3INT, attribute id
R3INT, index for indexed attrs, -1 for regular attrs
rc = obj.ANIMTAGISSELECTED(p1, p3);
See if the given attribute is selected.
R3TTM_UP
UP
R3TTM_UP
R3BOOL, true if succeeded, false for no more chors.
rc = obj.UP();
Make the next constructor in the stack the current constructor.
R3TTM_DOWN
DOWN
R3TTM_DOWN
R3BOOL, true if succeeded, false for no more chors.
rc = obj.DOWN();
Make the previous constructor in the stack the current constructor.
R3TTM_SHOWCHOR
SHOWCHOR
R3TTM_SHOWCHOR
R3BOOL, true if succeeded
R3INT, choreography index
rc = obj.SHOWCHOR(p3);
Make the given choreography visible.
R3TTM_HIDECHOR
HIDECHOR
R3TTM_HIDECHOR
R3BOOL, true if succeeded
R3INT, choreography index
rc = obj.HIDECHOR(p3);
Make the given choreography invisible.
R3TTM_SHOWALLCHORS
SHOWALLCHORS
R3TTM_SHOWALLCHORS
R3BOOL, true if choreographs were found
rc = obj.SHOWALLCHORS();
Make all choreographs visible
R3TTM_PURGECHORS
PURGECHORS
R3TTM_PURGECHORS
obj.PURGECHORS();
Remove empty keyframers
R3TTM_TAGISKEYFRENABLED
TAGISKEYFRENABLED
R3TTM_TAGISKEYFRENABLED
R3BOOL, true if enabled
R3INT, attribute identifier
R3INT, index for indexed attrs, -1 for regular
rc = obj.TAGISKEYFRENABLED(p1, p3);
See if the attribute is enabled / disabled for key framing.
R3TTM_GETCHORNAME
GETCHORNAME
R3TTM_GETCHORNAME
char*, reference to choreography name
R3INT, choreography index
rc = obj.GETCHORNAME(p3);
Given choreography index, fetch the name of the choreography
R3TTM_GETCHORCLID
GETCHORCLID
R3TTM_GETCHORCLID
R3CLID, class id of the given choreography
R3INT, choreography index
rc = obj.GETCHORCLID(p3);
Given choreography index, fetch the class id of the choreography object
R3TTM_GETCHORCOUNT
GETCHORCOUNT
R3TTM_GETCHORCOUNT
R3INT, number of choreographs
rc = obj.GETCHORCOUNT();
Fetch the number of choreographs.
R3TTM_GETCHORBYINPUT
GETCHORBYINPUT
R3TTM_GETCHORBYINPUT
R3INT, choreography index, or -1 if no chor was found.
R3CLID, choreography class id
R3INT, unique id identifying the input object
rc = obj.GETCHORBYINPUT(p1, p3);
See if there is a choreography with given class id associated with the given input object.
R3TTM_SUPPORTKEYFRAMING
SUPPORTKEYFRAMING
R3TTM_SUPPORTKEYFRAMING
R3BOOL, true if supported
R3INT, attribute
R3INT, attribute index for indexed attrs, or -1 for regular attrs
R3INT, choreography index
rc = obj.SUPPORTKEYFRAMING(p1, p2, p3);
See if the given choreography supports key framing
R3TTM_FLUSHTAGS
FLUSHTAGS
R3TTM_FLUSHTAGS
R3TAG*, attributes to be flushed.
obj.FLUSHTAGS(p3);
Must be called by constructors who need to read attributes * from objects. a
R3TTM_SPLITTIMELINE
SPLITTIMELINE
R3TTM_SPLITTIMELINE
R3BOOL, true if succeeded
R3INT, choreography index. If 0, all sub choreographs are split
R3FLOAT, time
rc = obj.SPLITTIMELINE(p1, p3);
Split time line of the given chor.
R3TTM_KEYFRAME
KEYFRAME
R3TTM_KEYFRAME
R3OBJ*, keyframer object, if succeeded
R3BOOL, true enables key framing, FALSE disables it.
rc = obj.KEYFRAME(p3);
Enable / disable keyframing for the object.
R3TTM_FINDTAGCLOSEHIERARCHY
FINDTAGCLOSEHIERARCHY
R3TTM_FINDTAGCLOSEHIERARCHY
R3OBJ*, target object
R3INT, tag identifier
R3INT, identifier value
R3OBJ*, nothere
rc = obj.FINDTAGCLOSEHIERARCHY(p1, p2, p3);
Hierarchy based, non-optimized
R3TTM_TAGIDCHANGED
TAGIDCHANGED
R3TTM_TAGIDCHANGED
R3INT, tag identifier
R3INT, original value
R3INT, new value
obj.TAGIDCHANGED(p1, p2, p3);
If object uses custom identifier for R3TTM_FINDTAGCLOSE, * it must call this method whenever the object identifier changes.
R3TTM_GETCURRENTFRAME
GETCURRENTFRAME
R3TTM_GETCURRENTFRAME
R3INT*, buffer for the current frame
obj.GETCURRENTFRAME(p3);
Return the current frame. Note: this works only if the owner object (layer) has set the GetTimeObj and GetFrameMth call backs.
R3TTM_MAPFROMINPUT
MAPFROMINPUT
R3TTM_MAPFROMINPUT
R3BOOL, true if method succeeded
R3OBJ*, keyframer object
R3INT, point index
R3VECTOR, vector to be mapped
rc = obj.MAPFROMINPUT(p1, p2, p3);
Map chor effect from input space to target space
R3TTM_MAPTOINPUT
MAPTOINPUT
R3TTM_MAPTOINPUT
R3BOOL, true if method succeeded
R3OBJ*, keyframer object
R3INT, point index
R3VECTOR, vector to be mapped
rc = obj.MAPTOINPUT(p1, p2, p3);
Map chor effect from target to input space
R3TTM_SETINPUTSPACE
SETINPUTSPACE
R3TTM_SETINPUTSPACE
R3BOOL, true if method succeeded
R3BOOL, true for input object's space, false for native space
R3TAG*, R3TTA_AniTag, R3TTA_AniTagIndex, R3TTA_KiChoreographyIndex
rc = obj.SETINPUTSPACE(p1, p3);
Enable input space for the specified choreography and attribute.
R3TTM_GETINPUTSPACE
GETINPUTSPACE
R3TTM_GETINPUTSPACE
R3BOOL, true if method succeeded
R3BOOL*, true for input object's space, false for native space
R3TAG*, R3TTA_AniTag, R3TTA_AniTagIndex, R3TTA_KiChoreographyIndex
rc = obj.GETINPUTSPACE(p1, p3);
Enable input space for the specified choreography and attribute.
R3TTM_SHARPENSELECTEDKNOTS
SHARPENSELECTEDKNOTS
R3TTM_SHARPENSELECTEDKNOTS
R3INT, attribute
R3INT, attribute index, or -1 for regular attrs
R3TAG*, R3TTA_ChoreographyIndex
obj.SHARPENSELECTEDKNOTS(p1, p2, p3);
Set selected keyframers polygonal.
R3TTM_TOP
TOP
R3TTM_TOP
R3BOOL, true if succeeded, false if no chors found.
rc = obj.TOP();
Make the last chor the current constructor.
R3TTM_BOTTOM
BOTTOM
R3TTM_BOTTOM
R3BOOL, true if succeeded, false for no chors.
rc = obj.BOTTOM();
Make the init. constructor he current constructor.
Keyframer
Keyframer
R3TTA_Keyframer
Object
R3OBJ*
keyframer object
jsobj.SetKeyframer(value);
value = jsobj.GetKeyframer();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3TTA_Keyframer, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3TTA_Keyframer, &value, R3TAG_END);
AnimRecord
AnimRecord
R3TTA_AnimRecord
Boolean
R3BOOL
object is in anim. record mode
jsobj.SetAnimRecord(value);
value = jsobj.GetAnimRecord();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_AnimRecord, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_AnimRecord, &value, R3TAG_END);
ChoreographyFrequency
ChoreographyFrequency
R3TTA_ChoreographyFrequency
Number
R3FLOAT
indexed attr. Frequency for choreographs
jsobj.SetChoreographyFrequency(index, value);
value = jsobj.GetChoreographyFrequency(index);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3TTA_ChoreographyFrequency, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3TTA_ChoreographyFrequency, &value, R3TAG_END);
ChoreographyWeight
ChoreographyWeight
R3TTA_ChoreographyWeight
Number
R3FLOAT
indexed attr, weight for choreographs
jsobj.SetChoreographyWeight(index, value);
value = jsobj.GetChoreographyWeight(index);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3TTA_ChoreographyWeight, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3TTA_ChoreographyWeight, &value, R3TAG_END);
AnimIfTarget
AnimIfTarget
R3TTA_AnimIfTarget
Boolean
R3BOOL
set to enable keyframing only for selected objects, clear to allow keyframing for any object
jsobj.SetAnimIfTarget(value);
value = jsobj.GetAnimIfTarget();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_AnimIfTarget, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_AnimIfTarget, &value, R3TAG_END);
AnimDisabled
AnimDisabled
R3TTA_AnimDisabled
Boolean
R3BOOL
set to disable keyframing completely
jsobj.SetAnimDisabled(value);
value = jsobj.GetAnimDisabled();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_AnimDisabled, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_AnimDisabled, &value, R3TAG_END);
AnimIfAnimated
AnimIfAnimated
R3TTA_AnimIfAnimated
Boolean
R3BOOL
disable automatic 'make animateable' feature
jsobj.SetAnimIfAnimated(value);
value = jsobj.GetAnimIfAnimated();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_AnimIfAnimated, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_AnimIfAnimated, &value, R3TAG_END);
Time
Time
R3TTA_Time
Number
R3FLOAT
current time
jsobj.SetTime(value);
value = jsobj.GetTime();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3TTA_Time, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3TTA_Time, &value, R3TAG_END);
FloatSize
FloatSize
R3TTA_FloatSize
Integer
R3INT
value = jsobj.GetFloatSize();
R3INT value;
R3GetAttrs(r3obj, R3TTA_FloatSize, &value, R3TAG_END);
ColorSize
ColorSize
R3TTA_ColorSize
Integer
R3INT
value = jsobj.GetColorSize();
R3INT value;
R3GetAttrs(r3obj, R3TTA_ColorSize, &value, R3TAG_END);
Target
Target
R3TTA_Target
Boolean
R3BOOL
if true the object is managed by other objects
jsobj.SetTarget(value);
value = jsobj.GetTarget();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_Target, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_Target, &value, R3TAG_END);
Enabled
Enabled
R3TTA_Enabled
Boolean
R3BOOL
used internally
jsobj.SetEnabled(value);
value = jsobj.GetEnabled();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_Enabled, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_Enabled, &value, R3TAG_END);
CurrentChor
CurrentChor
R3TTA_CurrentChor
Integer
R3INT
current choreography
jsobj.SetCurrentChor(value);
value = jsobj.GetCurrentChor();
R3INT value = ...;
R3SetAttrs(r3obj, R3TTA_CurrentChor, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3TTA_CurrentChor, &value, R3TAG_END);
InvisibleChors
InvisibleChors
R3TTA_InvisibleChors
Boolean
R3BOOL
do not show choreographs associated with this object
jsobj.SetInvisibleChors(value);
value = jsobj.GetInvisibleChors();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_InvisibleChors, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_InvisibleChors, &value, R3TAG_END);
ChoreographyActive
ChoreographyActive
R3TTA_ChoreographyActive
Boolean
R3BOOL
indexed attr, chor enabled/disabled
jsobj.SetChoreographyActive(index, value);
value = jsobj.GetChoreographyActive(index);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_ChoreographyActive, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_ChoreographyActive, &value, R3TAG_END);
ChoreographyPeriodic
ChoreographyPeriodic
R3TTA_ChoreographyPeriodic
Boolean
R3BOOL
indexed attr, periodic on/off
jsobj.SetChoreographyPeriodic(index, value);
value = jsobj.GetChoreographyPeriodic(index);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3TTA_ChoreographyPeriodic, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3TTA_ChoreographyPeriodic, &value, R3TAG_END);
ChoreographyPhase
ChoreographyPhase
R3TTA_ChoreographyPhase
Number
R3FLOAT
indexed attr. Phase for choreographs
jsobj.SetChoreographyPhase(index, value);
value = jsobj.GetChoreographyPhase(index);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3TTA_ChoreographyPhase, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3TTA_ChoreographyPhase, &value, R3TAG_END);
Frame
Frame
R3TTA_Frame
Integer
R3INT
current frame
value = jsobj.GetFrame();
R3INT value;
R3GetAttrs(r3obj, R3TTA_Frame, &value, R3TAG_END);
UniqueId
UniqueId
R3TTA_UniqueId
Integer
R3INT
unique identifier for the object
jsobj.SetUniqueId(value);
value = jsobj.GetUniqueId();
R3INT value = ...;
R3SetAttrs(r3obj, R3TTA_UniqueId, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3TTA_UniqueId, &value, R3TAG_END);
FindTagCloseMth
FindTagCloseMth
R3TTA_FindTagCloseMth
Integer
R3INT
method for dispatching search to parent sub system
jsobj.SetFindTagCloseMth(value);
value = jsobj.GetFindTagCloseMth();
R3INT value = ...;
R3SetAttrs(r3obj, R3TTA_FindTagCloseMth, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3TTA_FindTagCloseMth, &value, R3TAG_END);
Script
Script
R3TTA_Script
String
char*
script associated with the object
jsobj.SetScript(value);
value = jsobj.GetScript();
char* value = ...;
R3SetAttrs(r3obj, R3TTA_Script, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3TTA_Script, &value, R3TAG_END);
ScriptClid
ScriptClid
R3TTA_ScriptClid
Integer
R3CLID
class id of the scripting engine
jsobj.SetScriptClid(value);
value = jsobj.GetScriptClid();
R3CLID value = ...;
R3SetAttrs(r3obj, R3TTA_ScriptClid, value, R3TAG_END);
R3CLID value;
R3GetAttrs(r3obj, R3TTA_ScriptClid, &value, R3TAG_END);
callbacks for inter layer bindings
Supported data types
Tag value union. Use 'sizeof(R3TTAGDATA)' to allocate buffer for tag values to be fetched
Macros for handling typed tags
Add (|) one of these to your tag values to get dynamic tags.
flags for R3TTM_TRANSFORMTIMELINES
Tags