VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtChannelConfiguration.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
14 #include <vrvUtil/DtKeywordMixin.h>
15 
16 #include <boost/serialization/set.hpp>
17 
18 namespace makVrv
19 {
27  : public DtConfiguration
28  , public DtKeywordMixin
29  {
30 
31  public:
32 
33  static const char* DefaultChannelString;
34 
37  static const char* UseObserverSensorString;
38 
40  {
43  DatabaseUnits
44  };
45 
47  {
48  FIXED = 0,
52  };
53 
55  {
59  NEAR_FAR_DYNAMIC_NEAR_CLIP_MAG_CLAMP // same as reduce z fight but with near clamped
60  // by an intersector so it can't go past terrain
61  // in front of the camera
62  };
63 
65  {
66  IGNORE_ATTACHED = 0,
70  DISTANCE_TO_ATTACHED
72  };
73 
76  DtChannelConfiguration(const std::string& name = DefaultChannelString);
77 
80 
83 
85  virtual ~DtChannelConfiguration();
86 
88  virtual void setParentChannel(const std::string& displayName,
89  const std::string& windowName, const std::string& channelName);
90 
92  virtual void getParentChannel(std::string& displayEngineNameOut,
93  std::string& windowNameOut, std::string& channelNameOut) const;
94 
96  virtual void setProjection(ProjectionUnits units, double left, double right, double bottom, double top,
97  double zNear, double zFar);
98 
100  virtual void getProjection(ProjectionUnits& units, double &left, double &right, double &bottom, double &top,
101  double &zNear, double &zFar) const;
102 
104  virtual ProjectionUnits projectionUnits() const;
105 
107  virtual void setProjectionUnits(ProjectionUnits units);
108 
111  virtual void getClearColor(float& r,float& g,float& b,float& a) const;
112 
115  virtual void setClearColor(float r,float g,float b,float a);
116 
118  virtual void setCameraPositionOffset(double x, double y, double z);
119 
121  virtual void getCameraPositionOffset(double& x, double& y, double& z) const;
122 
124  virtual void setCameraOrientationOffset(double psi, double theta, double phi);
125 
127  virtual void getCameraOrientationOffset(double& psi, double& theta, double& phi) const;
128 
130  virtual void getViewport(double& left,double& right,double& bottom,double& top) const;
131 
133  virtual void setViewport(double left,double right,double bottom, double top);
134 
136  virtual const std::string& observerName() const;
137 
139  virtual void setObserverName(const std::string& observerName);
140 
142  virtual const std::string& sensorName() const;
143 
145  virtual void setSensorName(const std::string& sensorName);
146 
148  virtual ProjectionResizePolicy projectionResizePolicy() const;
149 
151  virtual void setProjectionResizePolicy(ProjectionResizePolicy policy);
152 
154  virtual double cameraMagnification() const;
155 
157  virtual void setCameraMagnification(double mag);
158 
160  virtual float lodScale() const;
161 
165  virtual void setLodScale(float lodScale);
166 
171  virtual void setNearFarClipPolicy( NearFarClipPolicy policy );
172 
174  virtual NearFarClipPolicy nearFarClipPolicy() const;
175 
178  virtual void setZFightReductionRatio( double ratio );
179 
182  virtual double zFightReductionRatio() const;
183 
186  virtual void setDynamicNearClipAttachedObjectPolicy(
187  DynamicNearClipAttachedObjectPolicy useAttached );
188 
191  virtual DynamicNearClipAttachedObjectPolicy
192  dynamicNearClipAttachedObjectPolicy() const;
193 
196  virtual void setAltitudeForUseAttachedNearClip( double altitude );
197 
200  virtual double altitudeForUseAttachedNearClip() const;
201 
205  virtual void setNearClipWhenAttached( double distance );
206 
210  virtual double nearClipWhenAttached() const;
211 
215  virtual void setDynamicWaterVisibilityEnable( bool enable );
216 
218  virtual bool dynamicWaterVisibilityEnable() const;
219 
222  virtual void setDynamicWaterVisibilityMax( double visMax );
223 
226  virtual double dynamicWaterVisibilityMax() const;
227 
230  virtual void setRenderOrder( int order );
231 
233  virtual int renderOrder() const;
234 
238  virtual double minZNear(double value) const;
239 
243  virtual void setMinZNear(double value);
244 
246  virtual float pixelRatio() const;
247 
250  virtual void setPixelRatio(float ratio);
251 
258  protected:
259 
260  template<class Archive>
261  void _serialize(Archive & ar, const unsigned int version)
262  {
265 
266  ar & DT_SERIALIZE_MEMBER(myClearColorR);
267  ar & DT_SERIALIZE_MEMBER(myClearColorG);
268  ar & DT_SERIALIZE_MEMBER(myClearColorB);
269  ar & DT_SERIALIZE_MEMBER(myClearColorA);
270  ar & DT_SERIALIZE_MEMBER(myViewportLeft);
271  ar & DT_SERIALIZE_MEMBER(myViewportRight);
272  ar & DT_SERIALIZE_MEMBER(myViewportBottom);
273  ar & DT_SERIALIZE_MEMBER(myViewportTop);
274  ar & DT_SERIALIZE_MEMBER(myParentDisplayEngineName);
275  ar & DT_SERIALIZE_MEMBER(myParentWindowName);
276  ar & DT_SERIALIZE_MEMBER(myParentChannelName);
277  ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetX);
278  ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetY);
279  ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetZ);
280  ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetPsi);
281  ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetTheta);
282  ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetPhi);
283  ar & DT_SERIALIZE_MEMBER(myFrustumLeft);
284  ar & DT_SERIALIZE_MEMBER(myFrustumRight);
285  ar & DT_SERIALIZE_MEMBER(myFrustumTop);
286  ar & DT_SERIALIZE_MEMBER(myFrustumBottom);
287  ar & DT_SERIALIZE_MEMBER(myNearZ);
288  ar & DT_SERIALIZE_MEMBER(myFarZ);
289  ar & DT_SERIALIZE_MEMBER(myProjectionUnits);
290  ar & DT_SERIALIZE_MEMBER(myObserverName);
291  ar & DT_SERIALIZE_MEMBER(myProjectionResizePolicy);
292 
293  if (version > 1)
294  {
295  ar & DT_SERIALIZE_MEMBER(myKeywords);
296  }
297 
298  if (version > 2 && version < 6)
299  {
300  ar & DT_SERIALIZE_MEMBER(myDynamicNearFar);
301  ar & DT_SERIALIZE_MEMBER(myNearFarRatio);
302  }
303 
304  if (version > 3)
305  {
306  ar & DT_SERIALIZE_MEMBER(myCameraMagnification);
307  }
308 
309  if (version > 4)
310  {
311  ar & DT_SERIALIZE_MEMBER(mySensorName);
312  }
313 
314  if (version > 5)
315  {
316  ar & DT_SERIALIZE_MEMBER(myNearFarClipPolicy);
317  ar & DT_SERIALIZE_MEMBER(myZFightReductionRatio);
318  ar & DT_SERIALIZE_MEMBER(myDynamicNearClipAttachedObjectPolicy);
319  ar & DT_SERIALIZE_MEMBER(myAltitudeForUseAttachedNearClip);
320  ar & DT_SERIALIZE_MEMBER(myNearClipWhenAttached);
321  ar & DT_SERIALIZE_MEMBER(myDynamicWaterVisibilityEnable);
322  ar & DT_SERIALIZE_MEMBER(myDynamicWaterVisibilityMax);
323  }
324 
325  if (version > 6)
326  {
327  ar & DT_SERIALIZE_MEMBER(myRenderOrder);
328  }
329  if (version > 7)
330  {
331  ar & DT_SERIALIZE_MEMBER(myLodScale);
332  }
333  }
334 
336  std::string myParentWindowName;
337  std::string myParentChannelName;
338 
339  // This is storing info, not writing out/reading in
340  // The app gets pixel ratio from windows/X (not setting
341  // itself)
343 
344  //Default Clear color is 0,0,0,0
349 
354 
361 
365  double myFrustumTop;
367  double myNearZ;
368  double myFarZ;
369 
370  double myMinZNear;
371 
372  bool myDynamicNearFar; //Version 3-5
373  // Not used
374  double myNearFarRatio; //Version 3-5
375 
376  double myCameraMagnification; // Version 4
377 
378  float myLodScale; // Version 8
379 
381  std::string myObserverName;
382  std::string mySensorName;
384 
392 
393  int myRenderOrder; // Version 7
394 
395  };
396 }
397 
DynamicNearClipAttachedObjectPolicy
Definition: DtChannelConfiguration.h:64
Ignore attached objects when setting near clipping plane.
Definition: DtChannelConfiguration.h:68
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
#define DT_SERIALIZE_BASE(BASE_CLASS)
Serialize the base class implementation.
Definition: DtSerialize.h:161
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
void _serialize(Archive &ar, const unsigned int version)
Declare serialize functions Call via serialize(Archive ar, unsigned int version); Where Archive can b...
Definition: DtChannelConfiguration.h:261
The DtKeyword mixin is a mixin class (add funcionality by inheritence) for adding generic keywords to...
Definition: DtKeywordMixin.h:23
Definition: DtFxParticleSystem.h:98
std::string myParentWindowName
Definition: DtChannelConfiguration.h:336
double myAltitudeForUseAttachedNearClip
Definition: DtChannelConfiguration.h:388
double myMinZNear
Definition: DtChannelConfiguration.h:370
double myCameraOrientationOffsetTheta
Definition: DtChannelConfiguration.h:359
double myFrustumTop
Definition: DtChannelConfiguration.h:365
double myNearFarRatio
Definition: DtChannelConfiguration.h:374
double myFrustumRight
Definition: DtChannelConfiguration.h:364
Definition: DtChannelConfiguration.h:41
double myCameraOrientationOffsetPsi
Definition: DtChannelConfiguration.h:358
double myNearClipWhenAttached
Definition: DtChannelConfiguration.h:389
DynamicNearClipAttachedObjectPolicy myDynamicNearClipAttachedObjectPolicy
Definition: DtChannelConfiguration.h:387
double myCameraOrientationOffsetPhi
Definition: DtChannelConfiguration.h:360
ProjectionResizePolicy myProjectionResizePolicy
Definition: DtChannelConfiguration.h:383
double myFrustumBottom
Definition: DtChannelConfiguration.h:366
Adjust the HORIZOTNAL field of view on window resizes.
Definition: DtChannelConfiguration.h:50
std::string myParentChannelName
Definition: DtChannelConfiguration.h:337
double myFrustumLeft
Projection stuff.
Definition: DtChannelConfiguration.h:363
double myViewportLeft
Definition: DtChannelConfiguration.h:350
Contains DLL export macros.
static const char * DefaultChannelString
Definition: DtChannelConfiguration.h:33
NearFarClipPolicy
Definition: DtChannelConfiguration.h:54
float myPixelRatio
Definition: DtChannelConfiguration.h:342
double myCameraPositionOffsetY
Definition: DtChannelConfiguration.h:356
std::string myParentDisplayEngineName
Definition: DtChannelConfiguration.h:335
Definition: DtChannelConfiguration.h:42
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
NearFarClipPolicy myNearFarClipPolicy
Definition: DtChannelConfiguration.h:385
int myRenderOrder
Definition: DtChannelConfiguration.h:393
double myCameraMagnification
Definition: DtChannelConfiguration.h:376
double myViewportBottom
Definition: DtChannelConfiguration.h:352
#define DT_DECLARE_ALL_serialize_FUNCTIONS
Definition: DtSerialize.h:134
double myDynamicWaterVisibilityMax
Definition: DtChannelConfiguration.h:391
std::string myObserverName
Definition: DtChannelConfiguration.h:381
double myCameraPositionOffsetZ
Definition: DtChannelConfiguration.h:357
double myZFightReductionRatio
Definition: DtChannelConfiguration.h:386
Contains makVrv::DtConfiguration class.
double myNearZ
Definition: DtChannelConfiguration.h:367
Keep the projection matrix fixed, despite window resizes.
Definition: DtChannelConfiguration.h:49
ProjectionUnits myProjectionUnits
Definition: DtChannelConfiguration.h:380
double myCameraPositionOffsetX
Definition: DtChannelConfiguration.h:355
ProjectionUnits
Definition: DtChannelConfiguration.h:39
double myViewportRight
Definition: DtChannelConfiguration.h:351
float myClearColorB
Definition: DtChannelConfiguration.h:347
double myFarZ
Definition: DtChannelConfiguration.h:368
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:26
static const char * UseObserverSensorString
Special sensor name that indicates this channel should use the sensor specified by its observer...
Definition: DtChannelConfiguration.h:37
DT_DLL_vrfutil double mag(double x[3])
float myClearColorR
Definition: DtChannelConfiguration.h:345
float myClearColorA
Definition: DtChannelConfiguration.h:348
Mixin that provides set of keywords functionality.
The base implementation of a configuration.
Definition: DtConfiguration.h:24
std::string mySensorName
Definition: DtChannelConfiguration.h:382
double myViewportTop
Definition: DtChannelConfiguration.h:353
#define DT_SERIALIZE_MEMBER(NAME)
Serialize a Member whose name starts with &#39;my&#39; If your member does not have that name, use Dt_SERIALIZE.
Definition: DtSerialize.h:158
bool myDynamicNearFar
Definition: DtChannelConfiguration.h:372
Definition: DtChannelConfiguration.h:56
ProjectionResizePolicy
Definition: DtChannelConfiguration.h:46
float myLodScale
Definition: DtChannelConfiguration.h:378
bool myDynamicWaterVisibilityEnable
Definition: DtChannelConfiguration.h:390
float myClearColorG
Definition: DtChannelConfiguration.h:346

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)