Represents an animation track.
Contains curves holding keys.
Example: Creating Align to Spline tag and adding track with 2 keys: 
if (tag)
{
  
  if (track)
  {
    
 
    
    if (curve!=nullptr)
    {
      
      key->SetValue(curve, 0.0);
 
      
      key->SetValue(curve, 0.9);
 
    }
  }
}
PyObject * key
Definition: abstract.h:289
 
void InsertTrackSorted(CTrack *track)
 
Definition: c4d_basetag.h:52
 
Definition: c4d_basetime.h:25
 
Definition: c4d_canimation.h:366
 
CKey * AddKey(const BaseTime &time, Int32 *nidx=nullptr, Bool bUndo=false, Bool SynchronizeKeys=false)
Definition: c4d_canimation.h:423
 
Represents a key in the CCurve of a track which represent the animation of a parameter.
Definition: c4d_canimation.h:58
 
Definition: c4d_canimation.h:671
 
static CTrack * Alloc(BaseList2D *bl, const DescID &id)
 
CCurve * GetCurve(CCURVE type=CCURVE::CURVE, Bool bCreate=true)
Definition: c4d_canimation.h:835
 
#define Taligntospline
Align to spline.
Definition: ge_prepass.h:1439
 
#define ConstDescID(...)
Definition: lib_description.h:594
 
PyObject * op
Definition: object.h:520
 
Represents a level within a DescID.
Definition: lib_description.h:298
 
@ ALIGNTOSPLINETAG_POSITION
Definition: taligntospline.h:9
 
  - Note
 - Has to be created with Alloc() and destroyed with Free(). Use AutoAlloc to automate the allocation and destruction based on scope. 
 
 | 
| Bool  | AnimateTrack (const BaseDocument *doc, BaseList2D *op, const BaseTime &tt, ANIMATEFLAGS flags, Bool *chg, void *data=nullptr) | 
|   | 
| Bool  | Animate (const CAnimInfo *info, Bool *chg, void *data=nullptr) | 
|   | 
| Bool  | Draw (GeClipMap *map, const BaseTime &clip_left, const BaseTime &clip_right) const | 
|   | 
| Bool  | FillKey (BaseDocument *doc, BaseList2D *bl, CKey *key) | 
|   | 
| void  | FlushData () | 
|   | 
| CCurve *  | GetCurve (CCURVE type=CCURVE::CURVE, Bool bCreate=true) | 
|   | 
| const CCurve *  | GetCurve (CCURVE type=CCURVE::CURVE) const | 
|   | 
| Int32  | GetTrackCategory () const | 
|   | 
| const BaseList2D *  | GetObject () const | 
|   | 
| BaseList2D *  | GetObject () | 
|   | 
| Float  | GetValue (const BaseDocument *doc, const BaseTime &time) const | 
|   | 
| Int32  | GetUnit (Float *step) | 
|   | 
| const BaseContainer *  | GetParameterDescription (BaseContainer &temp) const | 
|   | 
| Int32  | GuiMessage (const BaseContainer &msg, BaseContainer &result) | 
|   | 
| Bool  | Remap (Float64 time, Float64 *ret_time, Int32 *ret_cycle) const | 
|   | 
| Bool  | TrackInformation (BaseDocument *doc, CKey *key, maxon::String *str, Bool set) | 
|   | 
| CURVEINTERPOLATION_MODE  | GetEvaluationMode () const | 
|   | 
| void  | SetEvaluationMode (CURVEINTERPOLATION_MODE mode) | 
|   | 
| void  | SetLambda (maxon::Delegate< Float(const BaseDocument *doc, BaseList2D *op, const BaseTime &tt, ANIMATEFLAGS flags, Bool *chg, void *data)> lambdaFn) | 
|   | 
| Bool  | HasLambda () const | 
|   | 
| void  | ClearLambda () | 
|   | 
| GeData  | GetAnimatedGeData (const BaseDocument *doc, BaseList2D *op, const BaseTime &time) const | 
|   | 
 | 
| void  | SetBit (Int32 mask) | 
|   | 
| Bool  | GetBit (Int32 mask) const | 
|   | 
| void  | DelBit (Int32 mask) | 
|   | 
| void  | ToggleBit (Int32 mask) | 
|   | 
| Int32  | GetAllBits () const | 
|   | 
| void  | SetAllBits (Int32 bits) | 
|   | 
| void  | SetBitEx (Int32 mask, Int32 flags) | 
|   | 
| const Char *  | GetViewportRenderId (VIEWPORT_RENDER_ID typeId) const | 
|   | 
| BaseList2D *  | GetNext () | 
|   | 
| const BaseList2D *  | GetNext () const | 
|   | 
| BaseList2D *  | GetPred () | 
|   | 
| const BaseList2D *  | GetPred () const | 
|   | 
| BaseContainer  | GetData () | 
|   | 
| void  | SetData (const BaseContainer &bc, Bool add=true) | 
|   | 
| const BaseContainer &  | GetDataInstanceRef () const | 
|   | 
| BaseContainer &  | GetDataInstanceRef () | 
|   | 
| const BaseContainer *  | GetDataInstance () const | 
|   | 
| BaseContainer *  | GetDataInstance () | 
|   | 
| String  | GetName () const | 
|   | 
| void  | SetName (const maxon::String &name, Bool setDirty=true) | 
|   | 
| String  | GetBubbleHelp () | 
|   | 
| Bool  | TransferGoal (BaseList2D *dst, Bool undolink) | 
|   | 
| Bool  | TransferMarker (BaseList2D *dst) const | 
|   | 
| Bool  | CopyDynamicDescriptionFrom (const BaseList2D *src) | 
|   | 
| Bool  | Scale (Float scale) | 
|   | 
| Bool  | Edit () | 
|   | 
| void  | GetIcon (IconData *dat) | 
|   | 
| GeListHead *  | GetNLARoot (Bool create) | 
|   | 
| BaseList2D *  | AnimationLayerRemap (BaseObject **layer=nullptr) | 
|   | 
| String  | GetTypeName () const | 
|   | 
| const BaseList2D *  | GetMain () const | 
|   | 
| BaseList2D *  | GetMain () | 
|   | 
| void  | InsertTrackSorted (CTrack *track) | 
|   | 
| Bool  | AddEventNotification (BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data) | 
|   | 
| Bool  | RemoveEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid) | 
|   | 
| Bool  | FindEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid) | 
|   | 
| Bool  | SetDescIDState (const DescID &id, DESCIDSTATE descidstate) | 
|   | 
| DESCIDSTATE  | GetDescIDState (const DescID &id, Bool tolerant) const | 
|   | 
| GeListHead *  | GetOverrideRoot (Bool create) | 
|   | 
| BaseOverride *  | GetFirstOverride () | 
|   | 
| GeListHead *  | GetShaderRepositoryRoot (Bool create) | 
|   | 
| GeListHead *  | GetHiddenShaderRoot (Bool create) | 
|   | 
| maxon::NimbusForwardRef  | GetNimbusRef (const maxon::Id &spaceId) const | 
|   | 
| maxon::Result< maxon::NimbusForwardRef >  | PrivateGetOrCreateNimbusRef (const maxon::Id &spaceId) | 
|   | 
| void  | RemoveNimbusRef (const maxon::Id &spaceId) | 
|   | 
| maxon::Result< maxon::HashMap< maxon::Id, maxon::NimbusForwardRef > >  | GetAllNimbusRefs () const | 
|   | 
| Bool  | IsNodeBased () const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjects (METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsRec (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, Bool withSiblings, Bool withChildren, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfChildren (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfFirstChildHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< maxon::GenericData >  | GroupChanges () | 
|   | 
| void  | GetMarkerStampEx (UInt32 *l1, UInt32 *l2) | 
|   | 
| const GeMarker &  | GetMarker () const | 
|   | 
| void  | SetMarker (const GeMarker &m) | 
|   | 
| Bool  | AddUniqueID (Int32 appid, const Char *const mem, Int bytes) | 
|   | 
| Bool  | FindUniqueID (Int32 appid, const Char *&mem, Int &bytes) const | 
|   | 
| Int32  | GetUniqueIDCount () const | 
|   | 
| Bool  | GetUniqueIDIndex (Int32 idx, Int32 &id, const Char *&mem, Int &bytes) const | 
|   | 
| Bool  | SetAnimatedParameter (const CTrack *track, const DescID &id, const GeData &t_data1, const GeData &t_data2, Float mix, DESCFLAGS_SET flags) | 
|   | 
| Bool  | GetAnimatedParameter (const DescID &id, GeData &t_data1, GeData &t_data2, Float &mix, DESCFLAGS_GET flags) const | 
|   | 
| BaseShader *  | GetFirstShader () const | 
|   | 
| void  | InsertShader (BaseShader *shader, BaseShader *pred=nullptr) | 
|   | 
| void  | ClearKeyframeSelection () | 
|   | 
| Bool  | FindKeyframeSelection (const DescID &id) | 
|   | 
| Bool  | SetKeyframeSelection (const DescID &id, Bool selection) | 
|   | 
| Bool  | KeyframeSelectionContent () | 
|   | 
| LayerObject *  | GetLayerObject (const BaseDocument *doc) | 
|   | 
| const LayerObject *  | GetLayerObject (const BaseDocument *doc) const | 
|   | 
| Bool  | SetLayerObject (const LayerObject *layer) | 
|   | 
| const LayerData *  | GetLayerData (const BaseDocument *doc, Bool rawdata=false) const | 
|   | 
| Bool  | SetLayerData (BaseDocument *doc, const LayerData &data) | 
|   | 
| GeListHead *  | GetCTrackRoot (Bool create) | 
|   | 
| const GeListHead *  | GetCTrackRoot () const | 
|   | 
| const CTrack *  | GetFirstCTrack () const | 
|   | 
| CTrack *  | GetFirstCTrack () | 
|   | 
| const CTrack *  | FindCTrack (const DescID &id) const | 
|   | 
| CTrack *  | FindCTrack (const DescID &id) | 
|   | 
| GeListNode *  | GetNext () | 
|   | 
| const GeListNode *  | GetNext () const | 
|   | 
| GeListNode *  | GetPred () | 
|   | 
| const GeListNode *  | GetPred () const | 
|   | 
| GeListNode *  | GetDown () | 
|   | 
| const GeListNode *  | GetDown () const | 
|   | 
| GeListNode *  | GetUp () | 
|   | 
| const GeListNode *  | GetUp () const | 
|   | 
| GeListNode *  | GetDownLast () | 
|   | 
| const GeListNode *  | GetDownLast () const | 
|   | 
| void  | InsertBefore (GeListNode *bl) | 
|   | 
| void  | InsertAfter (GeListNode *bl) | 
|   | 
| void  | InsertUnder (GeListNode *bl) | 
|   | 
| void  | InsertUnderLast (GeListNode *bl) | 
|   | 
| void  | Remove () | 
|   | 
| void  | FlushChilds () | 
|   | 
| void  | MoveChildrenTo (GeListNode *dest) | 
|   | 
| GeListHead *  | GetListHead () | 
|   | 
| const GeListHead *  | GetListHead () const | 
|   | 
| Int32  | GetNodeID (Int32 index=0) const | 
|   | 
| template<typename CAST >  | 
| const CAST *  | GetNodeData (Int32 index=0) const | 
|   | 
| template<typename CAST >  | 
| CAST *  | GetNodeData (Int32 index=0) | 
|   | 
| void  | SetCustomData (GeListNode *node) | 
|   | 
| GeListNode *  | GetCustomData () | 
|   | 
| const GeListNode *  | GetCustomData () const | 
|   | 
| const BaseDocument *  | GetDocument () const | 
|   | 
| BaseDocument *  | GetDocument () | 
|   | 
| maxon::Result< Bool >  | GetBranchInfo (const maxon::ValueReceiver< const BranchInfo & > &info, GETBRANCHINFO flags) const | 
|   | 
| Bool  | IsDocumentRelated () const | 
|   | 
| Int32  | GetInfo () const | 
|   | 
| Bool  | GetNBit (NBIT bit) const | 
|   | 
| UInt32  | GetNBitMask (Int32 index) const | 
|   | 
| Bool  | ChangeNBit (NBIT bit, NBITCONTROL bitmode) | 
|   | 
| Bool  | HasLinks () const | 
|   | 
| Int32  | GetType () const | 
|   | 
| Int32  | GetRealType () const | 
|   | 
| Int32  | GetDiskType () const | 
|   | 
| Bool  | IsInstanceOf (Int32 id) const | 
|   | 
| Int32  | GetClassification () const | 
|   | 
| Bool  | Message (Int32 type, void *data=nullptr) | 
|   | 
| Bool  | MultiMessage (MULTIMSG_ROUTE flags, Int32 type, void *data) | 
|   | 
| C4DAtom *  | GetClone (COPYFLAGS flags, AliasTrans *trn) const | 
|   | 
| Bool  | CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn) const | 
|   | 
| Bool  | Read (HyperFile *hf, Int32 id, Int32 level) | 
|   | 
| Bool  | Write (HyperFile *hf) const | 
|   | 
| Bool  | ReadObject (HyperFile *hf, Bool readheader) | 
|   | 
| Bool  | WriteObject (HyperFile *hf) const | 
|   | 
| Bool  | GetDescription (Description *description, DESCFLAGS_DESC flags) const | 
|   | 
| Bool  | GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags) const | 
|   | 
| Bool  | SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags) | 
|   | 
| DynamicDescription *  | GetDynamicDescriptionWritable () | 
|   | 
| const DynamicDescription *  | GetDynamicDescription () const | 
|   | 
| Bool  | CopyDynamicDescriptionFrom (const BaseList2D *src) | 
|   | 
| Bool  | GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc) const | 
|   | 
| Bool  | TranslateDescID (const DescID &id, DescID &res_id, C4DAtom *&res_at) | 
|   | 
| UInt32  | GetDirty (DIRTYFLAGS flags) const | 
|   | 
| void  | SetDirty (DIRTYFLAGS flags) | 
|   | 
| UInt32  | GetHDirty (HDIRTYFLAGS mask) const | 
|   | 
| void  | SetHDirty (HDIRTYFLAGS mask) | 
|   | 
| static BaseList2D *  | Alloc (Int32 type) | 
|   | 
| static void  | Free (BaseList2D *&bl) | 
|   | 
| static const Int32  | SETBIT_FLAG_NODIRTY | 
|   | 
| static const Int32  | SETBIT_FLAG_REMOVE | 
|   |