Open Search
    c4d_accessedobjects.h File Reference

    Classes

    class  AccessedObjectsCallback
     

    Enumerations

    enum class  ACCESSED_OBJECTS_MASK {
      NONE ,
      MATRIX ,
      DATA ,
      BITS ,
      NBITS ,
      FALLOFF ,
      MEMBER ,
      DEFORM_MODE ,
      CACHE_FLAG ,
      CACHE ,
      VARIABLE_TAG ,
      NON_VARIABLE_TAG ,
      ANY_TAG ,
      DESCRIPTION ,
      ALL ,
      GLOBAL_MATRIX_FLAG ,
      CHILD_CACHE ,
      GLOBAL_MATRIX
    }
     
    enum class  METHOD_ID : Int32 {
      MIN_EXECUTION_ID ,
      NONE ,
      GET_VIRTUAL_OBJECTS ,
      MODIFY_OBJECT ,
      GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT ,
      GV_CALCULATE ,
      SAMPLE ,
      CHECK_DIRTY ,
      EFFECTOR
    }
     

    Functions

    enum ACCESSED_OBJECTS_MASK MAXON_ENUM_FLAGS (ACCESSED_OBJECTS_MASK)
     
    enum METHOD_ID Int32 MAXON_ENUM_ORDERED_LIST (METHOD_ID)
     

    Variables

     NONE
     
     MATRIX
     
     DATA
     
     BITS
     
     NBITS
     
     FALLOFF
     
     MEMBER
     
     DEFORM_MODE
     
     CACHE_FLAG
     
     CACHE
     
     VARIABLE_TAG
     
     NON_VARIABLE_TAG
     
     ANY_TAG
     
     DESCRIPTION
     
     ALL
     
     GLOBAL_MATRIX_FLAG
     
     CHILD_CACHE
     
     GLOBAL_MATRIX
     
     MIN_EXECUTION_ID
     
     GET_VIRTUAL_OBJECTS
     
     MODIFY_OBJECT
     
     GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT
     
     GV_CALCULATE
     
     SAMPLE
     
     CHECK_DIRTY
     
     EFFECTOR
     
    enum BUILDFLAGS UInt16 class AccessedObjectsCallback MAXON_ENUM_ORDERED_LIST
     

    Enumeration Type Documentation

    ◆ ACCESSED_OBJECTS_MASK

    enum ACCESSED_OBJECTS_MASK
    strong
    Enumerator
    NONE 
    MATRIX 

    The matrix will be accessed (including e.g. frozen matrix). This doesn't include the global matrix.

    DATA 

    Data accessible via Get/SetParameter (including data stored in the BaseContainer) will be accessed.

    BITS 

    The Bits (BaseList2D::GetBit) of the object will be accessed.

    NBITS 

    The NBits (GeListNode::GetNBit) of the object will be accessed.

    FALLOFF 

    The falloff member will be accessed.

    MEMBER 

    Some other member (neither matrix, data container/parameter, bits, nor falloff) of the object will be accessed.

    DEFORM_MODE 

    The deform mode of a generator/deformer will be accessed.

    CACHE_FLAG 

    The cache of the object will be accessed. This includes cache-related data such as the dependence list, cache proxy tags, or the IsDirty/ClearDirty/Touch-controlled dirty information. During generator execution this has a hierarchical meaning, so when a generator tells that it may read from an object's cache, it is allowed to read nested caches as well. Don't use this flag directly, use CACHE instead.

    CACHE 

    The cache of the object will be accessed. Combination of CACHE_FLAG and BITS as CACHE_FLAG implies BITS.

    VARIABLE_TAG 

    A VariableTag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT.

    NON_VARIABLE_TAG 

    A non-VariableTag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT.

    ANY_TAG 

    A tag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT. Combination of VARIABLE_TAG and NON_VARIABLE_TAG.

    DESCRIPTION 

    The dirty information DIRTYFLAGS::DESCRIPTION will be accessed.

    ALL 

    All flags combined (except GLOBAL_MATRIX and CHILD_CACHE).

    GLOBAL_MATRIX_FLAG 

    The global matrix will be accessed. This flag may only be used for read access. Don't use this flag directly, use GLOBAL_MATRIX instead.

    CHILD_CACHE 

    Only a child cache of the cache will be affected. Don't use this flag directly, it will be set internally together with CACHE_FLAG to take into account that whenever a cache is modified and it is part of a parent cache, the parent cache is affected as well.

    GLOBAL_MATRIX 

    The global matrix will be accessed. Combination of GLOBAL_MATRIX_FLAG and MATRIX as GLOBAL_MATRIX_FLAG implies MATRIX.

    ◆ METHOD_ID

    enum METHOD_ID : Int32
    strong

    METHOD_ID is used for BaseList2D::GetAccessedObjects to tell for which method accessed objects shall be obtained. Non-negative values represent calls to the generic BaseTag/BaseObject::Execute method with the METHOD_ID as execution priority. Negative values represent calls to specific methods such as GetVirtualObjects.

    Enumerator
    MIN_EXECUTION_ID 

    Minimum value which encodes a call to BaseTag/BaseObject::Execute with the METHOD_ID as execution priority.

    NONE 

    No method call.

    GET_VIRTUAL_OBJECTS 

    BaseObject::GetVirtualObjects method of generators. For spline generators this includes the methods GetContour and CheckDirty.

    MODIFY_OBJECT 

    BaseObject::ModifyObject method of deformers and tags, also used for matrix modifier tags and variable tags with fields.

    GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT 

    BaseObject::GetVirtualObjects and/or BaseObject::ModifyObject. This this special method id can be used for BaseList2D::GetAccessedObjectsRec and its related functions GetAccessedObjectsOfHierarchy, GetAccessedObjectsOfChildren, GetAccessedObjectsOfFirstChildHierarchy. It will call GetAccessedObjects on generators and modifiers and makes sure that this includes all modifiers which effect a generator. E.g., if you call GetAccessedObjectsRec on a generator, GetAccessedObjects will be called not only on the generator but also on its modifier children, modifier tags, matrix modifier tags, and variable tags with fields.

    This method id must NOT be used for direct calls to GetAccessedObjects.

    You don't have to check for GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT in implementations of GetAccessedObjects, the replacement by GET_VIRTUAL_OBJECTS or MODIFY_OBJECT is done internally before GetAccessedObjects implementations are called.

    GV_CALCULATE 
    SAMPLE 

    Sampling methods of falloffs and fields, including InitFalloff.

    CHECK_DIRTY 

    CheckDirty method of falloffs and fields.

    EFFECTOR 

    Effector methods.

    Function Documentation

    ◆ MAXON_ENUM_FLAGS()

    enum ACCESSED_OBJECTS_MASK MAXON_ENUM_FLAGS ( ACCESSED_OBJECTS_MASK  )

    ◆ MAXON_ENUM_ORDERED_LIST()

    enum METHOD_ID Int32 MAXON_ENUM_ORDERED_LIST ( METHOD_ID  )

    Variable Documentation

    ◆ NONE

    NONE

    No method call.

    ◆ MATRIX

    MATRIX

    The matrix will be accessed (including e.g. frozen matrix). This doesn't include the global matrix.

    ◆ DATA

    DATA

    Data accessible via Get/SetParameter (including data stored in the BaseContainer) will be accessed.

    ◆ BITS

    BITS

    The Bits (BaseList2D::GetBit) of the object will be accessed.

    ◆ NBITS

    NBITS

    The NBits (GeListNode::GetNBit) of the object will be accessed.

    ◆ FALLOFF

    FALLOFF

    The falloff member will be accessed.

    ◆ MEMBER

    MEMBER

    Some other member (neither matrix, data container/parameter, bits, nor falloff) of the object will be accessed.

    ◆ DEFORM_MODE

    DEFORM_MODE

    The deform mode of a generator/deformer will be accessed.

    ◆ CACHE_FLAG

    CACHE_FLAG

    The cache of the object will be accessed. This includes cache-related data such as the dependence list, cache proxy tags, or the IsDirty/ClearDirty/Touch-controlled dirty information. During generator execution this has a hierarchical meaning, so when a generator tells that it may read from an object's cache, it is allowed to read nested caches as well. Don't use this flag directly, use CACHE instead.

    ◆ CACHE

    CACHE

    The cache of the object will be accessed. Combination of CACHE_FLAG and BITS as CACHE_FLAG implies BITS.

    ◆ VARIABLE_TAG

    VARIABLE_TAG

    A VariableTag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT.

    ◆ NON_VARIABLE_TAG

    NON_VARIABLE_TAG

    A non-VariableTag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT.

    ◆ ANY_TAG

    ANY_TAG

    A tag of the object will be accessed. May only be used for METHOD_ID::GET_VIRTUAL_OBJECTS or METHOD_ID::MODIFY_OBJECT. Combination of VARIABLE_TAG and NON_VARIABLE_TAG.

    ◆ DESCRIPTION

    DESCRIPTION

    The dirty information DIRTYFLAGS::DESCRIPTION will be accessed.

    ◆ ALL

    ALL

    All flags combined (except GLOBAL_MATRIX and CHILD_CACHE).

    ◆ GLOBAL_MATRIX_FLAG

    GLOBAL_MATRIX_FLAG

    The global matrix will be accessed. This flag may only be used for read access. Don't use this flag directly, use GLOBAL_MATRIX instead.

    ◆ CHILD_CACHE

    CHILD_CACHE

    Only a child cache of the cache will be affected. Don't use this flag directly, it will be set internally together with CACHE_FLAG to take into account that whenever a cache is modified and it is part of a parent cache, the parent cache is affected as well.

    ◆ GLOBAL_MATRIX

    GLOBAL_MATRIX

    The global matrix will be accessed. Combination of GLOBAL_MATRIX_FLAG and MATRIX as GLOBAL_MATRIX_FLAG implies MATRIX.

    ◆ MIN_EXECUTION_ID

    MIN_EXECUTION_ID

    Minimum value which encodes a call to BaseTag/BaseObject::Execute with the METHOD_ID as execution priority.

    ◆ GET_VIRTUAL_OBJECTS

    GET_VIRTUAL_OBJECTS

    BaseObject::GetVirtualObjects method of generators. For spline generators this includes the methods GetContour and CheckDirty.

    ◆ MODIFY_OBJECT

    MODIFY_OBJECT

    BaseObject::ModifyObject method of deformers and tags, also used for matrix modifier tags and variable tags with fields.

    ◆ GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT

    GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT

    BaseObject::GetVirtualObjects and/or BaseObject::ModifyObject. This this special method id can be used for BaseList2D::GetAccessedObjectsRec and its related functions GetAccessedObjectsOfHierarchy, GetAccessedObjectsOfChildren, GetAccessedObjectsOfFirstChildHierarchy. It will call GetAccessedObjects on generators and modifiers and makes sure that this includes all modifiers which effect a generator. E.g., if you call GetAccessedObjectsRec on a generator, GetAccessedObjects will be called not only on the generator but also on its modifier children, modifier tags, matrix modifier tags, and variable tags with fields.

    This method id must NOT be used for direct calls to GetAccessedObjects.

    You don't have to check for GET_VIRTUAL_OBJECTS_AND_MODIFY_OBJECT in implementations of GetAccessedObjects, the replacement by GET_VIRTUAL_OBJECTS or MODIFY_OBJECT is done internally before GetAccessedObjects implementations are called.

    ◆ GV_CALCULATE

    GV_CALCULATE

    ◆ SAMPLE

    SAMPLE

    Sampling methods of falloffs and fields, including InitFalloff.

    ◆ CHECK_DIRTY

    CHECK_DIRTY

    CheckDirty method of falloffs and fields.

    ◆ EFFECTOR

    EFFECTOR

    Effector methods.

    ◆ MAXON_ENUM_ORDERED_LIST

    enum BUILDFLAGS UInt16 class AccessedObjectsCallback MAXON_ENUM_ORDERED_LIST