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  {
30  {
31  public:
33  {
34  Environmental = 0x00000001
35  };
36 
37  public:
40 
42  static void registerInstance(makVrv::DtBaseConnection& sim, DtVrfEmbarkationHierarchy*);
43 
44  virtual ~DtVrfEmbarkationHierarchy() override;
45 
46  public:
47 
49  {
50  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
51 
52  if ((iter != myFlatHierarchy.end()) && (iter->second->parent()))
53  {
54  return iter->second->parent()->elementId();
55  }
56 
57  return 0;
58  }
59 
61  {
62  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
63 
64  if (iter != myFlatHierarchy.end())
65  {
66  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
67 
68  while (children != iter->second->children().end())
69  {
70  if (((*children)->flags() & Environmental) != 0)
71  {
72  return true;
73  }
74 
75  ++children;
76  }
77  }
78 
79  return false;
80  }
81 
82  std::vector<makVrv::DtElementID> attachedEnvironmentals(makVrv::DtElementID id) const
83  {
84  std::vector<makVrv::DtElementID> envs;
85  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
86 
87  if (iter != myFlatHierarchy.end())
88  {
89  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
90 
91  while (children != iter->second->children().end())
92  {
93  if (((*children)->flags() & Environmental) != 0)
94  {
95  envs.push_back((*children)->elementId());
96  }
97 
98  ++children;
99  }
100  }
101 
102  return envs;
103  }
104 
105 
106  protected:
108  };
109  }
110 }
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:21
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
Contains DLL export macros.
Definition: vrfDis.h:14
makVrv::DtElementID attachedTo(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:48
Contains makVrv::DtElementIDHierarchy class. This is an arbitrary hierarchy class that will allow hie...
bool hasAttachedEnvironmentals(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:60
EmbarkationFlags
Definition: vrfEmbarkationHierarchy.h:32
std::vector< makVrv::DtElementID > attachedEnvironmentals(makVrv::DtElementID id) const
Definition: vrfEmbarkationHierarchy.h:82
Definition: vrfEmbarkationHierarchy.h:29

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)