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

ACCESSED_OBJECTS_MASK is used for AccessedObjectsCallback to tell which data of an object is accessed.

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 and the DIRTYFLAGS::DATA bit) 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 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, fields and deformers. The CheckDirty method of spline generators is subsumed in GET_VIRTUAL_OBJECTS.

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 and the DIRTYFLAGS::DATA bit) 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 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, fields and deformers. The CheckDirty method of spline generators is subsumed in GET_VIRTUAL_OBJECTS.

◆ EFFECTOR

EFFECTOR

Effector methods.

◆ MAXON_ENUM_ORDERED_LIST

enum BUILDFLAGS UInt16 class AccessedObjectsCallback MAXON_ENUM_ORDERED_LIST