Open Search
    GeListNode Class Reference

    #include <c4d_baselist.h>

    Inheritance diagram for GeListNode:

    Detailed Description

    Represents a C4DAtom that resides in a 4D list.

    Private Member Functions

     GeListNode ()
     
     ~GeListNode ()
     

    Navigation

    GeListNodeGetNext ()
     
    GeListNodeGetPred ()
     
    GeListNodeGetDown ()
     
    GeListNodeGetUp ()
     
    GeListNodeGetDownLast ()
     

    Insertion

    void InsertBefore (GeListNode *bl)
     
    void InsertAfter (GeListNode *bl)
     
    void InsertUnder (GeListNode *bl)
     
    void InsertUnderLast (GeListNode *bl)
     
    void Remove ()
     

    Miscellaneous

    GeListHeadGetListHead ()
     
    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)
     
    GeListNodeGetCustomData ()
     
    BaseDocumentGetDocument ()
     
    Int32 GetBranchInfo (BranchInfo *info, Int32 max, GETBRANCHINFO flags)
     
    Bool IsDocumentRelated ()
     
    Int32 GetInfo () const
     

    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 Message (Int32 type, void *data=nullptr)
     
    Bool MultiMessage (MULTIMSG_ROUTE flags, Int32 type, void *data)
     
    C4DAtomGetClone (COPYFLAGS flags, AliasTrans *trn)
     
    Bool CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn)
     
    Bool Read (HyperFile *hf, Int32 id, Int32 level)
     
    Bool Write (HyperFile *hf)
     
    Bool ReadObject (HyperFile *hf, Bool readheader)
     
    Bool WriteObject (HyperFile *hf)
     
    Bool GetDescription (Description *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)
     
    DynamicDescriptionGetDynamicDescription ()
     
    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)
     

    Constructor & Destructor Documentation

    ◆ GeListNode()

    GeListNode ( )
    private

    ◆ ~GeListNode()

    ~GeListNode ( )
    private

    Member Function Documentation

    ◆ GetNext()

    GeListNode* GetNext ( void  )

    Gets the next node in the list.

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

    ◆ GetPred()

    GeListNode* GetPred ( void  )

    Gets the previous node in the list.

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

    ◆ GetDown()

    GeListNode* GetDown ( void  )

    Gets the first child node.

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

    ◆ GetUp()

    GeListNode* GetUp ( void  )

    Gets the parent node.

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

    ◆ GetDownLast()

    GeListNode* GetDownLast ( void  )

    Gets the last child node.

    Returns
    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.

    Warning
    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.
    Parameters
    [in]blThe node to insert before. The caller owns the pointed node.

    ◆ InsertAfter()

    void InsertAfter ( GeListNode bl)

    Inserts the node after bl.

    Warning
    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.
    Parameters
    [in]blThe node to insert after. The caller owns the pointed node.

    ◆ InsertUnder()

    void InsertUnder ( GeListNode bl)

    Inserts the node under bl as the first child.

    Warning
    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.
    Parameters
    [in]blThe node to insert under. The caller owns the pointed node.

    ◆ InsertUnderLast()

    void InsertUnderLast ( GeListNode bl)

    Inserts the node as the last child of bl.

    Warning
    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.
    Parameters
    [in]blThe node to insert under as last child. The caller owns the pointed node.

    ◆ Remove()

    void Remove ( )

    Removal Removes the node from its list.

    Warning
    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.

    Returns
    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.

    Parameters
    [in]indexFor 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.
    Returns
    The node's ID.

    ◆ GetNodeData() [1/2]

    const CAST* GetNodeData ( Int32  index = 0) const

    Retrieves the data for the node.

    Note
    Changed in R17. Changed returned object type from NodeData* to template <typename CAST> CAST*.
    Warning
    Only use the virtual functions of the object if GetNodeData() is called in the same module that registered the node.
    Parameters
    [in]indexFor 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.
    Returns
    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.

    Note
    Changed in R17. Changed returned object type from NodeData* to template <typename CAST> CAST*.
    Warning
    Only use the virtual functions of the object if GetNodeData() is called in the same module that registered the node.
    Parameters
    [in]indexFor 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.
    Returns
    The node data, or nullptr. The node owns the pointed NodeData.

    ◆ SetCustomData()

    void SetCustomData ( GeListNode node)

    Sets the custom data for the node.

    Note
    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.
    Parameters
    [in]nodeThe new custom data.

    ◆ GetCustomData()

    GeListNode* GetCustomData ( )

    Gets the custom data for the node.

    See also
    SetCustomData()
    Returns
    The custom data.

    ◆ GetDocument()

    BaseDocument* GetDocument ( void  )

    Retrieves the document for the node.

    Returns
    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.
    Example: 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);
    Py_ssize_t count
    Definition: abstract.h:640
    maxon::Int32 Int32
    Definition: ge_sys_math.h:60
    @ MAX
    Maximum NBIT.
    Definition: node.h:10
    Definition: c4d_baselist.h:1198
    Parameters
    [in,out]infoAn array of max BranchInfo structures. The caller owns the pointed array.
    [in]maxThe number of elements in info.
    [in]flagsFlags: GETBRANCHINFO
    Returns
    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.

    Returns
    true if the node is document related, otherwise false.

    ◆ GetNBit()

    Bool GetNBit ( NBIT  bit) const

    Raw access to the node state.

    Parameters
    [in]bitThe bit index: NBIT
    Returns
    The bit state.

    ◆ GetNBitMask()

    UInt32 GetNBitMask ( Int32  index) const

    Private.

    ◆ ChangeNBit()

    Bool ChangeNBit ( NBIT  bit,
    NBITCONTROL  bitmode 
    )

    Sets bits in the node state.

    Parameters
    [in]bitThe bit index: NBIT
    [in]bitmodeThe bit mode: NBITCONTROL
    Returns
    true if the bit was successfully changed, otherwise false.

    ◆ GetInfo()

    Int32 GetInfo ( ) const

    Private.