VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIntervisibilityElement.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtUniqueID.h>
14 #include <vrvCore/DtElementEntry.h>
16 #include <vrvCore/DtElement.h>
18 
19 #include <vrvUtil/DtUnicode.h>
21 
22 #include <matrix/vlVector.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtIntervisibilityVisualizerSet;
28  class DtIntervisibilityStateListener;
29  class DtStateVisualizer;
30  class DtSceneObjectAgent;
31 
36  {
37  public:
40  {
42  DtSceneObjectAgent* sceneObject;
44 
46  , sceneObject( nullptr )
47  , visualizerSet( nullptr )
48  {
49  }
50 
53 
55  DtIntervisibilitModelSetData& operator=( const DtIntervisibilitModelSetData& ) = delete;
56  };
57 
59  using ModelSetDataArray = std::array<DtIntervisibilitModelSetData, MAX_MODEL_SETS>;
60 
63  DtIntervisibilityStateListener&, const DtUnicode& elementDefName,
64  DtElementEntry::ElementType type, bool distribute = true);
65 
67  virtual ~DtIntervisibilityElement();
68 
70  DtIntervisibilityElement() = delete;
71 
74 
76  DtIntervisibilityElement& operator=( const DtIntervisibilityElement& ) = delete;
77 
78  public:
79 
81  virtual void setVisible( bool visible );
82 
84 
85  virtual void setSelected(bool);
86  virtual bool selected() const;
87 
89  virtual const DtElementEntry::ElementType elementType() const override;
90  static const DtElementEntry::ElementType theElementType();
91 
94  virtual int indexOfVertex(DtUniqueID id,
95  DtStateVisualizer*& visualizer) const;
96 
99  virtual void setVertexSelected(int iIndex, bool);
100 
102  virtual void visualizeModelSets();
103 
106  virtual void setPickable(bool);
107  bool pickable() const;
108 
112  virtual bool circleSelected() const;
113 
116  virtual void setHasCircle( bool circle );
117  virtual bool hasCircle() const;
118 
120  virtual const ModelSetDataArray& modelSetDataArray() const;
121  protected:
122 
124  virtual void setModelSetEnabled( DtModelSetId modelSet, bool enabled ) override;
125 
128  virtual void getDefinitions( std::vector<DtUnicode>& definitions ) override;
129 
133  virtual void reportDriverType() override;
134 
136  virtual void slot_visibilityChanged(bool vis);
137 
138  protected:
139 
145 
148  bool myVisible;
149  };
150 }
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
The DtIntervisibilityElement class implements the common behavior of shape elements that are added to...
Definition: DtIntervisibilityElement.h:35
DtElementEntry::ElementType myObjectType
Definition: DtIntervisibilityElement.h:144
DtIntervisibilityVisualizerSet * visualizerSet
Definition: DtIntervisibilityElement.h:43
bool myPickable
Definition: DtIntervisibilityElement.h:147
DtIntervisibilitModelSetData()
Definition: DtIntervisibilityElement.h:45
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:44
The DtIntervisibilityStateListener is a class that will allow intervisibility objects to use start/en...
Definition: DtIntervisibilityStateListener.h:24
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
std::array< DtIntervisibilitModelSetData, MAX_MODEL_SETS > ModelSetDataArray
MAX_MODEL_SETS is defined in DtModelSetEnums.h.
Definition: DtIntervisibilityElement.h:59
Contains makVrv::DtSharedModelSetSettings class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myVisible
Definition: DtIntervisibilityElement.h:148
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Struct contains the scene object, and the visualizer set,.
Definition: DtIntervisibilityElement.h:39
Contains makVrv::DtElement class.
DtModelSetId modelSet
Definition: DtIntervisibilityElement.h:41
DtSceneObjectAgent * sceneObject
Definition: DtIntervisibilityElement.h:42
ElementType
Definition: DtElementEntry.h:26
bool myCircleMode
Definition: DtIntervisibilityElement.h:146
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtSignalConnectionManager myConnections
Definition: DtIntervisibilityElement.h:142
Contains makVrv:DtBaseConnection class.
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
Base class to provide boost signal/slot management.
ModelSetDataArray myModelSetDataArray
Definition: DtIntervisibilityElement.h:143
Contains makVrv::DtUniqueID type.
This class is a set of intervisibility visualizers, all of the visualizers in this set must support t...
Definition: DtIntervisibilityVisualizerSet.h:23
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains makVrv::DtElementEntry class.
Contains various enum classes relating to model sets.
DtDe & myDe
Definition: DtIntervisibilityElement.h:140
DtIntervisibilityStateListener & myListener
Definition: DtIntervisibilityElement.h:141
Contains DLL export macros.

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)