6#if !defined(AFX_3DSCENENODE_H__5C85DAE7_BE95_4F8B_B661_B0CF9BE55255__INCLUDED_)
7#define AFX_3DSCENENODE_H__5C85DAE7_BE95_4F8B_B661_B0CF9BE55255__INCLUDED_
17BEGIN_MOOTOOLS_NAMESPACE
19#define NODE_REFERENCE_NODE MAKE_CUSTOM_ID('R', 'F', 'N', 'O')
20#define NODE_LAYER_ID MAKE_CUSTOM_ID('L', 'Y', 'E', 'R')
21#define NODE_LAYER_BBOX MAKE_CUSTOM_ID('L', 'Y', 'B', 'X')
22#define NODE_JASON_TXT MAKE_CUSTOM_ID('J', 'S', 'O', 'N')
24#define NODE_GUID_CLASS MAKE_CUSTOM_ID('N', 'O', 'D', 'E')
30 SCENE_NODE_NONE = 0x00,
31 SCENE_NODE_HIDDEN = 0x01,
32 SCENE_NODE_IS_SELECTED = 0x02,
33 SCENE_NODE_USER_DEFINED = 0x04,
37 SCENE_NODE_USER_PROPERTIES1 = 0x100000,
38 SCENE_NODE_USER_PROPERTIES2 = 0x200000,
39 SCENE_NODE_USER_PROPERTIES3 = 0x400000,
40 SCENE_NODE_USER_PROPERTIES4 = 0x800000,
47 SCENE_NODE_UPDATE_NONE = 0x0000000,
49 SCENE_NODE_INV_FLAGS = 0xFFFF,
50 SCENE_NODE_INV_ALL = SCENE_NODE_INV_FLAGS,
51 SCENE_NODE_INV_DISPLAY = 0x0001,
52 SCENE_NODE_INV_DATA = 0x000,
54 SCENE_NODE_UPDATE_ALL = 0xFFFF0000,
74 virtual bool Delete();
79 SceneNodeID32 GetNodeID32()
const;
87 return object->GetKindOf();
89 return OBJECT_UNKNOWN;
94 C3DScene* GetScene() {
return scene; }
97 bool IsGeomObject()
const;
100 const CCustomData& GetCustomData()
const {
return customData; }
103 void SetFlags(
unsigned int flags,
bool set);
104 bool IsFlagSet(
unsigned int flag)
const;
105 bool IsOneFlagSet(
unsigned int flags)
const;
114 using C3DKeyframable::GetTimeRange;
119 void GetNodeLocalTM(
int time,
C4x4Matrix& matrix)
const;
121 void GetObjectLocalTM(
int time,
C4x4Matrix& matrix)
const;
124 bool SwapPoints(
unsigned int swapMode);
125 bool SwapTransformations(
unsigned int swapMode);
126 bool ConvertToGlobalCoordinates(
int time);
127 bool ConvertToGlobalCoordinates(
const C4x4Matrix& matrix);
130 bool DeleteObjectInstanciation();
131 bool IsObjectIntanciated(
bool checkChilds =
false)
const;
147 CTreeNode *GetTreeNode() {
return this; }
150 virtual bool Dump(
unsigned int flags)
const;
165 mutable struct CacheData
167 typedef enum ValidData
XEnumType(
unsigned int)
174 unsigned int validData;
178 bool IsValid(
unsigned int time, ValidData
flag);
182 void SetInvalidateFlag(
unsigned int flag,
bool set);
183 virtual void OnParentingChanged()
const;
187 bool InternalGetCG(
int time,
C3DPoint&
CG)
const;
190 virtual CXString GetDisplayName()
const;
196END_MOOTOOLS_NAMESPACE
C3DKeyframable class for handling keyframes.
OBJECT_KINDOF
Definition 3DBaseObject.h:28
SCENE_NODE_FLAGS
Definition 3DSceneNode.h:29
SCENE_NODE_UPDATE_PROPERTIES
Definition 3DSceneNode.h:46
This is the base class for any kind of object.
Definition 3DBaseObject.h:106
This is the base class for any object containing geometry (curve, polygonal object,...
Definition 3DGeomObject.h:49
This is the base class for any object that can be animated using C3DKeyframe.
Definition 3DAnimatable.h:51
This class can be provided in C3DScene::Copy operations and allows to modify the created kind of clas...
Definition 3DScene.h:47
The class allows to get access to the scene graph, node hierarchy, material.
Definition 3DScene.h:306
A node matches one element that is part of the C3DScene graph. It references a C3DBaseObject and has ...
Definition 3DSceneNode.h:64
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27
CCustomData is a handly class for storing any kind of data.
Definition CustomData.h:106