r3layer
real/r3layer/r3layer.h
r3r3lay
Layer Class
r3Listlayer
R3CLID_LISTLAYER
r3Layer
R3CLID_LAYER - 63
NEWINTERACTOR, PREVINTERACTOR, INTERACTORDONE, LOCKINTERACTOR, POPINTERACTOR, SWAPINTERACTOR, ANIMRECORD, FINDTAGCLOSE, PURGEMATERIALS, PUSHINTERACTOR, REWIND, PURGE, REGISTEROBJECTDEPENDE, ISTIMESENSITIVE, NEXTKEY, PREVKEY, PLAYTONEXTKEY, PLAYTOPREVKEY, GETCURRENTSUBLAYER, NEWKEY, CHORDOWN, CHORUP, ENABLEATTRFORKEYFR, ENABLEALLFORKEYFR, FIXATTRSFORKEYFR, PURGEUNRESOLVEDREFS, DELSELECTEDKEYS, DELCURRENTCHOR, FINDIMAGE, OPTRESOLVINVALIDATE, DOPURGEUNRESOLVEDREFS, SAVESELECTEDGEOMETRY, LOADGEOMETRYWITHREFOB, SHARPENSELECTEDKEYS, CHECKREFERENCES, RENAMEREFERENCES, ADDMISSINGCHANNELS, ADDCHANNEL, CHORBOTTOM, CHORTOP,
Prims, PrimModify, Materials, Envelopes, PostImageEffects, PostParticleEffects, Images, Grids, Animator, ClipBoard, Interactor, WireMaterialEvaluator, WireMaterialEvaluator, ProgressIndicator, Painter3D, Painter2D, AnimRecord, Removable, UnitConverter, RewindObj, RewindMth, StartPlayMth, UserChannels, Saved, Thumbnail, AsyncExecutor, RenderSettings, ViewModels, UndoDepth, FileRenderers, Outputs, CurrentType, Filer,
int R3RegisterLayerClass(R3APP *app);
R3LAYM_NEWINTERACTOR
NEWINTERACTOR
R3LAYM_NEWINTERACTOR
R3OBJ*, new interactor
R3BOOL, cancel the current before creating new
R3CLID, class id of the interactor to be created
rc = obj.NEWINTERACTOR(p1, p3);
Start new interactor.
R3LAYM_PREVINTERACTOR
PREVINTERACTOR
R3LAYM_PREVINTERACTOR
R3OBJ*, the resumed previous interactor object
rc = obj.PREVINTERACTOR();
Resume the previous interactor
R3LAYM_INTERACTORDONE
INTERACTORDONE
R3LAYM_INTERACTORDONE
R3BOOL, replace with
obj.INTERACTORDONE(p3);
Accept the current interactor and
R3LAYM_LOCKINTERACTOR
LOCKINTERACTOR
R3LAYM_LOCKINTERACTOR
obj.LOCKINTERACTOR();
Lock the interactor. Accepting will not then * terminate the interactor.
R3LAYM_POPINTERACTOR
POPINTERACTOR
R3LAYM_POPINTERACTOR
obj.POPINTERACTOR();
Pop topmost (the current) interactor off the interactor stack.
R3LAYM_SWAPINTERACTOR
SWAPINTERACTOR
R3LAYM_SWAPINTERACTOR
obj.SWAPINTERACTOR();
Swap the two topmost interactors. The current interactor * is suspended.
R3LAYM_ANIMRECORD
ANIMRECORD
R3LAYM_ANIMRECORD
R3BOOL, true to enable, false to disable.
obj.ANIMRECORD(p3);
Enter/exit animation recording mode
R3LAYM_FINDTAGCLOSE
FINDTAGCLOSE
R3LAYM_FINDTAGCLOSE
R3OBJ*, object if found, otherwise NULL.
R3INT, attribute id, such as R3TTA_UniqueID
R3INT, identifier
R3OBJ*, don't look from this object. Set to null for full scan.
rc = obj.FINDTAGCLOSE(p1, p2, p3);
Find object with given identifier.
R3LAYM_PURGEMATERIALS
PURGEMATERIALS
R3LAYM_PURGEMATERIALS
obj.PURGEMATERIALS();
Purge materials
R3LAYM_PUSHINTERACTOR
PUSHINTERACTOR
R3LAYM_PUSHINTERACTOR
R3OBJ*, interactor
R3CLID, class id of the new interactor to be created.
rc = obj.PUSHINTERACTOR(p3);
Push new interactor into the interactor stack.
R3LAYM_REWIND
REWIND
R3LAYM_REWIND
obj.REWIND();
Rewind the animation
R3LAYM_PURGE
PURGE
R3LAYM_PURGE
R3OBJ*, sub layer
obj.PURGE(p3);
Purge a sub layer
R3LAYM_REGISTEROBJECTDEPENDE
REGISTEROBJECTDEPENDE
R3LAYM_REGISTEROBJECTDEPENDE
R3BOOL, TRUE if successful
R3CLID, class id of object which includes the reference
R3CLID, class id of referred object
R3TAG*, dependency check hook and an optional dep. rename hook *
rc = obj.REGISTEROBJECTDEPENDE(p1, p2, p3);
Add a description of object dependency
R3LAYM_ISTIMESENSITIVE
ISTIMESENSITIVE
R3LAYM_ISTIMESENSITIVE
R3BOOL, true if time sensitive objects found
rc = obj.ISTIMESENSITIVE();
See if the project contains time sensitive objects.
R3LAYM_NEXTKEY
NEXTKEY
R3LAYM_NEXTKEY
R3BOOL, true if succeeded
R3INT, attribute id or 0 for any
R3INT, attribute index or -1 for regular attrs
R3INT, chor index or -1 for the current chor
rc = obj.NEXTKEY(p1, p2, p3);
Jump to the next key.
R3LAYM_PREVKEY
PREVKEY
R3LAYM_PREVKEY
R3BOOL, true if succeeded
R3INT, attribute id or 0 for any
R3INT, attribute index or -1 for regular attrs
R3INT, chor index or -1 for the current chor
rc = obj.PREVKEY(p1, p2, p3);
Jump to the previous key.
R3LAYM_PLAYTONEXTKEY
PLAYTONEXTKEY
R3LAYM_PLAYTONEXTKEY
R3BOOL, true if succeeded
R3INT, attribute id or 0 for any
R3INT, attribute index or -1 for regular attrs
R3INT, chor index or -1 for the current chor
rc = obj.PLAYTONEXTKEY(p1, p2, p3);
Play the animation to the next key.
R3LAYM_PLAYTOPREVKEY
PLAYTOPREVKEY
R3LAYM_PLAYTOPREVKEY
R3BOOL, true if succeeded
R3INT, attribute id or 0 for any
R3INT, attribute index or -1 for regular attrs
R3INT, chor index or -1 for the current chor
rc = obj.PLAYTOPREVKEY(p1, p2, p3);
Play the animation to the previous key.
R3LAYM_GETCURRENTSUBLAYER
GETCURRENTSUBLAYER
R3LAYM_GETCURRENTSUBLAYER
R3OBJ*, current sub layer
R3INT, see enum r3layertype codes
rc = obj.GETCURRENTSUBLAYER(p3);
Fetch the layer corresponding to given type (enum r3layertype)
R3LAYM_NEWKEY
NEWKEY
R3LAYM_NEWKEY
R3BOOL, true if succeeded
R3INT, attribute id
R3INT, attribute index or -1 for regular attrs
rc = obj.NEWKEY(p1, p3);
Create a new key frame at current time for the currently selected objects * in the current sub layer.
R3LAYM_CHORDOWN
CHORDOWN
R3LAYM_CHORDOWN
obj.CHORDOWN();
Move down in the choreography stack.
R3LAYM_CHORUP
CHORUP
R3LAYM_CHORUP
obj.CHORUP();
Move up in the choreography stack.
R3LAYM_ENABLEATTRFORKEYFR
ENABLEATTRFORKEYFR
R3LAYM_ENABLEATTRFORKEYFR
R3INT, attribute
R3INT, attribute index, or -1 of regular attribute
R3BOOL, enable / disable
obj.ENABLEATTRFORKEYFR(p1, p2, p3);
Enable/disable attribute for keyframing.
R3LAYM_ENABLEALLFORKEYFR
ENABLEALLFORKEYFR
R3LAYM_ENABLEALLFORKEYFR
R3BOOL, enable / disable
obj.ENABLEALLFORKEYFR(p3);
Enable/disable all attributes in the selected objects in the current layer.
R3LAYM_FIXATTRSFORKEYFR
FIXATTRSFORKEYFR
R3LAYM_FIXATTRSFORKEYFR
R3BOOL, true to fix
obj.FIXATTRSFORKEYFR(p3);
Fix the animated attribute set for the selected objects in the current layer.
R3LAYM_PURGEUNRESOLVEDREFS
PURGEUNRESOLVEDREFS
R3LAYM_PURGEUNRESOLVEDREFS
obj.PURGEUNRESOLVEDREFS();
Remove unresolved references, such as keyframe input objects, taggedependants etc.
R3LAYM_DELSELECTEDKEYS
DELSELECTEDKEYS
R3LAYM_DELSELECTEDKEYS
R3BOOL, true if succeeded
rc = obj.DELSELECTEDKEYS();
Delete selected key frames in the current sub layer.
R3LAYM_DELCURRENTCHOR
DELCURRENTCHOR
R3LAYM_DELCURRENTCHOR
obj.DELCURRENTCHOR();
Delete the current choreography from the selected objects
R3LAYM_FINDIMAGE
FINDIMAGE
R3LAYM_FINDIMAGE
R3OBJ*, image obj or NULL if not found
char*, name
rc = obj.FINDIMAGE(p3);
Finds an image object from the current project by its name. The method locks the image layer while searching and increases refcount of the found image. Caller must unref the object after use.
R3LAYM_OPTRESOLVINVALIDATE
OPTRESOLVINVALIDATE
R3LAYM_OPTRESOLVINVALIDATE
obj.OPTRESOLVINVALIDATE();
Mark optimization data allocated by * R3LAYM_OPTRESOLVBEGIN invalid. The data will be reallocated when * next R3LAYM_OPTRESOLVBEGIN is called.
R3LAYM_DOPURGEUNRESOLVEDREFS
DOPURGEUNRESOLVEDREFS
R3LAYM_DOPURGEUNRESOLVEDREFS
obj.DOPURGEUNRESOLVEDREFS();
Remove unresolved references, such as keyframe input objects, taggedependants etc. Called internally by R3LAYM_PURGEUNRESOLVEDREFS
R3LAYM_SAVESELECTEDGEOMETRY
SAVESELECTEDGEOMETRY
R3LAYM_SAVESELECTEDGEOMETRY
char*, name for saving
obj.SAVESELECTEDGEOMETRY(p3);
Saves the selected geometry objects and the materials, effects and images referenced * by the geometrics
R3LAYM_LOADGEOMETRYWITHREFOB
LOADGEOMETRYWITHREFOB
R3LAYM_LOADGEOMETRYWITHREFOB
char*, file name
R3INT, see R3LIBACT_ definitions below
R3TAG*, tag list. If R3LAYA_LoadedGeometry is included, the method places the root pointer of the loaded geometry to the address pointed by the tag. The refcount of the returned object is increased - the caller must unref it after use.
obj.LOADGEOMETRYWITHREFOB(p1, p2, p3);
Loads geometry objects from a file and the included materials, effects and images. Library objects and references to them can be auto renamed to avoid name conflicts.
R3LAYM_SHARPENSELECTEDKEYS
SHARPENSELECTEDKEYS
R3LAYM_SHARPENSELECTEDKEYS
R3BOOL, true if succeeded
rc = obj.SHARPENSELECTEDKEYS();
Delete selected key frames in the current sub layer.
R3LAYM_CHECKREFERENCES
CHECKREFERENCES
R3LAYM_CHECKREFERENCES
R3BOOL, true if the object is referred by another object
R3OBJ*, examined object
rc = obj.CHECKREFERENCES(p3);
Checks if there are any dependencies referring to an object. The method uses dependencies * registered by R3LAYM_REGISTEROBJECTDEPENDENCYHOOK
R3LAYM_RENAMEREFERENCES
RENAMEREFERENCES
R3LAYM_RENAMEREFERENCES
char, new name
R3OBJ*, object to be renamed
obj.RENAMEREFERENCES(p1, p3);
Renames name references to a given object
R3LAYM_ADDMISSINGCHANNELS
ADDMISSINGCHANNELS
R3LAYM_ADDMISSINGCHANNELS
R3BOOL, true if succeeds
R3INT, section bits. If NULL all sections will be examined for channel addition.
rc = obj.ADDMISSINGCHANNELS(p3);
Checks if there are any dependencies referring to an object. The method uses dependencies * registered by R3LAYM_REGISTEROBJECTDEPENDENCYHOOK
R3LAYCM_ADDCHANNEL
ADDCHANNEL
R3LAYCM_ADDCHANNEL
obj.ADDCHANNEL();
R3LAYM_CHORBOTTOM
CHORBOTTOM
R3LAYM_CHORBOTTOM
obj.CHORBOTTOM();
Select the first (initial) choreography
R3LAYM_CHORTOP
CHORTOP
R3LAYM_CHORTOP
obj.CHORTOP();
Select the most recent choreography.
Prims
Prims
R3LAYA_Prims
Object
R3OBJ*
primitives
value = jsobj.GetPrims();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Prims, &value, R3TAG_END);
PrimModify
PrimModify
R3LAYA_PrimModify
Object
R3OBJ*
primitives are modified in this layer
value = jsobj.GetPrimModify();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_PrimModify, &value, R3TAG_END);
Materials
Materials
R3LAYA_Materials
Object
R3OBJ*
materials
value = jsobj.GetMaterials();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Materials, &value, R3TAG_END);
Envelopes
Envelopes
R3LAYA_Envelopes
Object
R3OBJ*
envelopes
value = jsobj.GetEnvelopes();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Envelopes, &value, R3TAG_END);
PostImageEffects
PostImageEffects
R3LAYA_PostImageEffects
Object
R3OBJ*
post image effects
value = jsobj.GetPostImageEffects();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_PostImageEffects, &value, R3TAG_END);
PostParticleEffects
PostParticleEffects
R3LAYA_PostParticleEffects
Object
R3OBJ*
post particle effects
value = jsobj.GetPostParticleEffects();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_PostParticleEffects, &value, R3TAG_END);
Images
Images
R3LAYA_Images
Object
R3OBJ*
images
jsobj.SetImages(value);
value = jsobj.GetImages();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_Images, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Images, &value, R3TAG_END);
Grids
Grids
R3LAYA_Grids
Object
R3OBJ*
grids
value = jsobj.GetGrids();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Grids, &value, R3TAG_END);
Animator
Animator
R3LAYA_Animator
Object
R3OBJ*
animator
jsobj.SetAnimator(value);
value = jsobj.GetAnimator();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_Animator, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Animator, &value, R3TAG_END);
ClipBoard
ClipBoard
R3LAYA_ClipBoard
Object
R3OBJ*
clipboard layer
jsobj.SetClipBoard(value);
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_ClipBoard, value, R3TAG_END);
Interactor
Interactor
R3LAYA_Interactor
Object
R3OBJ*
current interactor
value = jsobj.GetInteractor();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Interactor, &value, R3TAG_END);
WireMaterialEvaluator
WireMaterialEvaluator
R3LAYA_WireMaterialEvaluator
Object
R3OBJ*
material evaluator object
value = jsobj.GetWireMaterialEvaluator();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_WireMaterialEvaluator, &value, R3TAG_END);
WireMaterialEvaluator
WireMaterialEvaluator
R3LAYA_WireMaterialEvaluator
Object
R3OBJ*
material evaluator for the interaction layer
value = jsobj.GetWireMaterialEvaluator();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_WireMaterialEvaluatorModify, &value, R3TAG_END);
ProgressIndicator
ProgressIndicator
R3LAYA_ProgressIndicator
Object
R3OBJ*
progress indicator
jsobj.SetProgressIndicator(value);
value = jsobj.GetProgressIndicator();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_ProgressIndicator, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_ProgressIndicator, &value, R3TAG_END);
Painter3D
Painter3D
R3LAYA_Painter3D
Object
R3OBJ*
3d painter object
value = jsobj.GetPainter3D();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Painter3D, &value, R3TAG_END);
Painter2D
Painter2D
R3LAYA_Painter2D
Object
R3OBJ*
2d painter object
value = jsobj.GetPainter2D();
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Painter2D, &value, R3TAG_END);
AnimRecord
AnimRecord
R3LAYA_AnimRecord
Boolean
R3BOOL
set/reset animation recording mode
value = jsobj.GetAnimRecord();
R3BOOL value;
R3GetAttrs(r3obj, R3LAYA_AnimRecord, &value, R3TAG_END);
Removable
Removable
R3LAYA_Removable
Boolean
R3BOOL
if true, this layer cannot be deleted
jsobj.SetRemovable(value);
value = jsobj.GetRemovable();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3LAYA_Removable, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3LAYA_Removable, &value, R3TAG_END);
UnitConverter
UnitConverter
R3LAYA_UnitConverter
Object
R3OBJ*
unit converter
jsobj.SetUnitConverter(value);
value = jsobj.GetUnitConverter();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_UnitConverter, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_UnitConverter, &value, R3TAG_END);
RewindObj
RewindObj
R3LAYA_RewindObj
Object
R3OBJ*
callback
jsobj.SetRewindObj(value);
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_RewindObj, value, R3TAG_END);
RewindMth
RewindMth
R3LAYA_RewindMth
Integer
R3INT*
jsobj.SetRewindMth(value);
R3INT* value = ...;
R3SetAttrs(r3obj, R3LAYA_RewindMth, value, R3TAG_END);
StartPlayMth
StartPlayMth
R3LAYA_StartPlayMth
Integer
R3INT
start anim. play method
jsobj.SetStartPlayMth(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3LAYA_StartPlayMth, value, R3TAG_END);
UserChannels
UserChannels
R3LAYA_UserChannels
Object
R3OBJ*
user defined channels
jsobj.SetUserChannels(value);
value = jsobj.GetUserChannels();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_UserChannels, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_UserChannels, &value, R3TAG_END);
Saved
Saved
R3LAYA_Saved
Boolean
R3BOOL
true if project saved once (and it has well defined name)
jsobj.SetSaved(value);
value = jsobj.GetSaved();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3LAYA_Saved, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3LAYA_Saved, &value, R3TAG_END);
Thumbnail
Thumbnail
R3LAYA_Thumbnail
Object
R3OBJ*
project's thumbnail object
jsobj.SetThumbnail(value);
value = jsobj.GetThumbnail();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_Thumbnail, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Thumbnail, &value, R3TAG_END);
AsyncExecutor
AsyncExecutor
R3LAYA_AsyncExecutor
Object
R3OBJ*
async. executor object
jsobj.SetAsyncExecutor(value);
value = jsobj.GetAsyncExecutor();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_AsyncExecutor, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_AsyncExecutor, &value, R3TAG_END);
RenderSettings
RenderSettings
R3LAYA_RenderSettings
Object
R3OBJ*
render settings list
jsobj.SetRenderSettings(value);
value = jsobj.GetRenderSettings();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_RenderSettings, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_RenderSettings, &value, R3TAG_END);
ViewModels
ViewModels
R3LAYA_ViewModels
Object
R3OBJ*
view models
jsobj.SetViewModels(value);
value = jsobj.GetViewModels();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_ViewModels, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_ViewModels, &value, R3TAG_END);
UndoDepth
UndoDepth
R3LAYA_UndoDepth
Integer
R3INT
undo depth for all sub layers, write only
jsobj.SetUndoDepth(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3LAYA_UndoDepth, value, R3TAG_END);
FileRenderers
FileRenderers
R3LAYA_FileRenderers
Object
R3OBJ*
file render settings list
jsobj.SetFileRenderers(value);
value = jsobj.GetFileRenderers();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_FileRenderers, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_FileRenderers, &value, R3TAG_END);
Outputs
Outputs
R3LAYA_Outputs
Object
R3OBJ*
output object list
jsobj.SetOutputs(value);
value = jsobj.GetOutputs();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_Outputs, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Outputs, &value, R3TAG_END);
CurrentType
CurrentType
R3LAYA_CurrentType
Integer
R3INT
see enum r3animlayers
jsobj.SetCurrentType(value);
value = jsobj.GetCurrentType();
R3INT value = ...;
R3SetAttrs(r3obj, R3LAYA_CurrentType, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3LAYA_CurrentType, &value, R3TAG_END);
Filer
Filer
R3LAYA_Filer
Object
R3OBJ*
filer object
jsobj.SetFiler(value);
value = jsobj.GetFiler();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3LAYA_Filer, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3LAYA_Filer, &value, R3TAG_END);
macro targets
p2 values for LOADGEOMETRYWITHREFOBJS method
IFF chunk ids for io
Flags for R3LAYA_Stripped
r3appobj *