VR-Forces 5.0.1 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) 2021 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>
17 
18 #include <vrvUtil/DtUnicode.h>
20 #include <boost/unordered_map.hpp>
21 
22 #include <matrix/vlVector.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtIntervisibilityVisualizerSet;
28  class DtIntervisibilityStateListener;
29  class DtStateVisualizer;
30 
35  {
36  public:
37  using ModelSetMap = boost::unordered_map<int, DtIntervisibilityVisualizerSet*>;
38 
41  DtIntervisibilityStateListener&, const DtUnicode& elementDefName,
42  DtElementEntry::ElementType type, bool distribute = true);
43 
45  virtual ~DtIntervisibilityElement();
46 
48  DtIntervisibilityElement() = delete;
49 
52 
54  DtIntervisibilityElement& operator=( const DtIntervisibilityElement& ) = delete;
55 
56  public:
57 
59  virtual void setVisible( bool visible );
60 
61 
62  inline const ModelSetMap& modelSetMap() const
63  {
64  return myModelSetMap;
65  }
66 
68  {
69  return myListener;
70  }
71 
72  virtual void setSelected(bool);
73  virtual bool selected() const;
74 
75  virtual const DtElementEntry::ElementType elementType() const override
76  {
77  return theElementType();
78  }
79 
81  {
83  }
84 
87  virtual int indexOfVertex(DtUniqueID id,
88  DtStateVisualizer*& visualizer) const;
89 
92  virtual void setVertexSelected(int iIndex, bool);
93 
95  virtual void visualizeModelSets();
96 
99  virtual void setPickable(bool);
100  bool pickable() const;
101 
105  virtual bool circleSelected() const;
106 
109  virtual bool hasCircle() const;
110 
111  protected:
112 
114  virtual void setModelSetEnabled( int modelSet, bool enabled ) override;
115 
117  virtual DtIntervisibilityVisualizerSet* createVisualizerSet(
118  int modelSet) const;
119 
122  virtual void getDefinitions( std::vector<DtUnicode>& definitions ) override;
123 
127  virtual void reportDriverType() override;
128 
130  virtual void slot_visibilityChanged(bool vis);
131 
132  protected:
133 
139 
142  bool myVisible;
143  };
144 }
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:34
DtElementEntry::ElementType myObjectType
Definition: DtIntervisibilityElement.h:138
static const DtElementEntry::ElementType theElementType()
Definition: DtIntervisibilityElement.h:80
bool myPickable
Definition: DtIntervisibilityElement.h:141
virtual const DtElementEntry::ElementType elementType() const override
Virtual function for getting the element type.
Definition: DtIntervisibilityElement.h:75
const ModelSetMap & modelSetMap() const
Definition: DtIntervisibilityElement.h:62
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:41
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:39
Definition: DtElementEntry.h:40
Contains makVrv::DtSharedModelSetSettings class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myVisible
Definition: DtIntervisibilityElement.h:142
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtElement class.
ElementType
Definition: DtElementEntry.h:26
bool myCircleMode
Definition: DtIntervisibilityElement.h:140
DtSignalConnectionManager myConnections
Definition: DtIntervisibilityElement.h:136
Contains makVrv:DtBaseConnection class.
ModelSetMap myModelSetMap
Definition: DtIntervisibilityElement.h:137
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:32
Base class to provide boost signal/slot management.
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:22
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:70
boost::unordered_map< int, DtIntervisibilityVisualizerSet * > ModelSetMap
Definition: DtIntervisibilityElement.h:37
DtIntervisibilityStateListener & listener()
Definition: DtIntervisibilityElement.h:67
Contains makVrv::DtElementEntry class.
DtDe & myDe
Definition: DtIntervisibilityElement.h:134
DtIntervisibilityStateListener & myListener
Definition: DtIntervisibilityElement.h:135
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)