![]() |
Polygon Crucher SDK - Documentation
Documentation
|
C3DBaseObject class which is the common base class for all object types. More...
C3DBaseObject class which is the common base class for all object types.
Go to the source code of this file.
Classes | |
class | C3DBaseObject |
This is the base class for any kind of object. More... | |
Macros | |
#define | OBJECT_REFERENCE_OBJECT MAKE_CUSTOM_ID('R', 'F', 'O', 'B') |
#define | OBJECT_GUID_CLASS MAKE_CUSTOM_ID('O', 'B', 'J', 'C') |
Typedefs | |
typedef enum OBJECT_KINDOF | OBJECT_KINDOF |
typedef enum _OBJECT_PROPERTIES | OBJECT_PROPERTIES |
typedef enum OBJECT_UPDATE_PROPERTIES | OBJECT_UPDATE_PROPERTIES |
typedef enum OBJECT_COPY_FLAGS | OBJECT_COPY_FLAGS |
Enumerations | |
enum | OBJECT_KINDOF { OBJECT_UNKNOWN = 0 , OBJECT_MESH = 0x01 , OBJECT_CURVE = 0x02 , OBJECT_PATCH = 0x04 , OBJECT_GROUP = 0x08 , OBJECT_DUMMY = 0x10 , OBJECT_CAMERA = 0x20 , OBJECT_LIGHT = 0x40 , OBJECT_PRIVATE_TYPE = 0xFF000000 , OBJECT_POI_CAMERA = 0x01000000 , OBJECT_GEOM_WITH_FACES = OBJECT_MESH | OBJECT_PATCH , OBJECT_GEOM = OBJECT_GEOM_WITH_FACES | OBJECT_CURVE , OBJECT_ALL_KINDOF = (unsigned int)-1 } |
enum | _OBJECT_PROPERTIES { OBJECT_NONE = 0x00 , OBJECT_IS_INVALID = 0x10 , OBJECT_RENDER_WIREFRAME = 0x20 , OBJECT_USER_PROPERTIES1 = 0x01000000 , OBJECT_USER_PROPERTIES2 = 0x02000000 , OBJECT_USER_PROPERTIES3 = 0x04000000 , OBJECT_USER_PROPERTIES4 = 0x08000000 } |
enum | OBJECT_UPDATE_PROPERTIES { OBJECT_INV_FLAGS = 0xFFFF , OBJECT_INV_ALL = OBJECT_INV_FLAGS , OBJECT_INV_GEOM = 0x0001 , OBJECT_INV_TOPO = 0x0002 , OBJECT_INV_FACE_FLAG = 0x0004 , OBJECT_INV_MATERIALS = 0x0008 , OBJECT_INV_CHANNELS = 0x0010 , OBJECT_INV_MATERIAL_ATTR = 0x0020 , OBJECT_INV_DATA = 0x0040 , OBJECT_INV_DISPLAY = 0x0800 , OBJECT_UPDATE_NONE = 0x00000000 , OBJECT_UPDATE_ALL = 0x0FFF0000 , OBJECT_UPDATE_FIRST_VALUE = 0x00010000 , OBJECT_UPDATE_BBOX = 0x00010000 , OBJECT_UPDATE_GEOM = 0x00020000 , OBJECT_UPDATE_CHANNELS = 0x00040000 } |
enum | OBJECT_COPY_FLAGS { OBJECT_COPY_DEFAULT = 0x00 , OBJECT_COPY_CREATE_INSTANCE = 0x10 , OBJECT_PREVENT_OBJECT_COPY = 0x100 , OBJECT_COPY_ALL_CHANNELS = 0x200 } |
Flags used to control the way objects are copied
The kind of object. An object has only one kind.
It is possible to test if an object belong to a given kind using OR operator. Ie. if (kindOf & (OBJECT_MESH|OBJECT_CURVE))
Enumerator | |
---|---|
OBJECT_MESH | |
OBJECT_CURVE | |
OBJECT_PATCH | |
OBJECT_GROUP | |
OBJECT_DUMMY | |
OBJECT_CAMERA | |
OBJECT_LIGHT | |
OBJECT_GEOM_WITH_FACES | These flags can be used in C3DScene::GetFirstNode/GetNextNode or to perform a bitwise operation on C3DBaseObject::GetKindOf. |
OBJECT_ALL_KINDOF | This also include private type for copy and other specific operations. |
Flags used by C3DBaseObject::Invalidate / C3DBaseObject::Update. Depending on the SCENE_NODE_INV flags in a C3DBaseObject::Invalidate call, the method set required OBJECT_UPDATE flags that will be processed when calling C3DBaseObject::Update.
For example OBJECT_INV_TOPO will flag OBJECT_UPDATE_GEOM. For a C3DPatch object, this will make the subdivided object to be invalidate and recomputed on the Update call.
Enumerator | |
---|---|
OBJECT_INV_GEOM | Points position or number changed. |
OBJECT_INV_TOPO | Faces indexes size, indexes changes. |
OBJECT_INV_FACE_FLAG | Face properties changed (ie HIDDEN flag of face changed) |
OBJECT_INV_MATERIALS | Face materials changes. |
OBJECT_INV_CHANNELS | Channel changed, autogenerated channels need to be recomputed... |
OBJECT_INV_MATERIAL_ATTR | A material related to object changed. |
OBJECT_INV_DATA | Custom data associated to object changed. |
OBJECT_INV_DISPLAY | The object drawing should be updated. |
OBJECT_UPDATE_FIRST_VALUE | For intenal offset. |
OBJECT_UPDATE_BBOX | Bounding box will be recomputed next time we ask for the BBox. |
OBJECT_UPDATE_GEOM | Geometry need to be recomputed or updated. This should be done in the C3DBaseObject::Update. |
OBJECT_UPDATE_CHANNELS | Update autogenerated channels (normals or projected UV for example) |