12 #include <osg/MatrixTransform>
18 #include <tbb/atomic.h>
130 #if DTCDGROUPNODE_DEBUG
131 static tbb::atomic<int> myNumofCdbGroupNodes;
bool isFromParentQuadrant(Quadrant quadrant) const
set the top transform of the cdbgroup (same for the 4 child)
CdbGroupNode & operator=(const CdbGroupNode &other)
Assignment Operator Not implemented – Assignment Not Allowed.
void setQuadrantChild(Quadrant quadrant, CdbGroupNode *parentGroupNode)
Set GT points of a group from the parent quad tree.
bool getHasCdbChildren() const
get the flag if this CDB group have children node
Hold the unique CDB tile key information CDB LOD goes from -10 to 23.
Definition: DtCDBTileKey.h:28
virtual osg::MatrixTransform * getMTForQuadrant(Quadrant q)
Return the transform from a quadrant.
osg::ref_ptr< osg::MatrixTransform > myMt[4]
Matrix transform Local to World (node not to be processed by instancing)
Definition: DtCDBGroupNode.h:110
static Quadrant getQuadrantFromName(const std::string &name)
Return the quadrant index based on node name (from the cache)
const CDBTileKey & getKey(void) const
return the CDB tile key for this group
static const std::string & getQuadrantChildPrefix(Quadrant quadrant)
Get the quadrant string prefix.
Definition: DtCDBGroupNode.h:39
static const std::string theEmptyString
Empty String to check is a quadrant is valid.
Definition: DtCDBGroupNode.h:115
virtual void CdbGroupNode_Deleted(CdbGroupNode *node)=0
static const std::string theNotFromParent
String saved in osg cache when group is not a copy of a parent quadrant.
Definition: DtCDBGroupNode.h:119
CdbGroupNodeObserver * myObserver
group observer
Definition: DtCDBGroupNode.h:125
CDB osg node class CdbGroupNode as the following structure for GT models Each quadrant does not have ...
Definition: DtCDBGroupNode.h:59
osg::Group * getOrCreateQuadrantNode(Quadrant quadrant, bool &created)
return a specific quadrant of this group (used for GT).
void setHasCdbChildren(bool hasChildren)
set the flag if this CDB group have children node
static const std::string theHasChild
String saved in osg cache when there is a child.
Definition: DtCDBGroupNode.h:121
const CdbGroupNodeObserver * getObserver(void) const
return the CdbGroupNodeObserver of this group
CDBTileKey myKey
CDB tile key of this group.
Definition: DtCDBGroupNode.h:127
virtual ~CdbGroupNode()
DTOR.
osg::MatrixTransform * getQuadrantMt(Quadrant quadrant)
Get the quadrant Top matrix transform)
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
void plusplusNumGTPoints(Quadrant quadrant)
increment the number of GT point this CDB group contains
int numGTPoints(void) const
return the number of GT point this CDB group contains
static const std::vector< std::string > theQuadrantStrings
hold the 4 quadrand string ( "0", "1", "2", "3" this is used to save in osg cache to be able to rebui...
Definition: DtCDBGroupNode.h:113
static const std::string theFromParent
String saved in osg cache when group is a copy of a parent quadrant.
Definition: DtCDBGroupNode.h:117
Definition: DtCDBGroupNode.h:41
Threading::Mutex myMutex
group mutex
Definition: DtCDBGroupNode.h:140
Definition: DtCDBGroupNode.h:42
Definition: DtCDBGroupNode.h:29
osg::Group * getQuadrantAttachPoint(Quadrant quadrant)
Get the quadrant attach point (under the Matrix Transform)
Definition: DtCDBGroupNode.h:38
static const std::string theNoChild
String saved in osg cache when there is no child.
Definition: DtCDBGroupNode.h:123
Quadrant
Definition: DtCDBGroupNode.h:35
void addQuadrantChild(Quadrant quadrant, osg::Group *group)
Add points to a GT quadrant.
CdbGroupNode(const CDBTileKey &key)
CTOR.
Definition: DtCDBGroupNode.h:37
CDB Tile key structure for the model pager.
Definition: DtCDBGroupNode.h:40
void setObserver(CdbGroupNodeObserver *observer)
associate a CdbGroupNodeObserver
tbb::atomic< int > myNumGTPoints[4]
store the number of GT points in the group
Definition: DtCDBGroupNode.h:138