Open Search
    BaseList2D Class Reference

    #include <c4d_baselist2d.h>

    Inheritance diagram for BaseList2D:

    Public Types

    typedef GeListNode SUPER
     
    - Public Types inherited from GeListNode
    typedef PrivateChunk SUPER
     

    Public Member Functions

    virtual Bool IsInstanceOf (cineware::Int32 id) const
     
    - Public Member Functions inherited from GeListNode
     GeListNode ()
     
     ~GeListNode ()
     
    virtual Bool GetNBit (Int32 bit) const
     
    virtual Bool ChangeNBit (NBIT bit, NBITCONTROL bitmode)
     
    BaseDocumentGetDocument ()
     
    virtual Int32 GetInfo ()
     
    GeListNodeGetPred ()
     
    GeListNodeGetNext ()
     
    GeListNodeGetUp ()
     
    GeListNodeGetDown ()
     
    GeListNodeGetDownLast ()
     
    void InsertBefore (GeListNode *op)
     
    void InsertAfter (GeListNode *op)
     
    void Remove ()
     
    void InsertUnder (GeListNode *op)
     
    void InsertUnderLast (GeListNode *op)
     
    RootList2DGetListHead ()
     
    Int32 GetNodeID (Int32 index=0) const
     
    - Public Member Functions inherited from PrivateChunk
     PrivateChunk ()
     
    Bool ReadChunk (HyperFile *hf, Bool keepin=false, Bool noheader=false)
     
    virtual Bool IsListHead ()
     
    Bool ReadObject (HyperFile *hf, Bool readheader)
     
    Bool WriteObject (HyperFile *hf, Int32 type)
     
    Bool CopyTo (PrivateChunk *dest, COPYFLAGS flags, AliasTrans *trans)
     
    Bool GetParameter (Int32 id, GeData &data)
     
    Bool SetParameter (Int32 id, const GeData &data)
     
    Bool GetParameter (const DescID &id, GeData &data)
     
    Bool SetParameter (const DescID &id, const GeData &data)
     
    virtual Int32 GetChunkLevel ()
     
    - Public Member Functions inherited from GeTempPublicNode2D< PrivateChunk >
    PrivateChunkGetNext () const
     
    PrivateChunkGetPrev () const
     
    void InsertBefore (PrivateChunk *n)
     
    void InsertAfter (PrivateChunk *n)
     
    void Remove ()
     

    Protected Member Functions

    void SetID (Int32 id)
     
    virtual Bool HandleSubChunk (HyperFile *hf, Int32 id, Int32 level)
     
    virtual Bool Write (HyperFile *hf)
     
    virtual Bool GetDParameter (const DescID &id, GeData &data)
     
    virtual Bool SetDParameter (const DescID &id, const GeData &data)
     
    virtual Bool CopyToX (PrivateChunk *dest, COPYFLAGS flags, AliasTrans *trans)
     
    virtual Int32 GetInstanceType () const
     

    Protected Attributes

    Int32 m_id
     
    RootShader mp_rootshader
     
    RootShader mp_rootshader_hidden
     
    RootShader root_shader_repository
     
    Int32 l_bitfeld
     
    RootCTrack mp_rootctrack
     
    RootPluginNode root_override
     
    NotifyListnotify_events
     
    DescIdStorekeyframestore
     
    DescIdStorepropstore
     
    BaseContainer m_bc
     
    NodeDatam_data
     
    - Protected Attributes inherited from GeListNode
    GeAliasGoal m_xgoal
     
    UInt32 m_bits [4]
     
    RootList2Dt_rootlist_parent
     
    RootList2Dm_children
     
    BaseDocumentparent_doc
     
    void * unknownData
     
    Int unknownDataSize
     
    Int32 unknownDataLevel
     
    Int32 pluginID
     

    Private Attributes

    String m_name
     
    BaseLink mp_layer
     
    GeMarker m_marker
     
    UniqueIDArrayl_uniquearray
     
    DynamicDescription dynamicdescription
     

    Friends

    class RootList2D
     
    class RootShader
     
    class RootCKey
     
    class RootCTrack
     
    class RootObject
     
    class RootMultipass
     
    class RootVideoPost
     
    class BaseDocument
     
    class RootRenderData
     
    class BaseShader
     
    class BaseList4D
     
    class BaseObject
     
    class WeightTagData
     
    class RootBaseDraw
     
    class RootPluginNode
     
    class BaseOverrideData
     
    class BaseSceneHook
     
    class PluginNode
     

    Constructor/Destructor

     BaseList2D ()
     
    virtual ~BaseList2D ()
     

    Navigation

    BaseList2DGetNext ()
     
    BaseList2DGetPred ()
     

    Node Data

    NodeDataGetNodeData ()
     
    void SetNodeData (NodeData *data)
     

    Bit

    void SetBit (Int32 mask)
     
    Bool GetBit (Int32 mask)
     
    void DelBit (Int32 mask)
     
    void ToggleBit (Int32 mask)
     
    Int32 GetAllBits ()
     
    void SetAllBits (Int32 bits)
     

    Data

    BaseContainer GetData ()
     
    BaseContainerGetDataInstance ()
     
    BaseContainerGetDataInstanceRef ()
     

    Name

    const StringGetName ()
     
    void SetName (const String &new_name)
     

    Marker

    const GeMarkerGetMarker () const
     
    void SetMarker (const GeMarker &m)
     

    Unique ID

    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
     

    Shader

    BaseShaderGetFirstShader ()
     
    Bool InsertShader (BaseShader *shader, BaseShader *pred=nullptr)
     
    Bool InsertShaderLast (BaseShader *shader)
     

    CTrack

    RootCTrackGetCTrackRoot ()
     
    CTrackGetFirstCTrack ()
     
    CTrackFindCTrack (const DescID &id)
     
    Bool AppendCTrack (CTrack *t)
     
    void InsertTrackSorted (CTrack *track)
     

    Type

    virtual Int32 GetType () const
     
    virtual Int32 GetDiskType () const
     

    Layer

    LayerObjectGetLayerObject ()
     
    void SetLayerObject (LayerObject *layer)
     
    const LayerDataGetLayerData (BaseDocument *doc, Bool rawdata=false)
     
    Bool SetLayerData (BaseDocument *doc, const LayerData &data)
     

    Miscellaneous

    virtual BaseList2DGetClone (COPYFLAGS flags, AliasTrans *trans)
     
    DynamicDescriptionGetDynamicDescription ()
     
    virtual Bool IsBaseList ()
     
    virtual void Remove ()
     
    Bool SetDescIDState (const DescID &id, DESCIDSTATE descidstate)
     
    DESCIDSTATE GetDescIDState (const DescID &id, Bool tolerant) const
     
    RootPluginNodeGetOverrideRoot ()
     
    BaseOverrideGetFirstOverride ()
     
    virtual Bool TranslateDescID (const DescID &id, DescID &res_id, GeListNode *&res_at)
     

    Detailed Description

    Represents a node in a 2D list.

    Member Typedef Documentation

    ◆ SUPER

    typedef GeListNode SUPER

    Constructor & Destructor Documentation

    ◆ BaseList2D()

    Default constructor.

    ◆ ~BaseList2D()

    virtual ~BaseList2D ( )
    virtual

    Default destructor.

    Member Function Documentation

    ◆ IsInstanceOf()

    ◆ SetID()

    void SetID ( Int32  id)
    protected

    ◆ HandleSubChunk()

    ◆ Write()

    ◆ GetDParameter()

    virtual Bool GetDParameter ( const DescID id,
    GeData data 
    )
    protectedvirtual

    ◆ SetDParameter()

    virtual Bool SetDParameter ( const DescID id,
    const GeData data 
    )
    protectedvirtual

    ◆ CopyToX()

    ◆ GetInstanceType()

    virtual Int32 GetInstanceType ( ) const
    protectedvirtual

    Reimplemented from PrivateChunk.

    Reimplemented in BaseObject, BaseTag, BaseMaterial, BaseVideoPost, and BaseShader.

    ◆ GetNext()

    BaseList2D* GetNext ( )

    Gets the next base list in the list.

    Returns
    The next node, or nullptr if there is none. Cineware SDK owns the pointed BaseList2D.

    ◆ GetPred()

    BaseList2D* GetPred ( )

    Gets the previous base list in the list.

    Returns
    The previous node, or nullptr if there is none. Cineware SDK owns the pointed BaseList2D.

    ◆ GetNodeData()

    NodeData* GetNodeData ( )

    Gets the node data of the object.

    Returns
    The node data, or nullptr. The object owns the pointed node data.

    ◆ SetNodeData()

    void SetNodeData ( NodeData data)

    Sets the node data of the object.

    Parameters
    [in]dataThe node data to set. The object takes over the ownership of the pointed node data.

    ◆ SetBit()

    void SetBit ( Int32  mask)

    Sets the base list bit flags denoted by mask to true.

    Parameters
    [in]maskBit mask of the flags.

    ◆ GetBit()

    Bool GetBit ( Int32  mask)

    Gets the state of the base list bit flags denoted by mask.

    Parameters
    [in]maskBit mask of the flags.
    Returns
    true if the flags denoted by mask are set, otherwise false.

    ◆ DelBit()

    void DelBit ( Int32  mask)

    Deletes the base list bit flags denoted by mask, i.e. sets the corresponding bit to false.

    Parameters
    [in]maskBit mask of the flags.

    ◆ ToggleBit()

    void ToggleBit ( Int32  mask)

    Toggles the state of the base list bit flags denoted by mask.

    Parameters
    [in]maskBit mask of the flags.

    ◆ GetAllBits()

    Int32 GetAllBits ( )

    Gets all of the base list's bit flags.

    Returns
    The flags.

    ◆ SetAllBits()

    void SetAllBits ( Int32  bits)

    Sets all of the base list's bit flags at once.

    Parameters
    [in]bitsNew flags.

    ◆ GetData()

    BaseContainer GetData ( )

    Gets a copy of the base list's container.

    Returns
    The base list's container.

    ◆ GetDataInstance()

    BaseContainer* GetDataInstance ( )

    Gets a pointer to the base list's container that can be changed directly.

    Returns
    A pointer to the internal base list's container. The base list owns the pointed container.

    ◆ GetDataInstanceRef()

    BaseContainer& GetDataInstanceRef ( )

    Retrieves a reference to the object container that can be changed directly.

    See also
    GetData()
    Since
    R20
    Returns
    A reference to the internal container. The node owns the referenced container.

    ◆ GetName()

    const String& GetName ( )

    Gets the name of the base list.

    Returns
    The name.

    ◆ SetName()

    void SetName ( const String new_name)

    Sets the name of the object.

    Parameters
    [in]new_nameThe new name.

    ◆ GetMarker()

    const GeMarker& GetMarker ( ) const

    Gets the object's marker.

    Returns
    The object's marker.

    ◆ SetMarker()

    void SetMarker ( const GeMarker m)

    Sets the object's marker.

    Since
    18.002
    Parameters
    [in]mThe new object's marker.

    ◆ AddUniqueID()

    Bool AddUniqueID ( Int32  appid,
    const Char *const  mem,
    Int  bytes 
    )

    Adds unique ID data to the base list.

    Note
    A unique ID can be used for instance to identify scenes written by external applications.
    Parameters
    [in]appidUnique application ID. Has to be registered at MAXON and obtained from http://www.plugincafe.com.
    [in]memPointer to a block of memory. Used for instance to store the name of a software vendor.
    [in]bytesLength of mem memory block.
    Returns
    true if the unique ID was added, otherwise false.

    ◆ FindUniqueID()

    Bool FindUniqueID ( Int32  appid,
    const Char *&  mem,
    Int bytes 
    ) const

    Checks for a specific unique application ID data.

    Note
    A unique ID can be used for instance to identify scenes written by external applications.
    Parameters
    [in]appidUnique application ID. Has to be registered at MAXON and obtained from http://www.plugincafe.com.
    [in]memAssigned a pointer to a block of memory. Used for instance to read the name of a software vendor.
    [in]bytesAssigned the length of mem block.
    Returns
    true if the unique ID could be found, otherwise false.

    ◆ GetUniqueIDCount()

    Int32 GetUniqueIDCount ( ) const

    Gets the number of unique IDs.

    Note
    A unique ID can be used for instance to identify scenes written by external applications.
    Returns
    The number of unique IDs.

    ◆ GetUniqueIDIndex()

    Bool GetUniqueIDIndex ( Int32  idx,
    Int32 id,
    const Char *&  mem,
    Int bytes 
    ) const

    Gets the idx-th unique ID data.

    Note
    A unique ID can be used for instance to identify scenes written by external applications.
    Parameters
    [in]idxUnique ID index.
    [in]idAssigned the unique ID.
    [in]memAssigned a pointer to a block of memory. Used for instance to read the name of a software vendor.
    [in]bytesAssigned the length of mem block.
    Returns
    true if the unique ID index could be found, otherwise false.

    ◆ GetFirstShader()

    BaseShader* GetFirstShader ( )

    Gets the first shader of the base list.

    Note
    Normally you do not have to deal with the shader list. But if you want to create or modify shader trees you need to read the following lines:
    If you are programming shader links you need to make sure that every shader is referenced only once; it is not allowed that a shader is referenced multiple times.
    If the referencing object is a shader, the referenced shader must be child of it, otherwise it must be inserted via InsertShader().

    Example 1: A tag references a shader. The shader must be inserted into the tag using InsertShader();. Example 2: A Shader (A) references another shader (B): the shader B must be child of the shader A.

    Returns
    The first shader of the base list, or nullptr if there are none. The object owns the pointed shader.

    ◆ InsertShader()

    Bool InsertShader ( BaseShader shader,
    BaseShader pred = nullptr 
    )

    Inserts a shader in the base list's shader list.

    BaseMaterial *mat = nullptr;
    mat = doc->GetFirstMaterial();
    if (!mat) return true;
    BaseContainer *data = mat->GetDataInstance();
    if (!data) return true;
    if (!shd) return false;
    data->SetLink(MATERIAL_COLOR_SHADER, shd);
    mat->InsertShader(shd);
    mat->Message(MSG_UPDATE);
    mat->Update(true, true);
    EventAdd();
    Parameters
    [in]shaderThe shader to insert. The object takes over the ownership of the pointed shader.
    [in]predThe shader to insert the new shader after, or nullptr (default) to insert the new shader first. The pointed shader must already be inserted into the list.
    Returns
    true if successful, otherwise false.

    ◆ InsertShaderLast()

    Bool InsertShaderLast ( BaseShader shader)

    Inserts a shader in the base list's shader list as last shader.

    See also
    InsertShader()
    Parameters
    [in]shaderThe shader to insert. The object takes over the ownership of the pointed shader.
    Returns
    true if successful, otherwise false.

    ◆ GetCTrackRoot()

    RootCTrack* GetCTrackRoot ( )

    Gets the track root of the base list.

    Returns
    The track root.

    ◆ GetFirstCTrack()

    CTrack* GetFirstCTrack ( )

    Gets the first track of the base list.

    Returns
    The first track, or nullptr if there are no tracks.

    ◆ FindCTrack()

    CTrack* FindCTrack ( const DescID id)

    Finds the track for the specified description id.

    Parameters
    [in]idThe description ID for the searched track.
    Returns
    The found track, or nullptr if there was no match.

    ◆ AppendCTrack()

    Bool AppendCTrack ( CTrack t)

    Appends a track and automatically places it at the right place (so that Y comes after X for example).

    Parameters
    [in]tThe track to append.
    Returns
    true if successful, otherwise false.

    ◆ InsertTrackSorted()

    void InsertTrackSorted ( CTrack track)

    Inserts a track and automatically places it at the right place (so that Y comes after X for example).

    Since
    18.002
    Parameters
    [in]trackThe track to insert.

    ◆ GetType()

    virtual Int32 GetType ( ) const
    virtual

    Gets the type of the base list.

    Warning
    This must be used to make sure that the derived object is really of the right type before casting it and accessing its members.
    Note
    Plugin nodes return their unique plugin IDs.
    Returns
    The type, for example Ocube.

    Reimplemented from PrivateChunk.

    Reimplemented in CTrack, BaseDocument, BaseShader, BaseTag, BaseVideoPost, BaseMaterial, SplineObject, PolygonObject, RenderData, PointObject, PluginNode, BaseSceneHook, and ViewPanel.

    ◆ GetDiskType()

    virtual Int32 GetDiskType ( ) const
    virtual

    Gets the unique disk type of the base list.

    Note
    Normally this is the same as GetType() but there are exceptions.
    Returns
    The disk type, for example Ocube.

    Reimplemented from GeListNode.

    Reimplemented in CTrack, BaseMaterial, BaseShader, BaseTag, BaseVideoPost, BaseObject, FieldLayer, PluginNode, BaseSceneHook, SplineObject, PointObject, and PolygonObject.

    ◆ GetLayerObject()

    LayerObject* GetLayerObject ( )

    Gets the layer for the base list.

    Returns
    The layer, or nullptr. Cineware SDK owns the pointed layer.

    ◆ SetLayerObject()

    void SetLayerObject ( LayerObject layer)

    Sets the layer for the base list.

    Parameters
    [in]layerThe layer to set. The object takes over the ownership of the pointed layer.

    ◆ GetLayerData()

    const LayerData* GetLayerData ( BaseDocument doc,
    Bool  rawdata = false 
    )

    Gets the layer data for the object.

    Since
    17.008
    Parameters
    [in]docThe document for the operation.
    [in]rawdataUsually GetLayerData() takes special global modes like SOLO layer automatically into account.
    To get the original layer values without any additional global changes set rawdata to true.
    Returns
    The layer data, or nullptr.

    ◆ SetLayerData()

    Bool SetLayerData ( BaseDocument doc,
    const LayerData data 
    )

    Sets the layer data for the object.

    Since
    17.008
    Parameters
    [in]docThe document for the operation.
    [in]dataThe new layer data.
    Returns
    true if the layer data was successfully set, otherwise false.

    ◆ GetClone()

    virtual BaseList2D* GetClone ( COPYFLAGS  flags,
    AliasTrans trans 
    )
    virtual

    Gets a copy of the base list.

    Parameters
    [in]flagsFlags for the clone.
    [in]transAn alias translator for the operation. Can be nullptr. The caller owns the pointed object.
    Returns
    The cloned base list. The caller owns the pointed object.

    Reimplemented from GeListNode.

    Reimplemented in RenderData, CKey, BaseShader, LayerObject, CTrack, BaseDocument, BaseObject, BaseDraw, BaseTag, BaseVideoPost, FieldLayer, MultipassObject, BaseMaterial, PluginNode, BaseSceneHook, and ViewPanel.

    ◆ GetDynamicDescription()

    DynamicDescription* GetDynamicDescription ( )

    Gets the dynamic description of the base list. Also known as the User Data part of the Attribute Manager.

    Returns
    The dynamic description. The base list owns the pointed dynamic description.

    ◆ IsBaseList()

    virtual Bool IsBaseList ( )
    virtual

    Checks if it is a base list.

    Returns
    true if a base list, otherwise false.

    Reimplemented from GeListNode.

    ◆ Remove()

    virtual void Remove ( )
    virtual

    Removes the node from its list.

    Warning
    When a base list is removed the owner become responsible for freeing it or passing its ownership to another list.

    Reimplemented in CTrack, CCurve, and BaseList4D.

    ◆ SetDescIDState()

    Bool SetDescIDState ( const DescID id,
    DESCIDSTATE  descidstate 
    )

    Sets the state for the description id.

    Since
    17.008
    Parameters
    [in]idThe description ID.
    [in]descidstateThe new description ID state: DESCIDSTATE
    Returns
    true if the description ID state was successfully set, otherwise false.

    ◆ GetDescIDState()

    DESCIDSTATE GetDescIDState ( const DescID id,
    Bool  tolerant 
    ) const

    Gets the state of a description id.

    Since
    17.008
    Parameters
    [in]idThe description ID.
    [in]tolerantIf set to true a valid state is returned even though the description ID do not match-completly.
    This can be useful for descriptions with several levels. Take this description ID for example:
    DescID(DescLevel(1000, DTYPE_VECTOR, 0), DescLevel(1, DTYPE_REAL, 0))
    If tolerant is true a valid state is returned even though only the following description ID is passed:
    DescID(DescLevel(1000, DTYPE_VECTOR, 0))
    Returns
    The description ID state: DESCIDSTATE

    ◆ GetOverrideRoot()

    RootPluginNode* GetOverrideRoot ( )

    Private.

    ◆ GetFirstOverride()

    BaseOverride* GetFirstOverride ( )

    Private.

    ◆ TranslateDescID()

    virtual Bool TranslateDescID ( const DescID id,
    DescID res_id,
    GeListNode *&  res_at 
    )
    virtual

    Private.

    Reimplemented from GeListNode.

    Friends And Related Function Documentation

    ◆ RootList2D

    friend class RootList2D
    friend

    ◆ RootShader

    friend class RootShader
    friend

    ◆ RootCKey

    friend class RootCKey
    friend

    ◆ RootCTrack

    friend class RootCTrack
    friend

    ◆ RootObject

    friend class RootObject
    friend

    ◆ RootMultipass

    friend class RootMultipass
    friend

    ◆ RootVideoPost

    friend class RootVideoPost
    friend

    ◆ BaseDocument

    friend class BaseDocument
    friend

    ◆ RootRenderData

    friend class RootRenderData
    friend

    ◆ BaseShader

    friend class BaseShader
    friend

    ◆ BaseList4D

    friend class BaseList4D
    friend

    ◆ BaseObject

    friend class BaseObject
    friend

    ◆ WeightTagData

    friend class WeightTagData
    friend

    ◆ RootBaseDraw

    friend class RootBaseDraw
    friend

    ◆ RootPluginNode

    friend class RootPluginNode
    friend

    ◆ BaseOverrideData

    friend class BaseOverrideData
    friend

    ◆ BaseSceneHook

    friend class BaseSceneHook
    friend

    ◆ PluginNode

    friend class PluginNode
    friend

    Member Data Documentation

    ◆ m_name

    String m_name
    private

    ◆ mp_layer

    BaseLink mp_layer
    private

    ◆ m_marker

    GeMarker m_marker
    private

    ◆ l_uniquearray

    UniqueIDArray* l_uniquearray
    private

    ◆ dynamicdescription

    DynamicDescription dynamicdescription
    private

    ◆ m_id

    Int32 m_id
    protected

    ◆ mp_rootshader

    RootShader mp_rootshader
    protected

    ◆ mp_rootshader_hidden

    RootShader mp_rootshader_hidden
    protected

    ◆ root_shader_repository

    RootShader root_shader_repository
    protected

    ◆ l_bitfeld

    Int32 l_bitfeld
    protected

    ◆ mp_rootctrack

    RootCTrack mp_rootctrack
    protected

    ◆ root_override

    RootPluginNode root_override
    protected

    ◆ notify_events

    NotifyList* notify_events
    protected

    ◆ keyframestore

    DescIdStore* keyframestore
    protected

    ◆ propstore

    DescIdStore* propstore
    protected

    ◆ m_bc

    BaseContainer m_bc
    protected

    ◆ m_data

    NodeData* m_data
    protected
    Xbitmap
    #define Xbitmap
    Bitmap.
    Definition: c4d_parameter_ids.h:916
    MATERIAL_COLOR_SHADER
    @ MATERIAL_COLOR_SHADER
    Definition: mmaterial.h:272
    cineware::DTYPE_VECTOR
    @ DTYPE_VECTOR
    Vector
    Definition: c4d_parameter_ids.h:417
    cineware::MSG_UPDATE
    @ MSG_UPDATE
    Definition: private_symbols.h:4571
    cineware::BaseList2D::BaseShader
    friend class BaseShader
    Definition: c4d_baselist2d.h:51
    cineware::DTYPE_REAL
    @ DTYPE_REAL
    Float
    Definition: c4d_parameter_ids.h:415
    cineware::BaseShader::Alloc
    static BaseShader * Alloc(Int32 type)