Open Search

    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_MATERIALDRAGANDDROP
     
    #define MSG_DRAGANDDROP
     
    #define MSG_INITIALCHANNEL
     
    #define MSG_PYTHON_RESET
     
    #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_ADDFIELDDIRTY
     
    #define MSG_CLEARVARIABLETAG
     
    #define MSG_TOOL_RESIZE
     
    #define MSG_CURRENTSTATE_END
     
    #define MSG_ALLOWXPRESSODROP
     
    #define MSG_TOOL_SWITCHACTION
     
    #define MSG_COPYDIRTYPRIVATE
     
    #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_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:1595
    @ DATA
    Container changed.
    instead of
    Bool Message(Int32 type, void *data=nullptr)
    Definition: c4d_baselist.h:1439
    #define MSG_CHANGE
    Definition: c4d_baselist.h:344

    ◆ 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_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_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_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_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_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.