#include <c4d_basedocument.h>
This class contains the complete description of a scene.
Private Member Functions | |
BaseDocument () | |
~BaseDocument () | |
Alloc/Free/Flush | |
static BaseDocument * | Alloc () |
static void | Free (BaseDocument *&bl) |
void | Flush () |
Target Object | |
static void | CopyLinearWorkflow (const BaseDocument *src, BaseDocument *dst, Bool isMaterialPreview) |
static const OcioConverterRef & | GetBasicColorConverter () |
static const OcioConverterRef & | GetColorConverterForActiveDocument () |
BaseObject * | GetTargetObject () const |
void | SetTargetObject (BaseObject *op) |
maxon::Result< const maxon::UpdatableAssetRepositoryRef & > | GetSceneRepository (Bool create) |
void | SetTemporaryManipulatorObject (BaseObject *temp) |
BaseObject * | GetTemporaryManipulatorObject () const |
maxon::DocumentModeControllerRef & | GetModeController () |
Int32 | GetMode (const maxon::Id &group) const |
void | SetMode (Int32 mode, const maxon::Id &group) |
Filename | GetOcioConfigPath (Bool fullPath=true) const |
const maxon::OcioConfig & | GetOcioConfig () const |
void | GetOcioProfiles (maxon::ColorProfile &renderingColorSpace, maxon::ColorProfile &displayColorSpace, maxon::ColorProfile &viewTransform, maxon::ColorProfile &viewTransformThumbnails) const |
void | GetOcioConfigAndProfiles (maxon::OcioConfig &ocioConfig, maxon::ColorProfile &renderingColorSpace, maxon::ColorProfile &displayColorSpace, maxon::ColorProfile &viewTransform, maxon::ColorProfile &viewTransformThumbnails) const |
void | GetActiveOcioColorSpacesNames (maxon::CString &renderingColorSpace, maxon::CString &displayColorSpace, maxon::CString &viewTransform, maxon::CString &viewTransformThumbnails) const |
const maxon::BaseArray< maxon::CString > & | GetOcioColorSpaceNames () |
const maxon::BaseArray< maxon::CString > & | GetOcioRenderingColorSpaceNames () |
const BaseContainer & | GetOcioColorSpacesPopupMenu () const |
const maxon::BaseArray< maxon::CString > & | GetOcioViewTransformNames () |
const maxon::BaseArray< maxon::CString > & | GetOcioDisplayColorSpaceNames () |
maxon::CString | GetNameFromColorSpaceId (Int32 category, Int32 index) const |
Int32 | GetColorSpaceIdFromName (Int32 category, const maxon::CString &name) const |
void | UpdateOcioColorSpaces () |
const OcioConverterRef & | GetColorConverter () const |
maxon::Result< void > | PrivateSetBaseRepository (const maxon::UpdatableAssetRepositoryRef &baseRepo) |
Int | GetCacheRunId () const |
Bool | HasUncachedDynamics () const |
Navigation | |
const BaseDocument * | GetNext () const |
BaseDocument * | GetNext () |
const BaseDocument * | GetPred () const |
BaseDocument * | GetPred () |
Data/Settings | |
BaseContainer | GetData (DOCUMENTSETTINGS type) const |
void | SetData (DOCUMENTSETTINGS type, const BaseContainer &bc) |
const BaseContainer * | GetSettingsInstance (Int32 type) const |
BaseContainer * | GetSettingsInstance (Int32 type) |
NetRenderDocumentContext * | GetNetRenderDocumentContext () const |
void | SetNetRenderDocumentContext (NetRenderDocumentContext *context) |
Search Object/Material | |
BaseObject * | SearchObject (const maxon::String &str) |
BaseMaterial * | SearchMaterial (const maxon::String &str) |
Changed State | |
Bool | GetChanged () |
void | SetChanged () |
Name/Path | |
Filename | GetDocumentName () const |
Filename | GetDocumentPath () const |
void | SetDocumentName (const Filename &fn) |
void | SetDocumentPath (const Filename &path) |
LOD | |
Float | GetLOD () const |
void | SetLOD (Float lod) |
Bool | GetRenderLod () const |
void | SetRenderLod (Bool lod) |
Time | |
const BaseTime & | GetTime () const |
void | SetTime (const BaseTime &t) |
Int32 | GetFps () const |
void | SetFps (Int32 fps) |
BaseTime | GetMinTime () const |
void | SetMinTime (const BaseTime &t) |
BaseTime | GetMaxTime () const |
void | SetMaxTime (const BaseTime &t) |
BaseTime | GetUsedMinTime (BaseList2D *check) |
BaseTime | GetUsedMaxTime (BaseList2D *check) |
BaseTime | GetLoopMinTime () const |
void | SetLoopMinTime (const BaseTime &t) |
BaseTime | GetLoopMaxTime () const |
void | SetLoopMaxTime (const BaseTime &t) |
Mode/Action | |
Int32 | GetMode () const |
void | SetMode (Int32 m) |
Bool | IsEditMode () const |
Int32 | GetAction () const |
void | SetAction (Int32 a) |
Undo | |
Bool | StartUndo () |
Bool | EndUndo () |
Bool | AddUndo (UNDOTYPE type, void *data, Bool allowFromThread=false) |
Bool | AddUndo (BaseDraw *bd) |
Bool | DoUndo (Bool multiple=false) |
Bool | DoRedo () |
void | FlushUndoBuffer (Bool lastEntryOnly=false) |
BaseList2D * | GetUndoPtr () |
BaseList2D * | FindUndoPtr (BaseList2D *bl, UNDOTYPE type) |
Key | |
void | AutoKey (BaseList2D *undo, BaseList2D *op, Bool recursive, Bool pos, Bool scale, Bool rot, Bool param, Bool pla) |
Bool | RecordKey (BaseList2D *op, const BaseTime &time, const DescID &id, BaseList2D *undo, Bool eval_attribmanager, Bool autokeying, Bool allow_linking) |
void | Record () |
BaseDraw | |
BaseDraw * | GetActiveBaseDraw () const |
BaseDraw * | GetRenderBaseDraw () const |
BaseDraw * | GetBaseDraw (Int32 num) const |
Int32 | GetBaseDrawCount () const |
void | ForceCreateBaseDraw () |
Int32 | GetDrawTime () |
void | GetDefaultClippingPlanes (Float &nearPlane, Float &farPlane, const GeData *preset=nullptr) const |
Pick Session | |
const PickSessionDataStruct * | GetPickSession () const |
void | StartPickSession (PickSessionDataStruct *psd) |
void | StopPickSession (Bool cancel) |
Take Data | |
TakeData * | GetTakeData () const |
|
private |
|
private |
|
static |
|
static |
void Flush | ( | ) |
Empties the document; deletes and frees all resources used.
const BaseDocument* GetNext | ( | ) | const |
Gets the next document in the list. Convenience version of GeListNode::GetNext() returning a pointer to a BaseDocument.
BaseDocument* GetNext | ( | ) |
Gets the next document in the list. Convenience version of GeListNode::GetNext() returning a pointer to a BaseDocument.
const BaseDocument* GetPred | ( | ) | const |
Gets the previous document in the list. Convenience version of GeListNode::GetNext() returning a pointer to a BaseDocument.
BaseDocument* GetPred | ( | ) |
Gets the previous document in the list. Convenience version of GeListNode::GetNext() returning a pointer to a BaseDocument.
BaseContainer GetData | ( | DOCUMENTSETTINGS | type | ) | const |
Gets the container settings of the specified type.
[in] | type | Selects the type of settings to get for the document: DOCUMENTSETTINGS |
void SetData | ( | DOCUMENTSETTINGS | type, |
const BaseContainer & | bc | ||
) |
Merges the container for the settings of the specified type.
[in] | type | Selects the type of settings to merge for the document: DOCUMENTSETTINGS |
[in] | bc | The container to take the new settings from. |
const BaseContainer* GetSettingsInstance | ( | Int32 | type | ) | const |
Gets a pointer to the container settings of the specified type. Changes to the pointed container are reflected in the document so it is not needed to call SetData() manually.
[in] | type | Selects the type of settings to get for the document: DOCUMENTSETTINGS |
BaseContainer* GetSettingsInstance | ( | Int32 | type | ) |
NetRenderDocumentContext* GetNetRenderDocumentContext | ( | ) | const |
Retrieves a context on a client during a NET rendering.
void SetNetRenderDocumentContext | ( | NetRenderDocumentContext * | context | ) |
Sets the current context on a client during a NET rendering.
[in] | context | The information about the current NET rendering. The caller owns the pointed structure. |
BaseObject* GetFirstObject | ( | ) | const |
Gets the first object of the document. The other objects in the document can be accessed with BaseObject::GetNext(), BaseObject::GetPred(), BaseObject::GetDown() etc.
BaseMaterial* GetFirstMaterial | ( | ) | const |
Gets the first material of the document. The other materials in the document can be accessed with BaseMaterial::GetNext() and BaseMaterial::GetPred().
RenderData* GetFirstRenderData | ( | ) | const |
Gets the first render data or options of the document. The other render settings in the document can be accessed by using the base class list functions, RenderData::GetNext(), RenderData::GetPred(), RenderData::GetDown() etc.
BaseSceneHook* GetFirstSceneHook | ( | ) | const |
Gets the first scene hook of the document.
void InsertObject | ( | BaseObject * | op, |
BaseObject * | parent, | ||
BaseObject * | pred, | ||
Bool | checkNames = false , |
||
Bool | sendNotification = true |
||
) |
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.
[in] | op | The object to insert into the document. The document takes over the ownership of the pointed object. |
[in] | parent | An optional parent object in the document to insert the object as a child of. Can be nullptr. The caller owns the pointed object. |
[in] | pred | An optional object in the document to use as insertion point. The caller owns the pointed object. |
[in] | checkNames | If true, it avoids duplicated names by prepending an incremental number to the name when needed. |
[in] | sendNotification | True to send MSG_DOCUMENTINFO_TYPE_OBJECT_INSERT notification all scenehook (default). False to prevent doing this. |
void InsertMaterial | ( | BaseMaterial * | mat, |
BaseMaterial * | pred = nullptr , |
||
Bool | checkNames = false |
||
) |
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.
[in] | mat | The material to insert into the document. The document takes over the ownership of the pointed material. |
[in] | pred | An optional material in the document to use as insertion point. The caller owns the pointed material. |
[in] | checkNames | If true, it avoids duplicated names by prepending an incremental number to the name when needed. |
void InsertRenderData | ( | RenderData * | rd, |
RenderData * | parent, | ||
RenderData * | pred | ||
) |
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.
[in] | rd | The render data to insert. The document takes over the ownership of the pointed render data. |
[in] | parent | An optional parent to insert the render data as a child of. The caller owns the pointed render data. |
[in] | pred | An optional render data of the document to use as insertion point. The caller owns the pointed render data. |
void InsertRenderDataLast | ( | RenderData * | rd | ) |
Inserts the render data as last child into the document's render data list.
[in] | rd | The render data to insert. The document takes over the ownership of the pointed render data. |
BaseObject* GetActiveObject | ( | ) |
Gets the active object in the document. This is the object the user has selected in the Object Manager.
const BaseObject* GetActiveObject | ( | ) | const |
Gets the active object in the document. This is the object the user has selected in the Object Manager.
BaseMaterial* GetActiveMaterial | ( | ) |
Gets the active material in the document. This is the material the user has selected in the Material Manager.
const BaseMaterial* GetActiveMaterial | ( | ) | const |
Gets the active material in the document. This is the material the user has selected in the Material Manager.
BaseTag* GetActiveTag | ( | ) |
Gets the active tag in the document. This is the tag the user has selected in the Object Manager.
const BaseTag* GetActiveTag | ( | ) | const |
Gets the active tag in the document. This is the tag the user has selected in the Object Manager.
RenderData* GetActiveRenderData | ( | ) |
Gets the active render data for the document. These are the settings used for rendering the document.
const RenderData* GetActiveRenderData | ( | ) | const |
Gets the active render data for the document. These are the settings used for rendering the document.
BaseObject* GetRealActiveObject | ( | AtomArray * | help, |
Bool * | multi | ||
) |
Gets the active object or the dummy axis if multiple objects are selected.
[in] | help | Can be set to nullptr or for speedup purposes pass an array of active objects. The caller owns the pointed atom array. |
[out] | multi | Assigned true if multiple objects are selected. Can be nullptr. |
void GetActiveObjects | ( | AtomArray & | selection, |
GETACTIVEOBJECTFLAGS | flags | ||
) | const |
Gets the active object multi-selection and optionally the selection order and/or children.
[out] | selection | Filled with the selected objects. |
[in] | flags | Flags: GETACTIVEOBJECTFLAGS |
Gets the subset of polygon objects in the active object multi-selection.
[out] | selection | Filled with the selected polygon objects. |
[in] | children | If true then children are also added to selection, provided that they are selected. Otherwise only the topmost parent in each chain is added. |
void GetActiveObjectsFilter | ( | AtomArray & | selection, |
Bool | children, | ||
Int32 | type, | ||
Int32 | instanceof | ||
) | const |
Gets the active object multi-selection and removes objects that do not match the filter given by type and instanceof.
[out] | selection | Filled with the selected objects. |
[in] | children | If true then children are also added to selection, provided that they are selected. Otherwise only the topmost parent in each chain is added. |
[in] | type | Checked against C4DAtom::GetType(). Pass NOTOK to ignore the test. |
[in] | instanceof | Checked against C4DAtom::IsInstanceOf(). Pass NOTOK to ignore the test. |
void GetActiveMaterials | ( | AtomArray & | selection | ) | const |
Gets the active material multi-selection.
[out] | selection | Filled with the selected materials. |
void GetActiveTags | ( | AtomArray & | selection | ) | const |
Gets the active tag multi-selection.
[out] | selection | Filled with the selected tags. |
void GetSelection | ( | AtomArray & | selection | ) | const |
Gets the active selection. This function deals with both objects and tags.
[out] | selection | Filled with the objects and tags selection. |
void SetActiveObject | ( | BaseObject * | op, |
Int32 | mode = 0 |
||
) |
Modifies the current object multi-selection with op depending on mode.
[in] | op | The object to use. Must be in the document already. The document owns the pointed object. |
[in] | mode | The selection mode: SELECTION |
void SetActiveMaterial | ( | BaseMaterial * | mat, |
Int32 | mode = 0 |
||
) |
Modifies the current material multi-selection with mat depending on mode.
[in] | mat | The material within the document that you want to make active. Must be in the document already. The document owns the pointed material. |
[in] | mode | The selection mode: SELECTION |
Modifies the current tag multi-selection with tag depending on mode.
[in] | tag | The tag to make active. Must be in the document already. The document owns the pointed tag. |
[in] | mode | The selection mode: SELECTION |
void SetActiveRenderData | ( | RenderData * | rd | ) |
Sets the active render data for the document. These are the settings that are used for rendering.
[in] | rd | The render data to make active. Must be in the document already. The document owns the pointed render data. |
void SetSelection | ( | BaseList2D * | bl, |
Int32 | mode = 0 |
||
) |
Sets the active selection. This function deals with both objects, tags and materials.
[in] | bl | The baselist object within the document that you want to make active. Must be in the document already. The document owns the pointed base list object. |
[in] | mode | The selection mode: SELECTION |
BaseObject* SearchObject | ( | const maxon::String & | str | ) |
Searches for an object with the case sensitive name given.
[in] | str | The case sensitive name of the object to search for. |
BaseMaterial* SearchMaterial | ( | const maxon::String & | str | ) |
Searches for a material with the case sensitive name given.
[in] | str | The case sensitive name of the material to search for. |
Bool GetChanged | ( | ) |
Checks if the document has been changed since it was last saved.
void SetChanged | ( | ) |
Sets the changed state of the document to reflect it has been modified.
Filename GetDocumentName | ( | ) | const |
Gets the name of the document.
Filename GetDocumentPath | ( | ) | const |
Gets the path of the document.
void SetDocumentName | ( | const Filename & | fn | ) |
Sets the name of the document.
[in] | fn | The new name for the document's file. Must contain the name part only. |
void SetDocumentPath | ( | const Filename & | path | ) |
Sets the path of the document.
[in] | path | The new path for the document's file. Must contain the path part only. |
Float GetLOD | ( | ) | const |
Gets the Level of Detail for the document.
void SetLOD | ( | Float | lod | ) |
Sets the Level of Detail for the document.
[in] | lod | The Level of Detail to set for the document. The default values are:
|
Bool GetRenderLod | ( | ) | const |
Checks if the Level of Detail for rendering should be used in the editor.
void SetRenderLod | ( | Bool | lod | ) |
Sets if the the Level of Detail for rendering should be used in the editor.
[in] | lod | true if the render LOD should be used, otherwise false. |
const BaseTime& GetTime | ( | ) | const |
void SetTime | ( | const BaseTime & | t | ) |
Sets the current time for the document's Timeline.
[in] | t | The new current time of the Timeline. |
Int32 GetFps | ( | ) | const |
Gets the number of frames per second (FPS).
void SetFps | ( | Int32 | fps | ) |
Sets the number of frames per second (FPS).
[in] | fps | The new number of frames per second. |
BaseTime GetMinTime | ( | ) | const |
Gets the starting time for the Timeline in the document.
void SetMinTime | ( | const BaseTime & | t | ) |
Sets the starting time for the Timeline in the document.
[in] | t | The new starting time of the document's Timeline. |
BaseTime GetMaxTime | ( | ) | const |
Gets the ending time for for the Timeline in the document.
void SetMaxTime | ( | const BaseTime & | t | ) |
BaseTime GetUsedMinTime | ( | BaseList2D * | check | ) |
Gets the lower bound of the range of time used by all sequences, tracks, keys etc. Optionally the calculation is done only for the given object check.
[in] | check | An object to check or nullptr to check the document's objects. |
BaseTime GetUsedMaxTime | ( | BaseList2D * | check | ) |
Gets the upper bound of the range of time used by all sequences, tracks, keys etc. Optionally the calculation is done only for the given object check.
[in] | check | An object to check or nullptr to check the document's objects. |
BaseTime GetLoopMinTime | ( | ) | const |
Gets the time of the left boundary of the document's loop or preview range.
void SetLoopMinTime | ( | const BaseTime & | t | ) |
Sets the time of the left boundary of the document's loop or preview range.
[in] | t | The new starting time for the document's loop range. |
BaseTime GetLoopMaxTime | ( | ) | const |
Gets the time of the right boundary of the document's loop or preview range.
void SetLoopMaxTime | ( | const BaseTime & | t | ) |
Sets the time of the right boundary of the document's loop or preview range.
[in] | t | The new ending time for the document's loop range. |
Int32 GetMode | ( | ) | const |
Gets the main editor mode.
void SetMode | ( | Int32 | m | ) |
Sets the main editor mode.
[in] | m | The values for the editor mode are: EditorModes |
Bool IsEditMode | ( | ) | const |
Int32 GetAction | ( | ) | const |
Gets the current action tool in the editor.
void SetAction | ( | Int32 | a | ) |
Sets the current action tool in the editor.
[in] | a | The values are ID_MODELING_MOVE, ID_MODELING_SCALE, ID_MODELING_ROTATE etc. |
Bool StartUndo | ( | ) |
Tells Cinema 4D to start building a list of undos into a single undo action for the user. This must be paired with an EndUndo().
Bool EndUndo | ( | ) |
Ends the building of multiple undo actions into a single user undo. This must be paired with StartUndo().
Adds an undo type to the list of undo operations started with StartUndo().
[in] | type | The values for the undo type are: UNDOTYPE |
[in] | data | The object the undo has been added for. |
[in] | allowFromThread | If an undo is added from a thread this is not executed. (As a safety measure, because normally this does not make any sense.) For explicit cases where a thread has to call AddUndo() (the view redraw and everything else is blocked) this can be set to true. |
Adds an undo for a BaseDraw to the list of undo operations started with StartUndo().
[in] | bd | The base draw to add the change to the undo list. |
Perform an undo operation, same as the user doing Undo from within Cinema 4D's interface.
[in] | multiple | This parameter only matters if DoUndo() is called between AddUndo() and EndUndo(). If multiple is true then all the AddUndo() steps will be undone. Otherwise only the last AddUndo() step will be undone. In addition if multiple is set then EndUndo() will be invoked internally so if further undos are to be created after this point StartUndo() must be called afterwards. If EndUndo() has been called then all steps are always undone regardless of this setting. |
Bool DoRedo | ( | ) |
void FlushUndoBuffer | ( | Bool | lastEntryOnly = false | ) |
Flushes the complete undo + redo buffer.
[in] | lastEntryOnly | If true only the last or currently ongoing undo is removed, e.g. when an operation failed. Otherwises flushes the complete undo and redo buffer. |
BaseList2D* GetUndoPtr | ( | ) |
Gets the element (object, tag, material, etc.) of the last undo action.
E.g. if you have added a BaseObject undo you can retrieve the object by calling GetUndoPtr() but always be sure to check the type of the result first.
BaseList2D* FindUndoPtr | ( | BaseList2D * | bl, |
UNDOTYPE | type | ||
) |
Finds the last undo state of the Cinema 4D element bl (object, tag, material, etc.) for the specified undo type.
For instance here is how to retrieve the pre-undo object after a change has been made:
[in] | bl | The element to obtain the last undo action. |
[in] | type | The undo type to check: UNDOTYPE |
void AutoKey | ( | BaseList2D * | undo, |
BaseList2D * | op, | ||
Bool | recursive, | ||
Bool | pos, | ||
Bool | scale, | ||
Bool | rot, | ||
Bool | param, | ||
Bool | pla | ||
) |
Compares the object chain op to object chain undo and sets keyframes for all the changes.
[in] | undo | The object chain to compare to. The caller owns the pointed object chain. |
[in,out] | op | The object chain to add the keys to. The caller owns the pointed object chain. |
[in] | recursive | If true then the function applies to all children of op as well. The hierarchy of op and undo must match. |
[in] | pos | If true keyframes are added for differences in position. |
[in] | scale | If true keyframes are added for differences in scale. |
[in] | rot | If true keyframes are added for differences in rotation. |
[in] | param | If true keyframes are added for differences in parameters. |
[in] | pla | If true keyframes are added as PLA for differences in point positions. |
Bool RecordKey | ( | BaseList2D * | op, |
const BaseTime & | time, | ||
const DescID & | id, | ||
BaseList2D * | undo, | ||
Bool | eval_attribmanager, | ||
Bool | autokeying, | ||
Bool | allow_linking | ||
) |
Records a key for op at time.
[in,out] | op | The object to record. |
[in] | time | The time to record. |
[in] | id | The description ID to record. |
[in] | undo | The object in op in the old state. This is necessary e.g. for auto-keyframing so that Cinema 4D can compare values. Usually this is the object from the undo buffer. To record keys without auto-keyframing then nullptr can be passed. |
[in] | eval_attribmanager | If true Attribute Manager is evaluated. |
[in] | autokeying | If true auto-keyframing is used and undo needs to be passed for comparison. |
[in] | allow_linking | If true and a Y key will be generated in auto-keyframing, then automatically the X and Z components will be completed. If false then only the Y key will be generated. |
void Record | ( | ) |
Records the active objects.
BaseDraw* GetActiveBaseDraw | ( | ) | const |
Gets the activate BaseDraw in the editor.
BaseDraw* GetRenderBaseDraw | ( | ) | const |
Gets the BaseDraw from one of the editor views.
[in] | num | If there are multiple views this selects the view. 0 <= num < GetBaseDrawCount() |
Int32 GetBaseDrawCount | ( | ) | const |
Gets the number of views in the editor.
void ForceCreateBaseDraw | ( | ) |
Call this method to Make sure that GetBaseDraw(0) is accessible. This is only important in import filters where, at the time, there are no valid drawing views.
Int32 GetDrawTime | ( | ) |
Gets the editor redraw time.
void GetDefaultClippingPlanes | ( | Float & | nearPlane, |
Float & | farPlane, | ||
const GeData * | preset = nullptr |
||
) | const |
Gets the default clipping planes for the document.
[out] | nearPlane | Near plane. |
[out] | farPlane | Far plane. |
[in] | preset | If this is not nullptr, it must be an Int32 value which is any of the DOCUMENT_CLIPPING_PRESET_* constants. |
const PickSessionDataStruct* GetPickSession | ( | ) | const |
Gets the data structure of the current pick session.
void StartPickSession | ( | PickSessionDataStruct * | psd | ) |
Starts a pick session.
[in] | psd | The initialized data structure for the pick session. The caller owns the pointed pick session data. |
void StopPickSession | ( | Bool | cancel | ) |
Ends the pick session. For instance after filling the pick session array.
[in] | cancel | Pass true to cancel a pick session, for instance if an error occurred. Pass false if the pick session is ended regularly. |
void AnimateObject | ( | BaseList2D * | op, |
const BaseTime & | time, | ||
ANIMATEFLAGS | flags | ||
) |
Animates the object op in the document at the given time.
[in] | op | The object to animate. The caller owns the pointed object. |
[in] | time | The time at which op is animated. |
[in] | flags | The animate flags: ANIMATEFLAGS |
Bool ExecutePasses | ( | BaseThread * | bt, |
Bool | animation, | ||
Bool | expressions, | ||
Bool | caches, | ||
BUILDFLAGS | flags | ||
) |
Animates the current frame of the document. Send an update message using EventAdd() to update the editor afterwards.
[in] | bt | The thread can either be nullptr (for the main Cinema 4D thread) or if you are within your own thread then you pass it. The caller owns the pointed thread. |
[in] | animation | If true animations are evaluated. |
[in] | expressions | If true expressions are evaluated. |
[in] | caches | If true caches are evaluated. |
[in] | flags | The build flags: BUILDFLAGS |
BaseDocument* Polygonize | ( | Bool | keepanimation = false | ) |
Makes a clone of the document and turns all objects into polygon based objects.
[in] | keepanimation | If true the animation is kept on the objects. |
Collects all enabled soundtracks and calculates the downmix of the tracks. The result is stored in snd.
[out] | snd | The downmix of the collected soundtracks. The caller owns the pointed sound. |
[in] | from | The starting time of for the downmix. |
[in] | to | The ending time for the downmix. |
BaseSceneHook* FindSceneHook | ( | Int32 | id | ) | const |
Finds a scene hook by ID.
[in] | id | The scene hook ID. |
Int32 GetSplinePlane | ( | ) |
Gets the plane in which the splines are created, such as XY plane.
GeListHead* GetLayerObjectRoot | ( | ) |
Gets the list of layers in the document.
BaseContainer GetAllTextures | ( | const AtomArray * | ar | ) |
Gets all used textures for the objects in ar.
[in] | ar | An atom array. If nullptr, all used textures in the document will be returned. |
BaseContainer GetAllTextures | ( | Bool | isNet, |
const AtomArray * | ar | ||
) |
Gets all used textures for the objects in ar.
[in] | isNet | Pass true to retrieve the textures used in the current NET rendering. |
[in] | ar | An atom array to get the textures for. If nullptr, all used textures in the document will be returned. |
BaseObject* GetHighest | ( | Int32 | type, |
Bool | editor | ||
) |
Gets the first object in the Object Manager hierarchy of the specified type. It searches objects that are not deactivated in the Object Manager (set to red).
[in] | type | The object type to search for. |
[in] | editor | true will search using the editor dot in the Object Manager, false will use the render dot. |
BaseBitmap* GetDocPreviewBitmap | ( | ) |
Gets the preview bitmap of the document.
void GetHighlightedObjects | ( | AtomArray & | selection | ) | const |
Private.
void SetHighlightedObject | ( | BaseObject * | op, |
Int32 | mode = 0 |
||
) |
Private.
Gets the document's default keying settings.
[in] | pKey | Assigned the default keying settings. Cinema 4D owns the pointed key. |
[in] | bOverdub | Assigned the document's default overdub. |
Sets the document's default keying settings.
[in] | pKey | The new default keying settings. Cinema 4D owns the pointed key. |
[in] | bOverdub | The 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). |
void SetTrackDefaultInterpolationMode | ( | CURVEINTERPOLATION_MODE | mode | ) |
Sets the track default interpolation mode.
[in] | mode | Interpolation mode. |
CURVEINTERPOLATION_MODE GetTrackDefaultInterpolationMode | ( | ) | const |
Gets the track default interpolation mode.
Bool IsAxisEnabled | ( | ) | const |
Checks the state of the object axis modifier.
BaseObject* GetHelperAxis | ( | ) |
Gets the helper axis for the current multi-selection.
Bool HandleSelectedTextureFilename | ( | BaseChannel * | bc, |
const Filename & | fn, | ||
Filename * | resfilename, | ||
Bool | undo, | ||
GEMB_R * | already_answered | ||
) |
Private.
Bool ReceiveMaterials | ( | BaseObject * | op, |
AtomArray * | mat, | ||
Bool | clearfirst | ||
) |
Private.
Bool ReceiveNewTexture | ( | BaseObject * | op, |
const Filename & | filename, | ||
Bool | sdown, | ||
GEMB_R * | already_answered | ||
) |
Private.
void SendInfo | ( | Int32 | type, |
Int32 | format, | ||
const Filename & | fn, | ||
BaseList2D * | bl, | ||
Bool | hooks_only | ||
) |
Sends MSG_DOCUMENTINFO messages.
[in] | type | The document info message type: MSG_DOCUMENTINFO_TYPE |
[in] | format | The file format: (Set for load, merge and before/after save only. Otherwise NOTOK.) FORMAT_FILES |
[in] | fn | The document filename. |
[in] | bl | The object/tag/material that got inserted. It is used if type is of one of the following values: |
[in] | hooks_only | If true the message is sent to scene hooks only. |
void RecordZero | ( | ) |
Private.
void RecordNoEvent | ( | ) |
markPrivate
void SetRewind | ( | Int32 | flags = 0 | ) |
In NodeData::SetDParameter() some operators, objects etc. can call doc->SetRewind() so that Cinema 4D rewinds the whole document (from time 0 to current time) when the next event EVMSG_CHANGE or DrawViews() is processed.
[in] | flags | Not used. |
TakeData* GetTakeData | ( | ) | const |
Gets the take data for the document.
BaseObject* GetTargetObject | ( | ) | const |
Gets target object within a multi-selection.
void SetTargetObject | ( | BaseObject * | op | ) |
Sets target object within a multi-selection.
[in] | op | The object to set as the target. |
maxon::Result<const maxon::UpdatableAssetRepositoryRef&> GetSceneRepository | ( | Bool | create | ) |
Returns the SceneRepository description.
[in] | create | True to create if not existing. |
void SetTemporaryManipulatorObject | ( | BaseObject * | temp | ) |
@markprivate @Since R20.000
BaseObject* GetTemporaryManipulatorObject | ( | ) | const |
@markprivate
maxon::DocumentModeControllerRef& GetModeController | ( | ) |
@markprivate
Gets the path of the OCIO coniguration file.
[in] | fullPath | True, if the full path should be returned. |
const maxon::OcioConfig& GetOcioConfig | ( | ) | const |
Gets the OCIO configuration.
void GetOcioProfiles | ( | maxon::ColorProfile & | renderingColorSpace, |
maxon::ColorProfile & | displayColorSpace, | ||
maxon::ColorProfile & | viewTransform, | ||
maxon::ColorProfile & | viewTransformThumbnails | ||
) | const |
Gets the OCIO color profiles.
[out] | renderingColorSpace | Rendering color space. |
[out] | displayColorSpace | Display color space. |
[out] | viewTransform | View transform for rendering. |
[out] | viewTransformThumbnails | View transform for thumbnails. |
void GetOcioConfigAndProfiles | ( | maxon::OcioConfig & | ocioConfig, |
maxon::ColorProfile & | renderingColorSpace, | ||
maxon::ColorProfile & | displayColorSpace, | ||
maxon::ColorProfile & | viewTransform, | ||
maxon::ColorProfile & | viewTransformThumbnails | ||
) | const |
Gets the OCIO configuration and the according color profiles.
[out] | ocioConfig | OCIO config. |
[out] | renderingColorSpace | Rendering color space. |
[out] | displayColorSpace | Display color space. |
[out] | viewTransform | View transform for rendering. |
[out] | viewTransformThumbnails | View transform for thumbnails. |
void GetActiveOcioColorSpacesNames | ( | maxon::CString & | renderingColorSpace, |
maxon::CString & | displayColorSpace, | ||
maxon::CString & | viewTransform, | ||
maxon::CString & | viewTransformThumbnails | ||
) | const |
Gets the name of the OCIO color spaces.
[out] | renderingColorSpace | Rendering color space name. |
[out] | displayColorSpace | Display color space name. |
[out] | viewTransform | View transform for rendering name. |
[out] | viewTransformThumbnails | View transform for thumbnails name. |
const maxon::BaseArray<maxon::CString>& GetOcioColorSpaceNames | ( | ) |
const maxon::BaseArray<maxon::CString>& GetOcioRenderingColorSpaceNames | ( | ) |
const BaseContainer& GetOcioColorSpacesPopupMenu | ( | ) | const |
const maxon::BaseArray<maxon::CString>& GetOcioViewTransformNames | ( | ) |
const maxon::BaseArray<maxon::CString>& GetOcioDisplayColorSpaceNames | ( | ) |
maxon::CString GetNameFromColorSpaceId | ( | Int32 | category, |
Int32 | index | ||
) | const |
[in] | category | Category. |
[in] | index | Index within the list that is specified by category. |
Int32 GetColorSpaceIdFromName | ( | Int32 | category, |
const maxon::CString & | name | ||
) | const |
[in] | category | Category. |
[in] | name | Name of a color space within the list that is specified by category. |
|
static |
Copies the settings for linear workflow and OCIO configurations to another document.
[in] | src | Document from where the settings are read. If this is nullptr, the settings are taken from the active document. |
[in] | dst | Document in which the settings should be copied. |
[in] | isMaterialPreview | Must be set to true, if the document is a preview render document. |
void UpdateOcioColorSpaces | ( | ) |
Updates the OCIO spaces that are stored internally in the document. Should be called after CopyLinearWorkflow.
const OcioConverterRef& GetColorConverter | ( | ) | const |
Returns a converter to convert colors along the OCIO conversion paths defined by the settings of this document.
The returned value is never nullptr. If OCIO is not active or if there was an error to create the OCIO converter a dummy is returned.
|
static |
Returns a fallback converter that can be used instead of a document specific OCIO converter in case of errors.
|
static |
Returns a converter to convert colors along the OCIO conversion paths defined by the currently active document.
maxon::Result<void> PrivateSetBaseRepository | ( | const maxon::UpdatableAssetRepositoryRef & | baseRepo | ) |
PrivateSetBaseRepository is a private functions to add a base asset repository base to the current document document. This can be used for preview renderings to connect the textures/nodes from the local scene repository.
[in] | baseRepo | repository to set as base in the current scene repository. |
Int GetCacheRunId | ( | ) | const |
Returns the current build run id (for cache building). This id increases for every cache build run of the document. This value is used in maxon::MemoizationCacheInterface.
Bool HasUncachedDynamics | ( | ) | const |
Checks if the scene contains uncached dynamics. Even the scene contains i.e. cloth, rope or dynamics objects/tags this function still return false when all objects are cached.