Detailed Description

Groups

 MSG_DESCRIPTION
 
 MSG_DESCRIPTION_CHECKUPDATE_FLAGS
 
 MSG_DESCRIPTION_TEXT
 
 MSG_DOCUMENTINFO_TYPE
 
 MSG_MULTI
 
 MULTLINEEDITTEXT_UNDO_CONTAINER
 

Macros

#define MSG_POINTS_CHANGED
 
#define MSG_POLYGONS_CHANGED
 
#define MSG_UPDATE
 
#define MSG_SMALLUPDATE
 
#define MSG_CHANGE
 
#define MSG_BASECONTAINER
 
#define MSG_SEGMENTS_CHANGED
 
#define MSG_FILTER
 
#define MSG_TRANSFERGOALS
 
#define MSG_DESCRIPTION_INITUNDO
 
#define MSG_DESCRIPTION_CHECKUPDATE
 
#define MSG_DESCRIPTION_COMMAND
 
#define MSG_DESCRIPTION_POPUP
 
#define MSG_DESCRIPTION_POSTSETPARAMETER
 
#define MSG_DESCRIPTION_VALIDATE
 
#define MSG_DESCRIPTION_SWAP
 
#define MSG_EDIT
 
#define MSG_MENUPREPARE
 
#define MSG_RETRIEVEPRIVATEDATA
 
#define MSG_DESCRIPTION_ALLOWOVERRIDE
 
#define MSG_DESCRIPTION_TAKECHANGED
 
#define MSG_GETOVERRIDEASSETS
 
#define MSG_MOVE_FINISHED
 
#define MSG_MOVE_START
 
#define MSG_EDITABLE_END
 
#define MSG_GETCUSTOMICON
 
#define MSG_GETCUSTOM_NAME_ADDITION
 
#define MSG_MATERIALDRAGANDDROP
 
#define MSG_DRAGANDDROP
 
#define MSG_INITIALCHANNEL
 
#define MSG_PYTHON_RESET
 
#define MSG_CHECKINSIDEUNDO
 
#define MSG_DOCUMENTINFO
 
#define MSG_MATERIAL_OVERRIDE
 
#define MSG_REQUEST_VIEWPORT_MAPPING
 
#define MSG_UPDATE_VIEWPORT_MAPPING
 
#define MSG_GETSELECTION
 
#define MSG_REDIRECT
 
#define MSG_TOOL_TRANSFORM
 
#define MSG_GETACTIVEREDIRECT
 
#define MSG_TOOL_ASK
 
#define MSG_TAG_MODIFY
 
#define MSG_GETMODIFIERFLAGS
 
#define MSG_ADDFIELDDIRTY
 
#define MSG_CLEARVARIABLETAG
 
#define MSG_TOOL_RESIZE
 
#define MSG_CURRENTSTATE_END
 
#define MSG_ALLOWXPRESSODROP
 
#define MSG_TOOL_SWITCHACTION
 
#define MSG_COPYDIRTYPRIVATE
 
#define MSG_DESCIDSTATE_MASK
 
#define MSG_DISABLEFIELDS
 
#define MSG_TRANSLATE_POINTS
 
#define MSG_TRANSLATE_POLYGONS
 
#define MSG_TRANSLATE_NGONS
 
#define MSG_TRANSLATE_SEGMENTS
 
#define MSG_PRETRANSLATE_POINTS
 
#define MSG_PRETRANSLATE_POLYGONS
 
#define MSG_PRETRANSLATE_NGONS
 
#define MSG_PRETRANSLATE_SEGMENTS
 
#define MSG_UPDATE_NGONS
 
#define MSG_DOCUMENT_MODE_CHANGED
 
#define MSG_TOOL_RESTART
 
#define MSG_DEFORMMODECHANGED
 
#define MSG_ANIMATE
 
#define MSG_CALCMEMUSAGE
 
#define MSG_INVALIDATEHASH
 
#define MSG_SCALEDOCUMENT
 
#define MSG_GET_INHERITANCECONTAINER
 
#define MSG_SOFTTAG_UPDATE
 
#define MSG_TRANSFORM_OBJECT
 
#define MSG_STRINGUNDO
 
#define MSG_GETREALCAMERADATA
 
#define MSG_ADAPTVIEW_START
 
#define MSG_ADAPTVIEW_END
 
#define MSG_GETREALTAGDATA
 
#define MSG_DOCUMENT_CONVERT_COLORS
 
#define MSG_DISABLE_SYMMETRY_OBJECTS
 
#define MSG_ENABLE_SYMMETRY_OBJECTS
 
#define MSG_SYMMETRY_FLIP
 
#define MSG_XREFINIT
 
#define MSG_XREF_GET_FIRST_MATERIAL
 
#define MSG_INVOKE_SCRIPT_FUNCTION
 

Macro Definition Documentation

◆ MSG_POINTS_CHANGED

#define MSG_POINTS_CHANGED

The points have changed. The corresponding data is VariableChanged.

◆ MSG_POLYGONS_CHANGED

#define MSG_POLYGONS_CHANGED

The polygons have changed. The corresponding data is VariableChanged.

◆ MSG_UPDATE

#define MSG_UPDATE

Must be sent if the bounding box has to be recalculated. (Otherwise use MSG_CHANGE.)

◆ MSG_SMALLUPDATE

#define MSG_SMALLUPDATE

Part of the object has changed that needs no cache rebuilding.

Note
This message should be used very carefully, it is there for (small) performance enhancements, for example if a polygon selection is changed then the caches do not need to be rebuilt, so MSG_SMALLUPDATE can be sent.

◆ MSG_CHANGE

#define MSG_CHANGE

Must be sent if any object data (except for the matrix) has been changed.

Note
For tag parameter changes call
void SetDirty(DIRTYFLAGS flags)
Definition: c4d_baselist.h:1751
@ DATA
Container changed.
instead of
Bool Message(Int32 type, void *data=nullptr)
Definition: c4d_baselist.h:1583
#define MSG_CHANGE
Definition: c4d_baselist.h:362

◆ MSG_BASECONTAINER

#define MSG_BASECONTAINER

Message with a container, for example from a Python plugin. The corresponding data is BaseContainer.

◆ MSG_SEGMENTS_CHANGED

#define MSG_SEGMENTS_CHANGED

The segments have changed. The corresponding data is VariableChanged.

◆ MSG_FILTER

#define MSG_FILTER

Return true to let the message pass and false to block it.

A message filter that lets block C4DAtom::MultiMessage() calls. The corresponding data is MessageFilter.

◆ MSG_TRANSFERGOALS

#define MSG_TRANSFERGOALS

Internal message. Private.

◆ MSG_DESCRIPTION_INITUNDO

#define MSG_DESCRIPTION_INITUNDO

Allows elements to create undo actions for the following parameter changes in the attributes manager. This is already automatically handled for keys, tags, objects etc. The corresponding data is DescriptionInitUndo.

◆ MSG_DESCRIPTION_CHECKUPDATE

#define MSG_DESCRIPTION_CHECKUPDATE

Allows elements to determine the type of refresh after a parameter has been changed in the Active manager. This is already automatically handled for keys, tags, objects etc. The corresponding data is DescriptionCheckUpdate.

Note
Currently this message is completely handled by all base data classes.
Most plugins will not need to modify the message data. It is more interesting to start some update action - e.g. deleting data that will be rebuilt with the next access.

◆ MSG_DESCRIPTION_COMMAND

#define MSG_DESCRIPTION_COMMAND

Sent by for example BUTTON description element. The corresponding data is DescriptionCommand.

◆ MSG_DESCRIPTION_POPUP

#define MSG_DESCRIPTION_POPUP

Allows popup menu handling in the Attribute Manager. The corresponding data is DescriptionPopup.

◆ MSG_DESCRIPTION_POSTSETPARAMETER

#define MSG_DESCRIPTION_POSTSETPARAMETER

Sent after a C4DAtom::SetParameter() call. The corresponding data is DescriptionPostSetValue.

◆ MSG_DESCRIPTION_VALIDATE

#define MSG_DESCRIPTION_VALIDATE

For example the light's inner radius always must be smaller than the light's outer radius; this routine checks for it and corrects it.

Allows to update dependencies or to check for invalid values after a parameter has been changed. The corresponding data is DescriptionValidate.

◆ MSG_DESCRIPTION_SWAP

#define MSG_DESCRIPTION_SWAP

A private message sent by the X-Ref system to exchange proxies.

Since
R16.038

◆ MSG_EDIT

#define MSG_EDIT

Allows elements to do some action if the user edits the element (double-click e.g. in object manager).

◆ MSG_MENUPREPARE

#define MSG_MENUPREPARE

Allows tags, objects, shaders etc. to do some setup work when called from the menu. The corresponding data is the current BaseDocument.

◆ MSG_RETRIEVEPRIVATEDATA

#define MSG_RETRIEVEPRIVATEDATA

A generic private message to retrieve data from an object. Specific for every type of object so no public documentation available. The corresponding data is RetrievePrivateData.

◆ MSG_DESCRIPTION_ALLOWOVERRIDE

#define MSG_DESCRIPTION_ALLOWOVERRIDE

Sent before the Take override is added to allow it or not. The corresponding data is DescriptionAllowOverride.

Since
R17.032
See also
Take System Messages.

◆ MSG_DESCRIPTION_TAKECHANGED

#define MSG_DESCRIPTION_TAKECHANGED

Sent to each overridden node when the user changes the current Take. Sent to both the node storing the data in the Take and the node releasing the data to the document. The corresponding data is DescriptionTakeChanged.

Since
R17.032
See also
Take System Messages.

◆ MSG_GETOVERRIDEASSETS

#define MSG_GETOVERRIDEASSETS

Private.

◆ MSG_MOVE_FINISHED

#define MSG_MOVE_FINISHED

Sent after a handle or the object has been moved.

◆ MSG_MOVE_START

#define MSG_MOVE_START

Sent before a handle or the object has been moved.

◆ MSG_EDITABLE_END

#define MSG_EDITABLE_END

Private.

◆ MSG_GETCUSTOMICON

#define MSG_GETCUSTOMICON

Every atom can return a custom icon with this message. The corresponding data is GetCustomIconData.

◆ MSG_GETCUSTOM_NAME_ADDITION

#define MSG_GETCUSTOM_NAME_ADDITION

Sent to a BaseList2D to retrieve a custom name addition. The atoms needs to be registered with OBJECT_CUSTOM_NAME_ADDITION. The corresponding data is String.

◆ MSG_MATERIALDRAGANDDROP

#define MSG_MATERIALDRAGANDDROP

Received by a material upon dropping an instance of a material onto an object. The corresponding data is MaterialDragAndDrop.

Note
The material can choose to create a tag of its own, or trigger other actions, instead of letting Cinema 4D create a normal material assignment.
For example Sketch and Toon creates its own type of tag and returns it in MaterialDragAndDrop::result. Cinema 4D creates the undo for it and activates it. Inserting the tag is done by the material.

◆ MSG_DRAGANDDROP

#define MSG_DRAGANDDROP

Received by an element in the Object manager when something is dropped on it. The corresponding data is DragAndDrop.

◆ MSG_INITIALCHANNEL

#define MSG_INITIALCHANNEL

◆ MSG_PYTHON_RESET

#define MSG_PYTHON_RESET

If this message is sent to Python related instances (Python tag, generator, node etc.) the Python scope is freed and reallocated.

◆ MSG_CHECKINSIDEUNDO

#define MSG_CHECKINSIDEUNDO

Check if the document is currently processing an undo. This might be important to skip adding undos for certain events in case the events where triggered by DoUndo itself. The corresponding data is Bool.

Since
2024.5

◆ MSG_DOCUMENTINFO

#define MSG_DOCUMENTINFO

Sent as broadcast message by the document when it is loaded, saved , merged etc. The corresponding data is DocumentInfoData.

◆ MSG_MATERIAL_OVERRIDE

#define MSG_MATERIAL_OVERRIDE

Sent to each material before the rendering to react to a global material override. The corresponding data is OverrideMaterial.

Since
R17.032

◆ MSG_REQUEST_VIEWPORT_MAPPING

#define MSG_REQUEST_VIEWPORT_MAPPING

@markprivate

Since
R21 - sent to a BaseMaterial requesting a viewport representation.

◆ MSG_UPDATE_VIEWPORT_MAPPING

#define MSG_UPDATE_VIEWPORT_MAPPING

@markprivate

Since
R21 - sent to a BaseMaterial updating the current viewport representation.

◆ MSG_GETSELECTION

#define MSG_GETSELECTION

Private.

◆ MSG_REDIRECT

#define MSG_REDIRECT

Private.

◆ MSG_TOOL_TRANSFORM

#define MSG_TOOL_TRANSFORM

Private.

◆ MSG_GETACTIVEREDIRECT

#define MSG_GETACTIVEREDIRECT

Private.

◆ MSG_TOOL_ASK

#define MSG_TOOL_ASK

Sent to tools on mouse input to query them on whether they accept/use certain input such as modifier keys, right or middle mouse button. The corresponding data is ToolAskMsgData.

◆ MSG_TAG_MODIFY

#define MSG_TAG_MODIFY

Private.

◆ MSG_GETMODIFIERFLAGS

#define MSG_GETMODIFIERFLAGS

Private.

Since
2023.200

◆ MSG_ADDFIELDDIRTY

#define MSG_ADDFIELDDIRTY

Private.

◆ MSG_CLEARVARIABLETAG

#define MSG_CLEARVARIABLETAG

Private.

◆ MSG_TOOL_RESIZE

#define MSG_TOOL_RESIZE

Sent during MMB (MMB (Middle Mouse Button) dragging and the [ and ] shortcuts with brushes if ToolAskMsgData::resize_allowed is set to true by the developer in MSG_TOOL_ASK. The corresponding data is ToolResizeData.

◆ MSG_CURRENTSTATE_END

#define MSG_CURRENTSTATE_END

Private.

◆ MSG_ALLOWXPRESSODROP

#define MSG_ALLOWXPRESSODROP

Allow or deny drag&drop of an XPresso node. Return true to allow, false to deny.

◆ MSG_TOOL_SWITCHACTION

#define MSG_TOOL_SWITCHACTION

Sent to tools on mouse input and cursor info if they have the flag PLUGINFLAG_TOOL_SWITCHACTION set to allow to change action on modifier key.

Since
R17.032

◆ MSG_COPYDIRTYPRIVATE

#define MSG_COPYDIRTYPRIVATE

Private.

◆ MSG_DESCIDSTATE_MASK

#define MSG_DESCIDSTATE_MASK

Masks the DescIdState of every property in the object with a Int32 mask passed as corresponding data.

◆ MSG_DISABLEFIELDS

#define MSG_DISABLEFIELDS

This message is send to field driven variable tags to disable the fields when they are cloned as input for generators.

◆ MSG_TRANSLATE_POINTS

#define MSG_TRANSLATE_POINTS

Sent by the modeling core to let tags etc. update after point changes. The corresponding data is TranslationMaps.

◆ MSG_TRANSLATE_POLYGONS

#define MSG_TRANSLATE_POLYGONS

Sent by the modeling core to let tags etc. update after polygon changes. The corresponding data is TranslationMaps.

◆ MSG_TRANSLATE_NGONS

#define MSG_TRANSLATE_NGONS

Sent by the modeling core to let tags etc. update after N-gon changes. The corresponding data is TranslationMaps.

◆ MSG_TRANSLATE_SEGMENTS

#define MSG_TRANSLATE_SEGMENTS

Sent by the modeling core to let tags etc. update after segment changes. The corresponding data is TranslationMaps.

◆ MSG_PRETRANSLATE_POINTS

#define MSG_PRETRANSLATE_POINTS

Sent before MSG_TRANSLATE_POINTS, before the changes are actually carried out. The corresponding data is TranslationMaps.

◆ MSG_PRETRANSLATE_POLYGONS

#define MSG_PRETRANSLATE_POLYGONS

Sent before MSG_TRANSLATE_POLYGONS, before the changes are actually carried out. The corresponding data is TranslationMaps.

◆ MSG_PRETRANSLATE_NGONS

#define MSG_PRETRANSLATE_NGONS

Sent before MSG_TRANSLATE_NGONS, before the changes are actually carried out. The corresponding data is TranslationMaps.

◆ MSG_PRETRANSLATE_SEGMENTS

#define MSG_PRETRANSLATE_SEGMENTS

Sent before MSG_TRANSLATE_SEGMENTS, before the changes are actually carried out. The corresponding data is TranslationMaps.

◆ MSG_UPDATE_NGONS

#define MSG_UPDATE_NGONS

Should be sent if points are changed and any N-gons need updating. Cinema 4D will then update the N-gons, if the user has this option enabled.

◆ MSG_DOCUMENT_MODE_CHANGED

#define MSG_DOCUMENT_MODE_CHANGED

Sent to the active tool plugin during BaseDocument::SetMode().

◆ MSG_TOOL_RESTART

#define MSG_TOOL_RESTART

Private. (Handles the tool description apply behavior after mouse clicks.)

◆ MSG_DEFORMMODECHANGED

#define MSG_DEFORMMODECHANGED

Private.

◆ MSG_ANIMATE

#define MSG_ANIMATE

Sent to objects after they have been animated.

◆ MSG_CALCMEMUSAGE

#define MSG_CALCMEMUSAGE

Private.

◆ MSG_INVALIDATEHASH

#define MSG_INVALIDATEHASH

Triggers a data hash recalculation in variable tags. Can be used to refresh the hash without triggering a COW make writable. Use with caution.

◆ MSG_SCALEDOCUMENT

#define MSG_SCALEDOCUMENT

Tells the document that another document with different scale has been merged. The corresponding data is MessageScaleDocument.

◆ MSG_GET_INHERITANCECONTAINER

#define MSG_GET_INHERITANCECONTAINER

Private.

◆ MSG_SOFTTAG_UPDATE

#define MSG_SOFTTAG_UPDATE

Private.

◆ MSG_TRANSFORM_OBJECT

#define MSG_TRANSFORM_OBJECT

Private.

◆ MSG_STRINGUNDO

#define MSG_STRINGUNDO

Private.

◆ MSG_GETREALCAMERADATA

#define MSG_GETREALCAMERADATA

Sent to get a real camera object from a generator. The corresponding data is GetRealCameraData.

◆ MSG_ADAPTVIEW_START

#define MSG_ADAPTVIEW_START

Sent to the camera object when the viewport transition starts.

◆ MSG_ADAPTVIEW_END

#define MSG_ADAPTVIEW_END

Sent to the camera object when the viewport transition ends.

◆ MSG_GETREALTAGDATA

#define MSG_GETREALTAGDATA

Sent to get a real tag object from a virtual "generator" tag. The corresponding data is GetRealTagData.

Since
R18

◆ MSG_DOCUMENT_CONVERT_COLORS

#define MSG_DOCUMENT_CONVERT_COLORS

Sent when converting the document colors from sRGB to rendering space.

◆ MSG_DISABLE_SYMMETRY_OBJECTS

#define MSG_DISABLE_SYMMETRY_OBJECTS

Private.

◆ MSG_ENABLE_SYMMETRY_OBJECTS

#define MSG_ENABLE_SYMMETRY_OBJECTS

Private.

◆ MSG_SYMMETRY_FLIP

#define MSG_SYMMETRY_FLIP

Private.

Since
R18

◆ MSG_XREFINIT

#define MSG_XREFINIT

Sent to each node if any special operation has to be done on ref. The corresponding data is XrefInitData.

◆ MSG_XREF_GET_FIRST_MATERIAL

#define MSG_XREF_GET_FIRST_MATERIAL

Sent to an X-Ref object to get its first material. The corresponding data is BaseMaterial*..

◆ MSG_INVOKE_SCRIPT_FUNCTION

#define MSG_INVOKE_SCRIPT_FUNCTION

Sent to invoke a function within a script on the target object. The corresponding data is InvokeScriptData.