VR-Forces 4.6 Class Documentation
 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) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtVrfEmbarkationHierarchy.h,v $ $Revision: 1.3 $ $State: Exp $
7 ******************************************************************************/
8 
11 
14 
15 #pragma once
16 
18 
22 
23 namespace makVrv
24 {
25  class DtConnection;
26 }
27 
28 namespace makVrf
29 {
30  namespace VRF_PROTOCOL_NAMESPACE
31  {
34  {
35  public:
37  {
38  Environmental = 0x00000001
39  };
40 
41  public:
43  static DtVrfEmbarkationHierarchy& instance(makVrv::DtConnection& sim);
44 
46  static void registerInstance(makVrv::DtConnection& sim, DtVrfEmbarkationHierarchy*);
47 
48  virtual ~DtVrfEmbarkationHierarchy();
49 
50  public:
51 
53  {
54  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
55 
56  if ((iter != myFlatHierarchy.end()) && (iter->second->parent()))
57  {
58  return iter->second->parent()->uniqueId();
59  }
60 
61  return 0;
62  }
63 
64  bool hasAttachedEnvironmentals(makVrv::DtElementID id) const
65  {
66  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
67 
68  if (iter != myFlatHierarchy.end())
69  {
70  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
71 
72  while (children != iter->second->children().end())
73  {
74  if (((*children)->flags() & Environmental) != 0)
75  {
76  return true;
77  }
78 
79  ++children;
80  }
81  }
82 
83  return false;
84  }
85 
86  std::vector<makVrv::DtElementID> attachedEnvironmentals(makVrv::DtElementID id) const
87  {
88  std::vector<makVrv::DtElementID> envs;
89  HierarchyNodeMap::const_iterator iter = myFlatHierarchy.find(id);
90 
91  if (iter != myFlatHierarchy.end())
92  {
93  makVrv::DtElementIDHierarchyNode::ChildHierarchyNodes::const_iterator children = iter->second->children().begin();
94 
95  while (children != iter->second->children().end())
96  {
97  if (((*children)->flags() & Environmental) != 0)
98  {
99  envs.push_back((*children)->uniqueId());
100  }
101 
102  ++children;
103  }
104  }
105 
106  return envs;
107  }
108 
109 
110  protected:
112  };
113  }
114 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)