25 class SP_SceneInterface;
26 class SP_ObjectInterface;
36 #define CNBB_F_FORCE_AABBOX 0x00000001
39 #define CNBB_F_ONLY_LOCAL_TRANSFORM 0x00000002
43 #define CNBB_F_NO_SELF_TRANSFORM 0x00000004
51 #define EOIH_IF_START_BEGINNING 0x00000001
55 #define EOIH_IF_START_CURRENT 0x00000002
58 #define EOIH_IF_START_NEXT 0x00000004
119 bool initIteration();
148 bool releaseObject(
void);
172 virtual int processNotification(
BaseClass *sender,
unsigned long notificationType,
void *notificationData);
181 void prepareForTermination();
192 osg::MatrixTransform *
getRoot() {
return rootNode;}
198 unsigned long getFreeID(
unsigned long req_id);
201 int addEnvironmentObject(
EnvironmentObject *environment_object, osg::Group *parentNode);
207 bool removeEnvironmentObject(
unsigned long id );
210 EnvironmentObject * getEnvironmentObject(
unsigned long id,
bool bReportErrorIfNotFound =
true );
223 bool unregisterEnvironmentObject(
unsigned long id);
225 typedef Sgi::hash_map<unsigned long, EnvironmentObject *>
EOMap;
247 inline void setIsLoaded(
bool bNewValue) { _bIsLoaded = bNewValue; }
258 EnvironmentObject **getCollisionObjects(esg::OSGAdapter *pOSGAdapter,
const osg::Matrix &transf,
int &size);
272 EnvironmentObject *getRayIntersection(
const osg::Vec3 &
origin,
const osg::Vec3 &dir, osg::Vec3 &intersection_point);
279 bool getRayIntersection(
EnvironmentObject *eobject,
const osg::Vec3 &
origin,
const osg::Vec3 &dir, osg::Vec3 &intersection_point);
283 void getObjectExtent(
EnvironmentObject *eobject,
const osg::Vec3 &dir,
float &min,
float &max);
287 bool separation(esg::Matrix4 *trMat1, std::vector<esg::OSGAdapter *> object1, esg::Matrix4 *trMat2, std::vector<esg::OSGAdapter *> object2,
unsigned d1 = UINT_MAX,
unsigned d2 = UINT_MAX);
298 bool calcNodeBBox(osg::Node *
node, osg::BoundingBox *outBox, osg::Matrix *outTransform,
bool *bTransformUsed = NULL,
unsigned long dwFlags = 0, osg::Node *subTreeToIgnore = NULL);
314 bool addPartitioningSceneInterface(
SP_SceneInterface *newInterface,
int priority = 0);
320 bool addPartitioningObjectInterface(
SP_ObjectInterface *newInterface,
int priority = 0);
326 void logHierarchy(
const osg::Node *topNode,
const char *note = NULL);
368 bool calcNodeBBoxHelper(osg::Node *
node, osg::BoundingBox *outBox, osg::Matrix *outTransform,
bool *bTransformUsed,
unsigned long dwFlags, osg::Node *nodeToStopTraversalAt, osg::Node *subTreeToIgnore);
372 void logHierarchyHelper(
int level,
const osg::Node *
node);
373 void logHierarchyDrawableHelper(
int level,
const osg::Drawable *dw);