BaseTake Class Reference Library » Take System Library

#include <lib_takesystem.h>

Inheritance diagram for BaseTake:

详细描述

Represents a Take of the Take System . It stores BaseOverride objects that define how a specific entity is changed in a Take.

注意
To retrieve the Take System for a document simply call BaseDocument::GetTakeData() .
另请参阅
The BaseTake Manual overview article.

私有成员函数

  BaseTake ()
  ~BaseTake ()

导航

BaseTake GetNext () const
BaseTake GetPred () const
BaseTake GetUp () const
BaseTake GetDown () const
BaseTake GetDownLast () const

杂项

Bool   IsMain ()
Bool   SearchHierarchy ( BaseTake *op)
void  重置 ()

Override

Bool   GetOverrides ( AtomArray &selection)
Bool   GetOverrideGroups ( AtomArray &selection)
BaseOverride FindOrAddOverrideParam ( TakeData *takeData, BaseList2D *node, const DescID &descID, const GeData &overrideValue, const GeData &backupValue= GeData (), Bool deleteAnim=false)
BaseOverride OverrideNode ( TakeData *takeData, BaseList2D *node, Bool deleteAnim)
void  AutoTake ( TakeData *takeData, BaseList2D *node, BaseList2D *undo)
void  DeleteOverride ( TakeData *takeData, BaseList2D *node, const DescID &descID)
BaseOverride FindOverride ( TakeData *takeData, BaseList2D *node)
BaseOverride FindOverrideInHierarchy ( TakeData *takeData, BaseList2D *node, const DescID &descID, BaseTake *&resultTake)
BaseOverrideGroup AddOverrideGroup ()
BaseOverrideGroup GetFirstOverrideGroup ()
void  DeleteOverrideGroup ( TakeData *takeData, BaseOverrideGroup *og)

Camera

BaseObject GetCamera ( TakeData *takeData)
BaseObject GetEffectiveCamera ( TakeData *takeData, BaseTake *&resultTake)
void  SetCamera ( TakeData *takeData, BaseObject *camera)

RenderData

RenderData GetRenderData ( TakeData *takeData)
RenderData GetEffectiveRenderData ( TakeData *takeData, BaseTake *&resultTake)
void  SetRenderData ( TakeData *takeData, RenderData *rData)

Checked

Bool   IsChecked ()
void  SetChecked ( Bool status)

Additional Inherited Members

-  Public Member Functions inherited from BaseList2D
const Char GetViewportRenderId ( VIEWPORT_RENDER_ID typeId) const
BaseList2D GetNext ()
BaseList2D GetPred ()
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)
BaseContainer   GetData ()
void  SetData (const BaseContainer &bc, Bool add=true)
const BaseContainer GetDataInstance () const
BaseContainer GetDataInstance ()
const BaseContainer GetDataInstanceRef () const
BaseContainer GetDataInstanceRef ()
String   GetName () const
void  SetName (const maxon::String &name)
String   GetBubbleHelp ()
Bool   TransferGoal ( BaseList2D *dst, Bool undolink)
Bool   TransferMarker ( BaseList2D *dst) const
Bool   比例 ( Float scale)
Bool   编辑 ()
void  GetIcon ( IconData *dat)
GeListHead GetNLARoot ()
BaseList2D AnimationLayerRemap ( BaseObject **layer=nullptr)
String   GetTypeName ()
BaseList2D GetMain () const
void  InsertTrackSorted ( CTrack *track)
Bool   AddEventNotification ( BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data)
Bool   RemoveEventNotification ( BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool   FindEventNotification ( BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool   SetDescIDState (const DescID &id, DESCIDSTATE descidstate)
DESCIDSTATE   GetDescIDState (const DescID &id, Bool tolerant) const
GeListHead GetOverrideRoot ()
BaseOverride GetFirstOverride ()
GeListHead GetShaderRepositoryRoot ()
GeListHead GetHiddenShaderRoot ()
maxon::NimbusInterface *  GetNimbusRef (const maxon::Id &spaceId) const
maxon::Result < maxon::NimbusInterface * >  GetOrCreateNimbusRef (const maxon::Id &spaceId)
void  RemoveNimbusRef (const maxon::Id &spaceId)
maxon::Result < maxon::HashMap < maxon::Id , maxon::ForwardRef < maxon::NimbusRef > > >  GetAllNimbusRefs () const
Bool   IsNodeBased () const
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 ( 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)
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 ( BaseDocument *doc)
Bool   SetLayerObject ( LayerObject *layer)
const LayerData GetLayerData ( BaseDocument *doc, Bool rawdata=false)
Bool   SetLayerData ( BaseDocument *doc, const LayerData &data)
GeListHead GetCTrackRoot ()
CTrack GetFirstCTrack ()
CTrack FindCTrack (const DescID &id)
-  Public Member Functions inherited from GeListNode
GeListNode GetNext ()
GeListNode GetPred ()
GeListNode GetDown ()
GeListNode GetUp ()
GeListNode GetDownLast ()
void  InsertBefore ( GeListNode *bl)
void  InsertAfter ( GeListNode *bl)
void  InsertUnder ( GeListNode *bl)
void  InsertUnderLast ( GeListNode *bl)
void  移除 ()
GeListHead GetListHead ()
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 ()
BaseDocument GetDocument ()
Int32   GetBranchInfo ( BranchInfo *info, Int32 max, GETBRANCHINFO flags)
Bool   IsDocumentRelated ()
Int32   GetInfo ()
Bool   GetNBit ( NBIT bit) const
UInt32   GetNBitMask ( Int32 index) const
Bool   ChangeNBit ( NBIT bit, NBITCONTROL bitmode)
-  Public Member Functions inherited from C4DAtom
Int32   GetType () const
Int32   GetRealType () const
Int32   GetDiskType () const
Bool   IsInstanceOf ( Int32 id) const
Int32   GetClassification () const
Bool   消息 ( Int32 type, void *data=nullptr)
Bool   MultiMessage ( MULTIMSG_ROUTE flags, Int32 type, void *data)
C4DAtom GetClone ( COPYFLAGS flags, AliasTrans *trn)
Bool   CopyTo ( C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn)
Bool   读取 ( HyperFile *hf, Int32 id, Int32 level)
Bool   Write ( HyperFile *hf)
Bool   ReadObject ( HyperFile *hf, Bool readheader)
Bool   WriteObject ( HyperFile *hf)
Bool   GetDescription ( 描述 *description, DESCFLAGS_DESC flags)
Bool   GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
Bool   SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
DynamicDescription GetDynamicDescription ()
Bool   GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc)
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 Public Member Functions inherited from BaseList2D
static BaseList2D Alloc ( Int32 type)
static void  Free ( BaseList2D *&bl)
-  Static Public Attributes inherited from BaseList2D
static const Int32   SETBIT_FLAG_NODIRTY
static const Int32   SETBIT_FLAG_REMOVE

构造函数 & 析构函数文档编制

◆  BaseTake()

BaseTake () private

◆  ~BaseTake()

~ BaseTake () private

成员函数文档编制

◆  GetNext()

BaseTake * GetNext ( ) const

Gets the next Take in the list. Convenience version of GeListNode::GetNext() returning a BaseTake *.

返回
The next Take, or nullptr if there is none. Cinema 4D owns the pointed BaseTake .

◆  GetPred()

BaseTake * GetPred ( ) const

Gets the previous Take in the list. Convenience version of GeListNode::GetPred() returning a BaseTake *.

返回
The previous Take, or nullptr if there is none. Cinema 4D owns the pointed BaseTake .

◆  GetUp()

BaseTake * GetUp ( ) const

Gets the parent Take of the list node. Convenience version of GeListNode::GetUp() returning a BaseTake *.

返回
The parent Take, or nullptr if there is none. Cinema 4D owns the pointed BaseTake .

◆  GetDown()

BaseTake * GetDown ( ) const

Gets the first child Take of the list node. Convenience version of GeListNode::GetDown() returning a BaseTake *.

返回
The first child Take, or nullptr if there is none. Cinema 4D owns the pointed BaseTake .

◆  GetDownLast()

BaseTake * GetDownLast ( ) const

Gets the last child Take of the list node. Convenience version of GeListNode::GetDownLast() returning a BaseTake *.

返回
The last child Take, or nullptr if there is none. Cinema 4D owns the pointed BaseTake .

◆  IsMain()

Bool IsMain ( )

Checks if the Take is the Main Take.

返回
true if the Take is the Main Take, otherwise false .

◆  SearchHierarchy()

Bool SearchHierarchy ( BaseTake op )

Checks if the Take is a child of op .

参数
[in] op The Take to search within his hierarchy. The caller owns the pointed BaseTake .
返回
true if the Take is child of op , otherwise false .

◆  GetOverrides()

Bool GetOverrides ( AtomArray selection )

Retrieves all Override nodes owned by the Take.

参数
[out] selection The AtomArray to be filled.
返回
true if successful, otherwise false .

◆  GetOverrideGroups()

Bool GetOverrideGroups ( AtomArray selection )

Retrieves all Override Groups nodes owned by the Take.

参数
[out] selection The AtomArray to be filled.
返回
true if successful, otherwise false .

◆  FindOrAddOverrideParam()

BaseOverride * FindOrAddOverrideParam ( TakeData takeData ,
BaseList2D node ,
const DescID descID ,
const GeData overrideValue ,
const GeData backupValue = GeData() ,
Bool   deleteAnim = false  
)

Searches if parameter with descID is Overridden. If not adds a new Override with passed value for the Take.
BaseOverride node does not exist the function automatically allocates and inserts it, plus takes care to backup data properly in parent or Main Take.

注意
An undo step is added automatically if the call is added from the main (GUI) thread and global undo is allowed (see TakeData::GetUndoState / TakeData::SetUndoState ).
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The scene node to override. The caller owns the pointed BaseList2D .
[in] descID The parameter DescID to override.
[in] overrideValue The initial value to set in the overrides for the Take.
[in] backupValue Optionally provide the backup value for the Main/parent Take. Mandatory to set this for parameters not from the GUI.
[in] deleteAnim true and original parameter in the scene is animated the animation will be removed in the resulting Override.
返回
The found or newly created BaseOverride node, or nullptr if any error.

◆  OverrideNode()

BaseOverride * OverrideNode ( TakeData takeData ,
BaseList2D node ,
Bool   deleteAnim  
)

Overrides all parameters of passed node in the Take.

注意
An undo step is added automatically if the call is added from the main (GUI) thread and global undo is allowed (see TakeData::GetUndoState / TakeData::SetUndoState ).
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The scene node to override. The caller owns the pointed BaseList2D .
[in] deleteAnim true and original parameter in the scene is animated the animation will be removed in the resulting Override.
返回
The newly created BaseOverride node, or nullptr if any error.

◆  AutoTake()

void AutoTake ( TakeData takeData ,
BaseList2D node ,
BaseList2D undo  
)

Compares nodes and automatically generates overrides for different parameters in the Take.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The scene node to override. The caller owns the pointed BaseList2D .
[in] undo The node to compare with. The caller owns the pointed BaseList2D .

◆  DeleteOverride()

void DeleteOverride ( TakeData takeData ,
BaseList2D node ,
const DescID descID  
)

Deletes a single parameter override for node with descID . If the Override results empty (no more overridden parameters) then it will be deleted too.

注意
An undo step is added automatically if the call is added from the main (GUI) thread and global undo is allowed (see TakeData::GetUndoState / TakeData::SetUndoState ).
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The scene node to delete the parameter for. The caller owns the pointed BaseList2D .
[in] descID The parameter DescID to be deleted.

◆  FindOverride()

BaseOverride * FindOverride ( TakeData takeData ,
BaseList2D node  
)

Searches if node is overridden in the Take.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The node to search the BaseOverride for. The caller owns the pointed BaseList2D .
返回
The BaseOverride if found, otherwise nullptr .

◆  FindOverrideInHierarchy()

BaseOverride * FindOverrideInHierarchy ( TakeData takeData ,
BaseList2D node ,
const DescID descID ,
BaseTake *&  resultTake  
)

Searches if node parameter with descID is overridden in the Take or in a parent.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] node The node to search the BaseOverride for. The caller owns the pointed BaseList2D .
[in] descID The parameter DescID to search for.
[out] resultTake Filled with The Take that owns the Override. Can be equal to *this or nullptr if the Override is not found. The caller owns the pointed BaseTake .
返回
The BaseOverride if found, otherwise nullptr .

◆  AddOverrideGroup()

BaseOverrideGroup * AddOverrideGroup ( )

Adds a new Override Group to the Take.

注意
An undo step is added automatically if the call is added from the main (GUI) thread and global undo is allowed (see TakeData::GetUndoState / TakeData::SetUndoState ).
返回
The added Override Group, or nullptr if any error.

◆  GetFirstOverrideGroup()

BaseOverrideGroup * GetFirstOverrideGroup ( )

Gets the first Override Group in the Take.

返回
The first Override Group, or nullptr if there is none.

◆  DeleteOverrideGroup()

void DeleteOverrideGroup ( TakeData takeData ,
BaseOverrideGroup og  
)

Deletes an Override Group from the Take.

注意
An undo step is added automatically if the call is added from the main (GUI) thread and global undo is allowed (see TakeData::GetUndoState / TakeData::SetUndoState ).
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] og The Override Group to be deleted. The caller owns the pointed BaseOverrideGroup .

◆  GetCamera()

BaseObject * GetCamera ( TakeData takeData )

Gets the camera for the Take.

注意
Can return the default camera.
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
返回
The camera assigned to the Take, or nullptr if the Take uses the camera from a parent Take.

◆  GetEffectiveCamera()

BaseObject * GetEffectiveCamera ( TakeData takeData ,
BaseTake *&  resultTake  
)

Gets the camera used by the Take even if it comes from a parent Take.

注意
Can return the default camera.
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[out] resultTake The Take the camera comes from. Cinema 4D owns the pointed BaseTake .
返回
The camera used by the Take.

◆  SetCamera()

void SetCamera ( TakeData takeData ,
BaseObject camera  
)

Sets the camera for the Take.

注意
Can be the default camera.
参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] camera The camera to set, or nullptr to reset and use one from a parent Take.

◆  GetRenderData()

RenderData * GetRenderData ( TakeData takeData )

Gets the RenderData for the Take.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
返回
The RenderData assigned to the Take, or nullptr if the Take uses the RenderData from a parent Take.

◆  GetEffectiveRenderData()

RenderData * GetEffectiveRenderData ( TakeData takeData ,
BaseTake *&  resultTake  
)

Gets the RenderData used by the Take even if it comes from a parent Take.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[out] resultTake The Take the RenderData come from. Cinema 4D owns the pointed BaseTake .
返回
The RenderData used by the Take.

◆  SetRenderData()

void SetRenderData ( TakeData takeData ,
RenderData rData  
)

设置 RenderData for the Take.

参数
[in] takeData The Take System context. The caller owns the pointed TakeData .
[in] rData The RenderData to set, or nullptr to reset and use one from a parent Take. The caller owns the pointed RenderData .

◆  IsChecked()

Bool IsChecked ( )

Gets the mark status of the Take used for rendering and export operations.

返回
true if the Take is marked, otherwise false .

◆  SetChecked()

void SetChecked ( Bool   status )

Sets the mark status of the Take used for rendering and export operations.

参数
[in] status true the Take will be marked otherwise the mark will be removed.

◆  Reset()

void Reset ( )

Resets all sub-structures and Overrides for the Take.

警告
All data not in the current state of the document are deleted.