21 #include <boost/unordered_map.hpp>
22 #include <boost/function.hpp>
28 class DtElementIDHierarchyState;
47 InitiallyExpanded = 5,
55 ShouldHaveChildren = 0x00000001,
56 CollapseIfNoChildren = 0x00000002,
73 return !(*
this == rhs);
82 const ChildHierarchyNodes& children()
const;
84 void removeAllChildren();
91 virtual bool childInHierarchy(
DtElementID id)
const;
93 void setFlags(
int flags);
96 void setDisplayState(DisplayState);
97 DisplayState displayState()
const;
116 typedef boost::function<DtElementIDHierarchyNode::DisplayState (const DtElementIDHierarchyNode*)>
ExpectedDisplayState;
126 virtual void addToHierarchy(
DtElementID elementID,
DtElementID child,
int flags = 0,
bool setAsNewChildren =
true,
127 bool processList =
true);
129 int flags = 0,
bool setAsNewChildren =
true,
bool processList =
true);
163 virtual void detachChildFromParent(
DtElementID child);
174 virtual void expand(
DtElementID elementID,
bool processList =
true);
177 virtual void expandAll(
DtElementID elementID,
bool processList =
true);
183 virtual void expandDown(
DtElementID elementID,
int numLevels = -1,
bool processList =
true);
186 virtual void collapseAll(
DtElementID elementID,
bool processList =
true);
190 virtual void collapse(
DtElementID elementID,
bool processList =
true);
193 virtual void processVisibilityList();
196 void setInitiallyExpanded(
bool);
197 virtual bool initiallyExpanded()
const;
209 virtual void reprocessAllNodes();
224 virtual void processParentedNode(
DtElementIDHierarchyNode* node,
bool forceUpdate =
false,
bool processChildren =
true);
228 virtual void attachParentToChildrenAndRemoveMissingChildren(
DtElementID parentId,
ElementIDs newChildren);
232 virtual void hierarchyUpdated();
239 virtual void updateHierarchy(
DtElementID id,
const ElementIDs& children,
bool setAsNewChildren =
true);
245 virtual void attachParentToChildren(
DtElementID parentId,
const ElementIDs& children,
bool setAsNewChildren =
true);
247 virtual void removeAllChildrenFromParent(
DtElementID);
VisibilityProcessingList myVisibilityProcessingList
Definition: DtElementIDHierarchy.h:268
boost::signalslib::signal< void(DtElementIDHierarchyNode *) > signal_hierarchyItemAboutToBeRemoved
Definition: DtElementIDHierarchy.h:254
boost::signalslib::signal< void(DtElementIDHierarchyNode *) > signal_hierarchyItemModified
Definition: DtElementIDHierarchy.h:250
std::vector< DtElementID > ElementIDs
Definition: DtElementIDHierarchy.h:114
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
boost::signalslib::signal< void(VisibilityProcessingList)> signal_visibilityChanged
Definition: DtElementIDHierarchy.h:258
DtElementIDHierarchyNode * myParent
Definition: DtElementIDHierarchy.h:100
ExpectedDisplayState myExpectedDisplayState
Definition: DtElementIDHierarchy.h:269
std::set< const DtElementIDHierarchyNode * > VisibilityProcessingList
Definition: DtElementIDHierarchy.h:115
boost::unordered_map< DtElementID, DtElementIDHierarchyNode * > HierarchyNodeMap
Definition: DtElementIDHierarchy.h:265
The DtElementIDHierarchyState class contains information about the element and its place in the eleme...
Definition: DtElementIDHierarchyState.h:20
Hierarchy that will keep track of parent/child element id relationships.
Definition: DtElementIDHierarchy.h:111
DtElementID myId
Definition: DtElementIDHierarchy.h:102
ChildHierarchyNodes myChildren
Definition: DtElementIDHierarchy.h:101
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
boost::signalslib::signal< void(DtElementID, const ElementIDs &)> signal_updateHierarchy
Definition: DtElementIDHierarchy.h:256
boost::signalslib::signal< void(DtElementID, DtElementIDHierarchyNode::DisplayState)> signal_echelonVisibilityChange
Definition: DtElementIDHierarchy.h:257
DisplayState
Used to keep track of state of item as it should appear visually in the hierarchy.
Definition: DtElementIDHierarchy.h:39
DisplayState myDisplayState
Definition: DtElementIDHierarchy.h:105
std::vector< DtElementIDHierarchyNode * > ChildHierarchyNodes
Definition: DtElementIDHierarchy.h:36
bool myCleanupChildren
Definition: DtElementIDHierarchy.h:103
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool operator!=(const DtElementIDHierarchyNode &rhs) const
Definition: DtElementIDHierarchy.h:71
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
boost::function< DtElementIDHierarchyNode::DisplayState(const DtElementIDHierarchyNode *)> ExpectedDisplayState
Definition: DtElementIDHierarchy.h:116
int myFlags
Definition: DtElementIDHierarchy.h:104
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
boost::signalslib::signal< void(DtElementIDHierarchyNode *) > signal_hierarchyItemToBeRemoved
Called before disconnecting from tree and before signal_hierarchyItemAboutToBeRemoved.
Definition: DtElementIDHierarchy.h:253
Contains makVrv::DtUniqueID type.
Flags
Definition: DtElementIDHierarchy.h:53
bool myInitiallyExpanded
Definition: DtElementIDHierarchy.h:271
boost::signalslib::signal< void(DtElementIDHierarchy *) > signal_hierarchyUpdated
Definition: DtElementIDHierarchy.h:255
HierarchyNodeMap myFlatHierarchy
Definition: DtElementIDHierarchy.h:267
Contains DLL export macros.