GeListNode Class Reference

#include <c4d_baselist.h>

Inheritance diagram for GeListNode:

详细描述

Represents a C4DAtom that resides in a 4D list.

私有成员函数

  GeListNode ()
  ~GeListNode ()

导航

GeListNode GetNext ()
GeListNode GetPred ()
GeListNode GetDown ()
GeListNode GetUp ()
GeListNode GetDownLast ()

Insertion

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 ()

Nbit

Bool   GetNBit ( NBIT bit) const
UInt32   GetNBitMask ( Int32 index) const
Bool   ChangeNBit ( NBIT bit, NBITCONTROL bitmode)

Additional Inherited Members

-  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)

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

◆  GeListNode()

GeListNode () private

◆  ~GeListNode()

~ GeListNode () private

成员函数文档编制

◆  GetNext()

GeListNode * GetNext ( )

Gets the next node in the list.

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

◆  GetPred()

GeListNode * GetPred ( )

Gets the previous node in the list.

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

◆  GetDown()

GeListNode * GetDown ( )

Gets the first child node.

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

◆  GetUp()

GeListNode * GetUp ( )

Gets the parent node.

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

◆  GetDownLast()

GeListNode * GetDownLast ( )

Gets the last child node.

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

◆  InsertBefore()

void InsertBefore ( GeListNode bl )

Inserts the node before bl .

警告
You must make sure that bl has a parent and that the insertion is sane, for example it is forbidden to insert a key.
It is also necessary to use Remove() first if the object is already inserted into another list.
参数
[in] bl The node to insert before. The caller owns the pointed node.

◆  InsertAfter()

void InsertAfter ( GeListNode bl )

Inserts the node after bl .

警告
You must make sure that bl has a parent and that the insertion is sane, for example it is forbidden to insert a key.
It is also necessary to use Remove() first if the object is already inserted into another list.
参数
[in] bl The node to insert after. The caller owns the pointed node.

◆  InsertUnder()

void InsertUnder ( GeListNode bl )

Inserts the node under bl as the first child.

警告
You must make sure that the insertion is sane, for example it is forbidden to insert a key.
It is also necessary to use Remove() first if the object is already inserted into another list.
参数
[in] bl The node to insert under. The caller owns the pointed node.

◆  InsertUnderLast()

void InsertUnderLast ( GeListNode bl )

Inserts the node as the last child of bl .

警告
You must make sure that the insertion is sane, for example it is forbidden to insert a key.
It is also necessary to use Remove() first if the object is already inserted into another list.
参数
[in] bl The node to insert under as last child. The caller owns the pointed node.

◆  Remove()

void Remove ( )

Removal Removes the node from its list.

警告
When a node is removed you become responsible for freeing it or passing its ownership to another list.

◆  GetListHead()

GeListHead * GetListHead ( )

Retrieves the list head for the node.

返回
The list head or nullptr if the node is not attached to one. The pointed list head owns the node.

◆  GetNodeID()

Int32 GetNodeID ( Int32   index = 0 ) const

Gets the ID of the node optionally for the given level index .

参数
[in] index For multi-nodes (two or more nodes virtually linked together) retrieve the ID for every level index .
For example GvNode is a level 2 multi-nodes. They consist of one list element ( GeListNode or BaseList2D ) and two virtual NodeData derivate: one is private and one is used by the operator.
返回
The node's ID.

◆  GetNodeData() [1/2]

const CAST* GetNodeData ( Int32   index = 0 ) const

Retrieves the data for the node.

注意
Changed in R17. Changed returned object type from NodeData * to template <typename CAST> CAST* .
警告
Only use the virtual functions of the object if GetNodeData() is called in the same module that registered the node.
参数
[in] index For multi-nodes (two or more nodes virtually linked together) retrieve the ID for every level index .
For example GvNode objects are level 2 multi-nodes. They consist of one list element ( GeListNode or BaseList2D ) and two virtual NodeData derivate: one is private and one is used by the operator.
返回
The node data, or nullptr . The node owns the pointed NodeData .

◆  GetNodeData() [2/2]

CAST* GetNodeData ( Int32   index = 0 )

Retrieves the data for the node.

注意
Changed in R17. Changed returned object type from NodeData * to template <typename CAST> CAST* .
警告
Only use the virtual functions of the object if GetNodeData() is called in the same module that registered the node.
参数
[in] index For multi-nodes (two or more nodes virtually linked together) retrieve the ID for every level index .
For example GvNode objects are level 2 multi-nodes. They consist of one list element ( GeListNode or BaseList2D ) and two virtual NodeData derivate: one is private and one is used by the operator.
返回
The node data, or nullptr . The node owns the pointed NodeData .

◆  SetCustomData()

void SetCustomData ( GeListNode node )

Sets the custom data for the node.

注意
The custom data is private data that can be attached to an object.
Only the owner of an object type (not an object instance) is allowed to attach custom data to that object.
参数
[in] node The new custom data.

◆  GetCustomData()

GeListNode * GetCustomData ( )

Gets the custom data for the node.

另请参阅
SetCustomData()
返回
The custom data.

◆  GetDocument()

BaseDocument * GetDocument ( )

Retrieves the document for the node.

返回
The document, or nullptr if the node is not in a document. The pointed document owns the list head that possesses the node.

◆  GetBranchInfo()

Int32 GetBranchInfo ( BranchInfo info ,
Int32   max ,
GETBRANCHINFO   flags  
)

Gets information about which other node types the node contains.
For example objects contain tags.
范例: Pass an array of BranchInfo objects and its size, the function returns the number of filled elements:

BranchInfo branch[ MAX ]; Int32 count = node-> GetBranchInfo (branch, MAX , GETBRANCHINFO::NONE );
参数
[in,out] info An array of max BranchInfo structures. The caller owns the pointed array.
[in] max The number of elements in info .
[in] flags Flags: GETBRANCHINFO
返回
The number of BranchInfo elements filled in.

◆  IsDocumentRelated()

Bool IsDocumentRelated ( )

Checks if the node is of a type that can be inserted into a document .

返回
true if the node is document related, otherwise false .

◆  GetNBit()

Bool GetNBit ( NBIT   bit ) const

Raw access to the node state.

参数
[in] bit The bit index: NBIT
返回
The bit state.

◆  GetNBitMask()

UInt32 GetNBitMask ( Int32   index ) const

Private .

◆  ChangeNBit()

Bool ChangeNBit ( NBIT   bit ,
NBITCONTROL   bitmode  
)

Sets bits in the node state.

参数
[in] bit The bit index: NBIT
[in] bitmode The bit mode: NBITCONTROL
返回
true if the bit was successfully changed, otherwise false .

◆  GetInfo()

Int32 GetInfo ( )

Private .

BranchInfo
定义: c4d_baselist.h:1152
GeListNode::GetBranchInfo
Int32 GetBranchInfo(BranchInfo *info, Int32 max, GETBRANCHINFO flags)
定义: c4d_baselist.h:1930
NBIT::MAX
@ MAX
Maximum NBIT.
GETBRANCHINFO::NONE
@ NONE
None.
Int32
maxon::Int32 Int32
定义: ge_sys_math.h:58