VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEllipsoidModelInstance.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 <vrvOsg/vrvOsg.h>
14 
16 
17 #include <osg/Geode>
18 #include <osg/MatrixTransform>
19 #include <osg/ShapeDrawable>
20 #include <osg/Material>
21 
22 namespace makVrv
23 {
27  {
28  public:
29 
32 
34  virtual ~DtEllipsoidModelInstance();
35 
36  private:
37 
40 
43 
46 
47  public:
48 
50  virtual void setDimensions(float length, float width, float height);
51 
53  virtual void dimensions(float& length, float& width, float& height);
54 
56  virtual void setColor(float r,float g,float b,float a);
57 
59  virtual void setColor(const osg::Vec4& color);
60 
62  const osg::Vec4& color() const;
63 
65  virtual void setLightingEnabled( bool enabled );
66 
70  virtual bool realize(const DtModelDefinition& definition);
71 
73  virtual void setVisible(bool isVisible) {}
74 
75  protected:
76 
78  virtual void updateColors();
79 
81  virtual void updateTransform();
82 
84  void createBlendedGeodes();
85 
87  void createOpaqueGeode();
88 
90  void createSingleSidedBlendedGeode();
91 
92  protected:
93 
95  osg::Vec3 myDimensions;
96  osg::Vec4 myColor;
97 
111 
113  };
114 
116 
117  template <>
118  inline const char* modelInstanceClassName<DtEllipsoidModelInstance>(void) { return "DtEllipsoidModelInstance"; }
119 
120  template <>
121  inline const char* modelInstanceObjectClass<DtEllipsoidModelInstance>(void) { return "DtModel"; }
122 }
123 
virtual void setVisible(bool isVisible)
no-op
Definition: DtEllipsoidModelInstance.h:73
osg::ref_ptr< osg::ShapeDrawable > myEllipsoidDrawable
Definition: DtEllipsoidModelInstance.h:98
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: DtTemplatedModelInstanceCreator.h:32
osg::ref_ptr< osg::Geode > myGeode
Geode to draw the geometry when no blending is required.
Definition: DtEllipsoidModelInstance.h:100
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
Contains makVrv::DtOsgModelInstance class.
osg::Vec4 myColor
Definition: DtEllipsoidModelInstance.h:96
The model instance to draw an ellipsoid.
Definition: DtEllipsoidModelInstance.h:26
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
Contains the DtTemplatedModelInstanceCreator class declaration.
DtTemplatedModelInstanceCreator< DtEllipsoidModelInstance > DtEllipsoidModelInstanceCreator
Definition: DtEllipsoidModelInstance.h:115
osg::ref_ptr< osg::MatrixTransform > myTransform
My tranform.
Definition: DtEllipsoidModelInstance.h:108
osg::Vec3 myDimensions
The current parameter set.
Definition: DtEllipsoidModelInstance.h:95
osg::ref_ptr< osg::Geode > myBlendedGeode
Geode to draw the geometry when single-sided blending is required.
Definition: DtEllipsoidModelInstance.h:102
bool mySingleSided
Definition: DtEllipsoidModelInstance.h:112
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
osg::ref_ptr< osg::Material > myMaterial
My Material.
Definition: DtEllipsoidModelInstance.h:110
const char * modelInstanceObjectClass< DtEllipsoidModelInstance >(void)
Definition: DtEllipsoidModelInstance.h:121
Contains DLL export macros.
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::ref_ptr< osg::Geode > myBackGeode
Geode to draw the geometry with frontface culling.
Definition: DtEllipsoidModelInstance.h:106
osg::ref_ptr< osg::Geode > myFrontGeode
Geode to draw the geometry with backface culling.
Definition: DtEllipsoidModelInstance.h:104
const char * modelInstanceClassName< DtEllipsoidModelInstance >(void)
Definition: DtEllipsoidModelInstance.h:118

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)