12 #include <osg/MatrixTransform>
120 #if DTCDGROUPNODE_DEBUG
121 static std::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. Negative keys to zero are all 1...
Definition: DtCDBTileKey.h:46
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:100
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.
static const std::string theEmptyString
Empty String to check is a quadrant is valid.
Definition: DtCDBGroupNode.h:105
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:109
CdbGroupNodeObserver * myObserver
group observer
Definition: DtCDBGroupNode.h:115
CDB osg node class CdbGroupNode as the following structure for GT models Each quadrant does not have ...
Definition: DtCDBGroupNode.h:49
osg::Group * getOrCreateQuadrantNode(Quadrant quadrant, bool &created)
return a specific quadrant of this group (used for GT). If the quadrant does exist it will be created...
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:111
const CdbGroupNodeObserver * getObserver(void) const
return the CdbGroupNodeObserver of this group
CDBTileKey myKey
CDB tile key of this group.
Definition: DtCDBGroupNode.h:117
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:103
static const std::string theFromParent
String saved in osg cache when group is a copy of a parent quadrant.
Definition: DtCDBGroupNode.h:107
Threading::Mutex myMutex
group mutex
Definition: DtCDBGroupNode.h:130
Definition: DtCDBGroupNode.h:29
std::atomic< int > myNumGTPoints[4]
store the number of GT points in the group
Definition: DtCDBGroupNode.h:128
osg::Group * getQuadrantAttachPoint(Quadrant quadrant)
Get the quadrant attach point (under the Matrix Transform)
static const std::string theNoChild
String saved in osg cache when there is no child.
Definition: DtCDBGroupNode.h:113
Quadrant
Definition: DtCDBTileKey.h:32
void addQuadrantChild(Quadrant quadrant, osg::Group *group)
Add points to a GT quadrant.
CdbGroupNode(const CDBTileKey &key)
CTOR.
CDB Tile key structure for the model pager.
void setObserver(CdbGroupNodeObserver *observer)
associate a CdbGroupNodeObserver