VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlayPolygonModel.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtPolygonModel.h>
16 
17 #include <vrvUtil/DtUnicode.h>
18 
19 #include <matrix/vlVector.h>
20 
21 #include <vector>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtChannelManager;
27  class DtChannel;
28  class DtChannelConfiguration;
29  class DtModelDefinition;
30 
34  {
35  public:
36  using DtPerimeterWrappedTextCollection = std::vector<DtUnicode>;
37 
38  public:
41 
43  virtual ~DtOverlayPolygonModel();
44 
45  //@name Distributed Interface
47 
49  virtual void setColor(float r, float g, float b, float a);
50 
52  virtual void setInsideColor(float r, float g, float b, float a);
53 
55  virtual void getInsideColor(float& r, float& g, float& b, float& a);
56 
58  virtual void setOutsideColor(float r, float g, float b, float a);
59 
61  virtual void getOutsideColor(float& r, float& g, float& b, float& a);
62 
64  virtual void setSolidFillCenter(bool);
65 
67  virtual void setPosition(int vtx, const DtVector& position);
68 
70  virtual void setOrigin(const DtVector& o);
71 
73  virtual void setPoint(int vtx, const DtVector& position);
74 
76  virtual void set2dOffset(int index, float x, float y);
77 
80  virtual void set3dDirection2dLength(int index, float x, float y, float z,
81  float len);
82 
85  virtual void setGroup(int);
86 
88  virtual void setOrientation(int vtx, const DtTaitBryan& orientation);
89 
91  virtual void setTexturePath(const std::string& texturePath);
92 
94  virtual void setIsStippleUsedForFill(bool isStippleUsedForFill);
95 
100  virtual void setOutlineTexture(const std::string& texturePath, int width = -1, int height = -1);
101 
103  virtual void setNumTextureTiles(double numTiles);
104 
106  virtual void setSolid(bool solid);
107 
111  virtual void setIsSupportModel(bool isSupport);
112 
115  virtual void addPoint(const DtVector& point, int index);
116 
118  virtual void setPickable(bool enabled);
119 
121  virtual void removePoint(int index);
122 
124  virtual void removePosition(int index);
125 
127  virtual void setStipplePattern(unsigned int stipplePattern);
128 
130  virtual const std::vector<DtVector>& points() const;
131 
133  virtual int pointCount() const;
134 
136  virtual DtVector point(int) const;
137 
139  virtual void setWidth(float width);
140 
142  virtual void setEventWidth(float width);
143 
145  virtual void setEventsEnabled(bool);
146 
148  virtual void setVisible(bool isVisible);
150 
151  //@name Local Interface
153 
155  virtual void addToScene(const DtUniqueID& sceneObjectId, DtModelSetId modelSet,
156  int visualizerType);
157 
159  virtual void removeFromScene();
160 
162  virtual void setModelDefinition(const std::string& str);
164 
166  virtual void setFillPattern(const std::vector<unsigned int>&);
167 
173  virtual void setFillPatternFrequency(float frequency);
174 
176  virtual float fillPatternFrequency() const;
177 
180  virtual void setOutline(bool);
181 
183  virtual void setEnableDecalProjector(bool enable);
184 
186  virtual bool enableDecalProjector() const;
187 
189 
192  virtual void setIsPerimeterWrappedTextRenderingEnabled(bool);
193 
197  virtual void setPerimeterWrappedTextCollection(const DtPerimeterWrappedTextCollection&);
198 
204  virtual void setPerimeterWrappedTextInterval(int intervalInScreenSpaceCM);
205 
207  virtual void setPerimeterWrappedTextFont(const std::string& fontFile, float fontPointSize);
208 
210  virtual void setPerimeterWrappedTextColor(float r, float g, float b, float a);
211 
213  virtual void setPerimeterWrappedTextBackgroundColor(float r, float g, float b, float a);
215 
217  virtual const DtVector& origin() const;
218 
219  protected:
223  {
224  DtOverlayPolygonModelInstance* channelPolygonModelInstance = nullptr;
225  DtOverlayScreenIntervaledTextInstance* screenTextInstance = nullptr;
226  };
227 
229  virtual void update();
230 
232  virtual void needsUpdate();
233 
237  virtual void moveInstancesFromChannelSpecific();
238 
242  virtual void moveInstancesToChannelSpecific();
243 
246  virtual void slot_channelCreated(DtChannel* channel);
247 
249  virtual void slot_channelDestroyed(DtChannelManager* channelManager, DtChannel* channel);
250 
253  virtual void slot_channelConfigurationModified(const std::string& deName,
254  const std::string& winName, const std::string& oldChannelName,
255  const DtChannelConfiguration& config);
256 
258  virtual void setupInstanceWithCurrentValues(DtOverlayPolygonModelInstance*,
260 
261  protected:
264  DtTaitBryan myRotation;
265 
268 
272 
279 
282 
283  float myPerimeterWrappedTextFontColor[4];
284  float myPerimeterWrappedTextBackgroundColor[4];
286 
287  typedef std::map<DtChannel*, DtPolygonInstanceAndText> ChannelInstances;
289 
291 
295  std::string myModelDefinition;
296  float myInsideColor[4];
297  float myOutsideColor[4];
298  float myWidth;
299  std::string myTexturePath;
300  std::string myOutlineTexture;
303  std::vector<unsigned int> myFillPattern;
305  bool myOutline;
309  unsigned int myStipplePattern;
311  bool mySolid;
312  int myGroup;
316  };
317 }
std::string myModelDefinition
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:295
Struct to hold both the channel specific model instance and screen interval text instance which rende...
Definition: DtOverlayPolygonModel.h:222
bool mySolid
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:311
unsigned int myStipplePattern
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:309
voidpf uLong int origin
Definition: ioapi.h:42
bool myEventsEnabled
Definition: DtOverlayPolygonModel.h:262
float myEventWidth
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:310
Distributed model for drawing polygons with attached vertices.
Definition: DtPolygonModel.h:20
Contains makVrv::DtOverlayScreenIntervaledTextInstance class declaration.
ChannelInstances myChannelInstances
Definition: DtOverlayPolygonModel.h:288
std::string myPerimeterWrappedTextFontFile
These are channel specific variables for perimeter text rendering They are not part of the model set ...
Definition: DtOverlayPolygonModel.h:280
std::string myOutlineTexture
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:300
DtSignalConnectionManager myLifetimeConnections
Definition: DtOverlayPolygonModel.h:266
DtVector myOrigin
Definition: DtOverlayPolygonModel.h:263
bool myIsStippleUsedForFill
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:314
DtPerimeterWrappedTextCollection myPerimeterWrappedTextCollection
These are channel specific variables for perimeter text rendering They are not part of the model set ...
Definition: DtOverlayPolygonModel.h:277
int myPerimeterWrappedTextIntervalInScreenSpaceCM
These are channel specific variables for perimeter text rendering They are not part of the model set ...
Definition: DtOverlayPolygonModel.h:278
bool myNeedsUpdate
Definition: DtOverlayPolygonModel.h:290
Class to draw a screen spaced perimeter text on polygons, lines, or other geometry.
Definition: DtOverlayScreenIntervaledTextInstance.h:32
The abstract Channel Class.
Definition: DtChannel.h:35
Contains DtPolygonModel declaration.
float myFillPatternFrequency
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:304
int myOutlineTextureTileHeight
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:302
bool myOutline
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:305
double myNumTextureTiles
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:307
bool myIsPerimeterWrappedTextRenderingEnabled
These are channel specific variables for perimeter text rendering They are not part of the model set ...
Definition: DtOverlayPolygonModel.h:276
float myPerimeterWrappedTextFontPointSize
These are channel specific variables for perimeter text rendering They are not part of the model set ...
Definition: DtOverlayPolygonModel.h:281
int myGroup
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:312
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtOverlayPolygonModelInstance class definition.
std::string myTexturePath
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:299
DtSignalConnectionManager myChannelConnections
Definition: DtOverlayPolygonModel.h:267
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myPickable
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:308
DtTaitBryan myRotation
Definition: DtOverlayPolygonModel.h:264
bool myChannelSpecificMode
Set to true if displaying model instances on a per channel basis. Default is false.
Definition: DtOverlayPolygonModel.h:271
std::vector< unsigned int > myFillPattern
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:303
Base class for handling DtChannels. Derived classes should override the tick() method and advance the...
Definition: DtChannelManager.h:32
std::map< DtChannel *, DtPolygonInstanceAndText > ChannelInstances
Definition: DtOverlayPolygonModel.h:287
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:24
std::vector< VertexData > VertexList
Definition: DtOverlayPolygonModelInstance.h:74
int myOutlineTextureTileWidth
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:301
bool mySolidFillCenter
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:306
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
OSG implementation of overlay polygon model.
Definition: DtOverlayPolygonModel.h:33
DtModelSetId
Definition: DtModelSetEnums.h:19
A model instance class which allows the drawing of a polygon (supporting textures) on an overlay...
Definition: DtOverlayPolygonModelInstance.h:53
bool myEnableDecalProjector
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:313
Contains DLL export macros.
float myWidth
Variables that are saved in order to switch between channel instance and model set instance...
Definition: DtOverlayPolygonModel.h:298
std::vector< DtUnicode > DtPerimeterWrappedTextCollection
Definition: DtOverlayPolygonModel.h:36

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)