Open Search
    BaseDocument Class Reference

    #include <c4d_basedocument.h>

    Inheritance diagram for BaseDocument:

    Public Types

    typedef BaseList2D SUPER
     
    - Public Types inherited from BaseList2D
    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 BaseList2D
     BaseList2D ()
     
    virtual ~BaseList2D ()
     
    BaseList2DGetNext ()
     
    BaseList2DGetPred ()
     
    NodeDataGetNodeData ()
     
    void SetNodeData (NodeData *data)
     
    void SetBit (Int32 mask)
     
    Bool GetBit (Int32 mask)
     
    void DelBit (Int32 mask)
     
    void ToggleBit (Int32 mask)
     
    Int32 GetAllBits ()
     
    void SetAllBits (Int32 bits)
     
    BaseContainer GetData ()
     
    BaseContainerGetDataInstance ()
     
    BaseContainerGetDataInstanceRef ()
     
    const StringGetName ()
     
    void SetName (const String &new_name)
     
    const GeMarkerGetMarker () 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
     
    BaseShaderGetFirstShader ()
     
    Bool InsertShader (BaseShader *shader, BaseShader *pred=nullptr)
     
    Bool InsertShaderLast (BaseShader *shader)
     
    RootCTrackGetCTrackRoot ()
     
    CTrackGetFirstCTrack ()
     
    CTrackFindCTrack (const DescID &id)
     
    Bool AppendCTrack (CTrack *t)
     
    void InsertTrackSorted (CTrack *track)
     
    virtual Int32 GetDiskType () const
     
    LayerObjectGetLayerObject ()
     
    void SetLayerObject (LayerObject *layer)
     
    const LayerDataGetLayerData (BaseDocument *doc, Bool rawdata=false)
     
    Bool SetLayerData (BaseDocument *doc, const LayerData &data)
     
    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)
     
    - 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 CopyToPresetSettings (const CKey &fromKey)
     
    void RestoreFromPresetSettings (CKey &toKey) const
     
    - Protected Member Functions inherited from BaseList2D
    void SetID (Int32 id)
     
    virtual Int32 GetInstanceType () const
     

    Protected Attributes

    CDefaultKey cdefaultkey
     
    CDefaultKey cCustomkey
     
    - Protected Attributes inherited from BaseList2D
    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 Member Functions

    virtual Bool GetDParameter (const DescID &id, GeData &data)
     
    virtual Bool SetDParameter (const DescID &id, const GeData &data)
     
    virtual Bool CopyToX (PrivateChunk *dst, COPYFLAGS flags, AliasTrans *trn)
     
    ViewPanelGetFirstViewPanel ()
     
    void ClearDocument ()
     

    Private Attributes

    RootObjectmp_ops
     
    RootMaterialmp_mats
     
    RootLayermp_layers
     
    RootRenderDatamp_rdata
     
    RootViewPanelmp_viewpanel
     
    RootSceneHookmp_scenehook
     
    Bool caches
     
    BaseBitmap m_previewbitmap
     
    Int32 m_loadflags
     
    Int32 loadedc4dversion
     
    BaseTime d_time
     
    Int32 d_modus
     
    Int32 l_mode
     
    Int32 d_action
     
    Int32 l_action
     
    Int32 t_action
     
    AxisState state [4]
     
    Filename pfad
     
    Filename name
     
    DocumentPref docpref
     
    BaseContainer tl_data
     
    BaseContainer obj_data
     
    BaseContainer mat_data
     
    BaseContainer coo_data
     
    BaseContainer modeling_data
     
    BaseContainer modeling_plugin_data
     
    TakeData _takeData
     

    Friends

    class CKey
     
    class CCurve
     
    class PrivateChunk
     
    BaseDocumentLoadDocument (const Filename &name, SCENEFILTER loadflags)
     

    Constructor/Destructor

     BaseDocument ()
     
    virtual ~BaseDocument ()
     

    Allocation/Free

    virtual Int32 GetType () const
     
    static BaseDocumentAlloc ()
     
    static void Free (BaseDocument *&v)
     

    Navigation

    BaseDocumentGetNext ()
     
    BaseDocumentGetPred ()
     

    Cloning

    virtual BaseList2DGetClone (COPYFLAGS flags, AliasTrans *trans)
     

    Create from/to Cinema 4D

    virtual Bool CreateSceneFromC4D ()
     
    virtual Bool CreateSceneToC4D (Bool selectedOnly)
     
    virtual Bool CreateObjectFromC4D (BaseObject *obj)
     
    virtual Bool CreateLayerFromC4D (LayerObject *lay)
     

    Get First Object/Material/RenderData/Layer

    BaseObjectGetFirstObject ()
     
    BaseMaterialGetFirstMaterial ()
     
    RenderDataGetFirstRenderData ()
     
    BaseSceneHookGetFirstSceneHook ()
     
    BaseSceneHookFindSceneHook (Int32 id)
     
    LayerObjectGetFirstLayer ()
     

    Insert Object/Material/RenderData/Layer

    Bool InsertObject (BaseObject *op, BaseObject *parent, BaseObject *pred=nullptr)
     
    Bool InsertMaterial (BaseMaterial *mat, BaseMaterial *pred=nullptr)
     
    Bool InsertRenderData (RenderData *rd, RenderData *parent, RenderData *pred=nullptr)
     
    Bool InsertRenderDataLast (RenderData *rd)
     
    Bool InsertLayer (LayerObject *pLay, LayerObject *parent, LayerObject *pred=nullptr)
     

    Get/Set RenderData

    RenderDataGetActiveRenderData () const
     
    void SetActiveRenderData (RenderData *rd)
     

    Time/Mode/Action/Fps

    const BaseTimeGetTime () const
     
    void SetTime (const BaseTime &new_time)
     
    Int32 GetMode () const
     
    void SetMode (Int32 m)
     
    Int32 GetAction () const
     
    void SetAction (Int32 a)
     
    Int32 GetFps ()
     
    void SetFps (Int32 fps)
     

    Editor Views

    BaseDrawGetActiveBaseDraw ()
     
    BaseDrawGetRenderBaseDraw ()
     
    BaseDrawGetBaseDraw (Int32 num)
     
    Int32 GetBaseDrawCount ()
     
    void GetDefaultClippingPlanes (Float &near, Float &far, const GeData *d=nullptr)
     

    Cineware SDK Convenience Methods

    BaseObjectGetSceneCamera ()
     
    Bool SetSceneCamera (BaseObject *opCam)
     
    BaseObjectCreateSky ()
     

    Miscellaneous

    virtual Bool Execute ()
     
    BaseBitmapGetDocPreviewBitmap ()
     
    Bool GetDefaultKey (CKey *pKey, Bool &bOverdub) const
     
    void SetDefaultKey (CKey *pKey, Bool bOverdub)
     
    Int32 GetLastAction () const
     
    AxisStateGetState ()
     
    Bool HasCaches ()
     
    TakeDataGetTakeData ()
     

    Private

    virtual BaseDocumentGetDocument () const
     
    virtual Bool HandleSubChunk (HyperFile *hf, Int32 id, Int32 level)
     
    virtual Bool Write (HyperFile *hf)
     

    Detailed Description

    Contains the complete description of a Cinema 4D document.

    Member Typedef Documentation

    ◆ SUPER

    typedef BaseList2D SUPER

    Constructor & Destructor Documentation

    ◆ BaseDocument()

    Default constructor.

    ◆ ~BaseDocument()

    virtual ~BaseDocument ( )
    virtual

    Default destructor.

    Member Function Documentation

    ◆ IsInstanceOf()

    virtual Bool IsInstanceOf ( cineware::Int32  id) const
    virtual

    Reimplemented from BaseList2D.

    ◆ GetDParameter()

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

    Reimplemented from BaseList2D.

    ◆ SetDParameter()

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

    Reimplemented from BaseList2D.

    ◆ CopyToX()

    virtual Bool CopyToX ( PrivateChunk dst,
    COPYFLAGS  flags,
    AliasTrans trn 
    )
    privatevirtual

    Reimplemented from BaseList2D.

    ◆ GetFirstViewPanel()

    ViewPanel* GetFirstViewPanel ( )
    private

    ◆ ClearDocument()

    void ClearDocument ( )
    private

    ◆ CopyToPresetSettings()

    void CopyToPresetSettings ( const CKey fromKey)
    protected

    ◆ RestoreFromPresetSettings()

    void RestoreFromPresetSettings ( CKey toKey) const
    protected

    ◆ Alloc()

    static BaseDocument* Alloc ( )
    static

    Allocates a document. Destroy the allocated document with Free().

    Returns
    The allocated document, or nullptr if the allocation failed.

    ◆ Free()

    static void Free ( BaseDocument *&  v)
    static

    Destructs documents allocated with Alloc().

    Parameters
    [in,out]vThe document to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

    ◆ GetType()

    virtual Int32 GetType ( ) const
    virtual

    Gets the object type for a document.

    Note
    Always returns Tbasedocument.
    Returns
    The object type for a BaseDocument i.e. Tbasedocument.

    Reimplemented from BaseList2D.

    ◆ GetNext()

    BaseDocument* GetNext ( )

    Gets the next document in the list. Convenience version of BaseList2D::GetNext() returning a pointer to a BaseDocument.

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

    ◆ GetPred()

    BaseDocument* GetPred ( )

    Gets the previous document in the list. Convenience version of GeListNode::GetPred() returning a pointer to a BaseDocument.

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

    ◆ GetClone()

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

    Gets a clone/copy of the document.

    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 document. The caller owns the pointed document.

    Reimplemented from BaseList2D.

    ◆ CreateSceneFromC4D()

    virtual Bool CreateSceneFromC4D ( )
    virtual

    Creates a scene from a Cinema 4D file in the external application.
    The method goes through the scene structure (objects, material, layer) and build the scene, it calls the execute function of the Alien classes.

    See also
    The articles Implementation (Cineware SDK) and Implementation on the External Side.
    Returns
    true if successful, otherwise false.

    ◆ CreateSceneToC4D()

    cineware::Bool CreateSceneToC4D ( cineware::Bool  selectedOnly)
    virtual

    Must be overloaded by the user.
    Creates a Cinema 4D file from the external application. The user should go through the external scene structure (objects, materials, layers) and build the Cinema 4D document.

    Parameters
    [in]selectedOnlyPass true to export the selection only, otherwise false.
    Returns
    true if successful, otherwise false.

    ◆ CreateObjectFromC4D()

    virtual Bool CreateObjectFromC4D ( BaseObject obj)
    virtual

    Private.

    ◆ CreateLayerFromC4D()

    virtual Bool CreateLayerFromC4D ( LayerObject lay)
    virtual

    Private.

    ◆ GetFirstObject()

    BaseObject* GetFirstObject ( )

    Gets the first object of the document. The objects in the document can be looped through with BaseObject::GetNext(), BaseObject::GetPred(), BaseObject::GetDown() etc.

    Returns
    The first object of the document, or nullptr if there are no objects in the document. The document owns the pointed object.

    ◆ GetFirstMaterial()

    BaseMaterial* GetFirstMaterial ( )

    Gets the first material of the document. The other materials in the document can be be looped through with BaseMaterial::GetNext() and BaseMaterial::GetPred().

    Returns
    The first material of the document, or nullptr if there are no materials in the document. The document owns the pointed material.

    ◆ GetFirstRenderData()

    RenderData* GetFirstRenderData ( )

    Gets the first render data/settings of the document. The other render settings in the document can be looped trough with RenderData::GetNext(), RenderData::GetPred(), RenderData::GetDown() etc.

    Returns
    The first render data/settings of the document, or nullptr if there are no render data/settings associated with the document. The document owns the pointed render data.

    ◆ GetFirstSceneHook()

    BaseSceneHook* GetFirstSceneHook ( )

    Gets the first scene hook of the document. The other scene hooks in the document can be looped trough with BaseSceneHook::GetNext() and BaseSceneHook::GetPred().

    Since
    17.008
    Returns
    The first scene hook of the document, or nullptr if there are no scene hook associated with the document. The document owns the pointed scene hook.

    ◆ FindSceneHook()

    BaseSceneHook* FindSceneHook ( Int32  id)

    Finds a scene hook by ID.

    Since
    17.008
    Parameters
    [in]idThe scene hook ID.
    Returns
    The found scene hook, or nullptr if there is no scene hook with the searched id. The document owns the pointed scene hook.

    ◆ GetFirstLayer()

    LayerObject* GetFirstLayer ( )

    Gets the first layer in the document. The other layers in the document can be looped trough with LayerObject::GetNext(), LayerObject::GetPred(), LayerObject::GetDown() etc.

    Returns
    The first layer of the document, or nullptr if there are no layers in the document. The document owns the pointed layer.

    ◆ InsertObject()

    Bool InsertObject ( BaseObject op,
    BaseObject parent,
    BaseObject pred = nullptr 
    )

    Inserts the object into the document's object hierarchy.
    Optionally the insertion position can either be specified by the parent parameter, inserting the object as the first child of the specified parent, or by the pred parameter, inserting the object below the specified pred object.
    If neither is given, the object is inserted at the top of the hierarchy.

    Note
    If both parent and pred are provided then pred has precedence.
    Parameters
    [in]opThe object to insert into the document. The document takes over the ownership of the pointed object.
    [in]parentAn optional parent object in the document to insert the object as a child of. Can be nullptr. The caller owns the pointed object.
    [in]predAn optional object in the document to use as insertion point. The caller owns the pointed object.
    Returns
    true if successful, otherwise false.

    ◆ InsertMaterial()

    Bool InsertMaterial ( BaseMaterial mat,
    BaseMaterial pred = nullptr 
    )

    Inserts the material into the document's material list.
    Optionally the insertion position can be specified by the pred parameter, giving the material before (just to the left of) the wanted position. Otherwise the material is inserted at the first position in the list.

    Parameters
    [in]matThe material to insert into the document. The document takes over the ownership of the pointed material.
    [in]predAn optional material in the document to use as insertion point. The caller owns the pointed material.
    Returns
    true if successful, otherwise false.

    ◆ InsertRenderData()

    Bool InsertRenderData ( RenderData rd,
    RenderData parent,
    RenderData pred = nullptr 
    )

    Inserts the render data into the document's render settings hierarchy.
    Optionally the insertion position can either be specified by the parent parameter, inserting the render data as the first child of the specified parent, or by the pred parameter, inserting the render data below the specified pred render data.
    If neither is given, the render data is inserted at the top of the hierarchy.

    Note
    If both parent and pred are provided then pred has precedence.
    Parameters
    [in]rdThe render data to insert. The document takes over the ownership of the pointed render data.
    [in]parentAn optional parent to insert the render data as a child of. The caller owns the pointed render data.
    [in]predAn optional render data of the document to use as insertion point. The caller owns the pointed render data.
    Returns
    true if successful, otherwise false.

    ◆ InsertRenderDataLast()

    Bool InsertRenderDataLast ( RenderData rd)

    Inserts the render data as last child into the document's render data list.

    Parameters
    [in]rdThe render data to insert. The document takes over the ownership of the pointed render data.
    Returns
    true if successful, otherwise false.

    ◆ InsertLayer()

    Bool InsertLayer ( LayerObject pLay,
    LayerObject parent,
    LayerObject pred = nullptr 
    )

    Inserts the layer into the document's layer list.
    The insertion position can either be specified by the parent parameter, inserting the layer as the first child of the specified parent, or by the pred parameter, inserting the layer below the specified pred layer.
    If neither is given, the layer is inserted at the top of the hierarchy.

    Note
    If both parent and pred are provided then pred has precedence.
    Parameters
    [in]pLayThe layer to insert. The document takes over the ownership of the pointed object.
    [in]parentAn optional parent to insert the layer as a child of. The caller owns the pointed layer.
    [in]predAn optional layer of the document to use as insertion point. The caller owns the pointed layer.
    Returns
    true if successful, otherwise false.

    ◆ GetActiveRenderData()

    RenderData* GetActiveRenderData ( ) const

    Gets the active render data for the document. These are the settings used for rendering the document.

    Returns
    The active render data/settings. The document owns the pointed render data.

    ◆ SetActiveRenderData()

    void SetActiveRenderData ( RenderData rd)

    Sets the active render data for the document. These are the settings used for rendering the document.

    Parameters
    [in]rdThe render data/settings to make active. Must be in the document already. The document owns the pointed render data.

    ◆ GetTime()

    const BaseTime& GetTime ( ) const

    Gets the current time for the document's Timeline.
    Here is how to get the current frame with GetTime():

    Int32 fps = doc.GetFps();
    BaseTime time = doc->GetTime();
    frame = time.GetFrame(fps);
    See also
    GetFps()
    Returns
    The current time of the Timeline.

    ◆ SetTime()

    void SetTime ( const BaseTime new_time)

    Sets the current time for the document's Timeline.

    Parameters
    [in]new_timeThe new current time of the Timeline.

    ◆ GetMode()

    Int32 GetMode ( ) const

    Gets the main editor mode.

    Returns
    The main editor mode.

    ◆ SetMode()

    void SetMode ( Int32  m)

    Sets the main editor mode.

    Parameters
    [in]mThe main editor mode.

    ◆ GetAction()

    Int32 GetAction ( ) const

    Gets the current action tool in the editor.

    Returns
    The current action tool: ID_MODELING_MOVE, ID_MODELING_SCALE, ID_MODELING_ROTATE etc.

    ◆ SetAction()

    void SetAction ( Int32  a)

    Sets the current action tool in the editor.

    Parameters
    [in]aThe new action tool: ID_MODELING_MOVE, ID_MODELING_SCALE, ID_MODELING_ROTATE etc.

    ◆ GetFps()

    Int32 GetFps ( )

    Gets the number of Frames per Second (FPS).

    Returns
    The number of Frames per Second.

    ◆ SetFps()

    void SetFps ( Int32  fps)

    Sets the number of Frames per Second (FPS).

    Parameters
    [in]fpsThe new number of Frames per Second.

    ◆ GetActiveBaseDraw()

    BaseDraw* GetActiveBaseDraw ( )

    Gets the activate view in the editor.

    Returns
    The active view in the editor or nullptr if there is no active view. The document owns the pointed BaseDraw.

    ◆ GetRenderBaseDraw()

    BaseDraw* GetRenderBaseDraw ( )

    Gets the view the user has chosen as Render View in the editor (see View menu in Cinema 4D).

    Returns
    The render view in the editor or nullptr if there is no render view. The document owns the pointed BaseDraw.

    ◆ GetBaseDraw()

    BaseDraw* GetBaseDraw ( Int32  num)

    Gets the BaseDraw from one of the editor views.

    Parameters
    [in]numIf there are multiple views this selects the view. 0 <= num < GetBaseDrawCount()
    Returns
    The requested view in the editor, or nullptr if it is not available. The document owns the pointed BaseDraw.

    ◆ GetBaseDrawCount()

    Int32 GetBaseDrawCount ( )

    Gets the number of views in the editor.

    Returns
    The view count.

    ◆ GetDefaultClippingPlanes()

    void GetDefaultClippingPlanes ( Float near,
    Float far,
    const GeData d = nullptr 
    )

    Gets the default near and far clipping planes values from a clipping preset or from the document clipping preset.

    Parameters
    [out]nearAssigned the default near clipping plane value.
    [out]farAssigned the default far clipping plane value.
    [in]dPass a clipping preset ID to get the near/far values for this preset instead of the values from the document preset. See DOCUMENT_CLIPPING_PRESET enum in parameter_ids\ddoc.h.

    ◆ GetSceneCamera()

    BaseObject* GetSceneCamera ( )

    Gets the current scene camera.

    Returns
    The scene camera, or nullptr if no scene camera is used.

    ◆ SetSceneCamera()

    Bool SetSceneCamera ( BaseObject opCam)

    Sets a new scene camera. If opCam is nullptr, the editor camera is used.

    Parameters
    [in]opCamThe new scene camera. If nullptr, the editor camera is used. The caller owns the pointed camera.
    Returns
    true if the camera could be set, otherwise false.

    ◆ CreateSky()

    BaseObject* CreateSky ( )

    Creates a Physical Sky object within the document and returns it. Basically the same as calling the Physical Sky command in Cinema 4D.
    Example:
    Adding sky shader object.

    BaseObject *sky = newC4DDoc->CreateSky();
    Returns
    The newly created sky object. The document owns the pointed sky object.

    ◆ Execute()

    virtual Bool Execute ( )
    virtual

    Overload this for self defined Alien document classes. Called when Cineware SDK loads a document. Example:

    class AlienBaseDocument : public BaseDocument
    {
    public:
    virtual Bool Execute();
    };
    Bool AlienBaseDocument::Execute()
    {
    // Do something with the document, for instance access the document settings
    GeData data;
    if (GetParameter(DOCUMENT_DOCUNIT, data) && data.GetType() == CUSTOMDATATYPE_UNITSCALE)
    {
    UnitScaleData* ud = (UnitScaleData*)data.GetCustomDataType(CUSTOMDATATYPE_UNITSCALE);
    DOCUMENT_UNIT docUnit;
    Real docScale;
    ud->GetUnitScale(docScale, docUnit);
    }
    return true;
    }
    Returns
    true if successful, otherwise false.

    ◆ GetDocPreviewBitmap()

    BaseBitmap& GetDocPreviewBitmap ( )

    Gets the preview bitmap for the document.
    This is the same as the preview bitmap of the Windows Explorer / OS X Finder thumbnails.

    Returns
    The preview bitmap for the document.

    ◆ GetDefaultKey()

    Bool GetDefaultKey ( CKey pKey,
    Bool bOverdub 
    ) const

    Gets the document's default keying settings.

    Parameters
    [in]pKeyAssigned the default keying settings. Cineware SDK owns the pointed key.
    [in]bOverdubAssigned the document's default overdub.
    Returns
    true if the document's default keying settings were retrieved successfully, otherwise false.

    ◆ SetDefaultKey()

    void SetDefaultKey ( CKey pKey,
    Bool  bOverdub 
    )

    Sets the document's default keying settings.

    Since
    17.008
    Parameters
    [in]pKeyThe new default keying settings. Cineware SDK owns the pointed key.
    [in]bOverdubThe new document's default overdub.
    If a keyframe already exists, the existing keyframe's interpolation type will be maintained when a new keyframe is recorded (only the Value Key will be overwritten).

    ◆ GetLastAction()

    Int32 GetLastAction ( ) const

    Private.

    ◆ GetState()

    AxisState* GetState ( )

    Gets the state of the Axis locks and the World/Object coordinate switch.

    Returns
    The state of the Axis locks and the World/Object coordinate switch. Cineware SDK owns the pointed AxisState structure.

    ◆ HasCaches()

    Bool HasCaches ( )

    Checks if the scene has a polygonal object cache.
    Cinema 4D has a special safe flag in the document preferences where a polygonal object cache can be saved in every file.

    See also
    The article Polygon and Object Caches.
    Returns
    true if the document was saved with polygonal caches, otherwise false.

    ◆ GetTakeData()

    TakeData* GetTakeData ( )

    Gets the take data for the document.

    Since
    17.008
    Returns
    The take data. The document owns the pointed take data.

    ◆ GetDocument()

    virtual BaseDocument* GetDocument ( ) const
    virtual

    Private.

    ◆ HandleSubChunk()

    virtual Bool HandleSubChunk ( HyperFile hf,
    Int32  id,
    Int32  level 
    )
    virtual

    Private.

    Reimplemented from BaseList2D.

    ◆ Write()

    virtual Bool Write ( HyperFile hf)
    virtual

    Private.

    Reimplemented from BaseList2D.

    Friends And Related Function Documentation

    ◆ CKey

    friend class CKey
    friend

    ◆ CCurve

    friend class CCurve
    friend

    ◆ PrivateChunk

    friend class PrivateChunk
    friend

    ◆ LoadDocument

    BaseDocument* LoadDocument ( const Filename name,
    SCENEFILTER  loadflags 
    )
    friend

    Loads a document.

    Parameters
    [in]nameFile to load the document from.The caller owns the pointed document.
    [in]loadflagsFlags for the load.
    Returns
    The document that was loaded, or nullptr if it failed.

    Member Data Documentation

    ◆ mp_ops

    RootObject* mp_ops
    private

    ◆ mp_mats

    RootMaterial* mp_mats
    private

    ◆ mp_layers

    RootLayer* mp_layers
    private

    ◆ mp_rdata

    RootRenderData* mp_rdata
    private

    ◆ mp_viewpanel

    RootViewPanel* mp_viewpanel
    private

    ◆ mp_scenehook

    RootSceneHook* mp_scenehook
    private

    ◆ caches

    Bool caches
    private

    ◆ m_previewbitmap

    BaseBitmap m_previewbitmap
    private

    ◆ m_loadflags

    Int32 m_loadflags
    private

    ◆ loadedc4dversion

    Int32 loadedc4dversion
    private

    ◆ d_time

    BaseTime d_time
    private

    ◆ d_modus

    Int32 d_modus
    private

    ◆ l_mode

    Int32 l_mode
    private

    ◆ d_action

    Int32 d_action
    private

    ◆ l_action

    Int32 l_action
    private

    ◆ t_action

    Int32 t_action
    private

    ◆ state

    AxisState state[4]
    private

    ◆ pfad

    Filename pfad
    private

    ◆ name

    Filename name
    private

    ◆ docpref

    DocumentPref docpref
    private

    ◆ tl_data

    BaseContainer tl_data
    private

    ◆ obj_data

    BaseContainer obj_data
    private

    ◆ mat_data

    BaseContainer mat_data
    private

    ◆ coo_data

    BaseContainer coo_data
    private

    ◆ modeling_data

    BaseContainer modeling_data
    private

    ◆ modeling_plugin_data

    BaseContainer modeling_plugin_data
    private

    ◆ _takeData

    TakeData _takeData
    private

    ◆ cdefaultkey

    CDefaultKey cdefaultkey
    protected

    ◆ cCustomkey

    CDefaultKey cCustomkey
    protected
    CUSTOMDATATYPE_UNITSCALE
    #define CUSTOMDATATYPE_UNITSCALE
    Unit scale data type ID.
    Definition: customgui_unitscale.h:21
    cineware::Bool
    bool Bool
    Boolean type, possible values are only false/true, 8 bit.
    Definition: c4d_system.h:192
    cineware::BaseDocument::Execute
    virtual Bool Execute()
    cineware::BaseDocument::BaseDocument
    BaseDocument()
    Default constructor.
    cineware::BaseList2D::BaseObject
    friend class BaseObject
    Definition: c4d_baselist2d.h:53
    DOCUMENT_DOCUNIT
    @ DOCUMENT_DOCUNIT
    Definition: ddoc.h:80
    cineware::BaseDocument::Alloc
    static BaseDocument * Alloc()
    cineware::Int32
    int32_t Int32
    32 bit signed integer datatype.
    Definition: c4d_system.h:186
    cineware::DOCUMENT_UNIT
    DOCUMENT_UNIT
    Definition: customgui_unitscale.h:34
    cineware::PrivateChunk::GetParameter
    Bool GetParameter(Int32 id, GeData &data)