VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEmbarkationHierarchy.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 
19 
20 namespace makVrv
21 {
22  class DtBaseConnection;
23 }
24 
25 namespace makVrf
26 {
27  namespace VRF_PROTOCOL_NAMESPACE
28  {
31  {
32  public:
34  {
35  Environmental = 0x00000001
36  };
37 
38  public:
41 
43  static void registerInstance(makVrv::DtBaseConnection& sim, DtVrfEmbarkationHierarchy*);
44 
45  virtual ~DtVrfEmbarkationHierarchy();
46 
47  public:
48 
50  {
51  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
52 
53  if ((iter != myFlatHierarchy.end()) && (iter->second->parent()))
54  {
55  return iter->second->parent()->elementId();
56  }
57 
58  return 0;
59  }
60 
62  {
63  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
64 
65  if (iter != myFlatHierarchy.end())
66  {
67  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
68 
69  while (children != iter->second->children().end())
70  {
71  if (((*children)->flags() & Environmental) != 0)
72  {
73  return true;
74  }
75 
76  ++children;
77  }
78  }
79 
80  return false;
81  }
82 
83  std::vector<makVrv::DtElementID> attachedEnvironmentals(makVrv::DtElementID id) const
84  {
85  std::vector<makVrv::DtElementID> envs;
86  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
87 
88  if (iter != myFlatHierarchy.end())
89  {
90  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
91 
92  while (children != iter->second->children().end())
93  {
94  if (((*children)->flags() & Environmental) != 0)
95  {
96  envs.push_back((*children)->elementId());
97  }
98 
99  ++children;
100  }
101  }
102 
103  return envs;
104  }
105 
106 
107  protected:
109  };
110  }
111 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
Hierarchy that will keep track of parent/child element id relationships. Will emit signals when the t...
Definition: DtElementIDHierarchy.h:111
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
Contains makVrv::DtVirtualBaseClass class.
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
makVrv::DtElementID attachedTo(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:49
Contains makVrv::DtElementIDHierarchy class. This is an arbitrary hierarchy class that will allow hie...
bool hasAttachedEnvironmentals(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:61
EmbarkationFlags
Definition: vrfEmbarkationHierarchy.h:33
std::vector< makVrv::DtElementID > attachedEnvironmentals(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:83
The Master Scenario Settings Dialog.
Definition: vrfEmbarkationHierarchy.h:30

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)