VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRibbonModelInstance.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>
13 
15 #include <vrvOsg/DtOsgRibbon.h>
16 
19 
21 
22 #include <matrix/vlVector.h>
23 
24 #include <osg/ref_ptr>
25 
26 namespace osg
27 {
28  class Geode;
29  class Group;
30 }
31 
32 namespace makVrv
33 {
34 
35  class DtOsgRibbon;
36  class DtSceneObject;
37 
38  class DtRibbonModelInstance;
39 
40  template <>
41  inline const char* modelInstanceClassName<DtRibbonModelInstance>(void) { return "DtRibbonModelInstance"; }
42 
43  template <>
44  inline const char* modelInstanceObjectClass<DtRibbonModelInstance>(void) { return "DtOsgRibbonModel"; }
45 
47 
52  {
53  public:
54 
56  virtual ~DtRibbonModelInstance();
57 
58  protected:
59 
61 
64 
65  private:
72 
73  public:
77  virtual bool realize(const DtModelDefinition& definition );
78 
80  virtual void addToConnector( DtOsgSceneConnector* connector );
81 
82  virtual void updateRibbonWidth();
83 
85  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
86 
88  virtual void setParentSceneObject( const DtUniqueID& sceneObjID );
89 
92  virtual DtSceneObject* parentSceneObject();
93 
96  virtual void setOcclusionEnabled( bool enabled );
97 
100  virtual void setHeightLinesEnabled(bool enabled);
101 
103  virtual void setHeightLinesColor(float r, float g, float b, float a);
104 
107  virtual void setHeightLinesSpacing(float spacing);
108 
110  virtual void setHeightLinesModelSetId(DtModelSetId modelSetId);
111 
113  virtual void setRibbonSpacing( float spacing );
114 
119  virtual void setRibbonLength( int maxSamples );
120 
124  virtual void setRibbonTimeout(float duration);
125 
127  virtual void setColor( const osg::Vec4& color );
128 
130  virtual void setVisible( bool isVisible ) {}
131 
133  virtual void update();
134 
136  osg::Node* sensorNode();
137 
139  const osg::Node* sensorNode() const;
140 
141  protected:
143  virtual osg::Node* findFromCache( DtModelDefinition& definition );
144 
145  protected:
146 
151  float myHeightLinesColor[4];
158  osg::Vec4 myColor;
159 
160  boost::signalslib::connection myBoundingVolumeConnection;
161  boost::signalslib::connection myParentSceneObjectConnection;
162 
163  };
164 }
bool myHeightLinesEnabled
Definition: DtRibbonModelInstance.h:150
const char * modelInstanceObjectClass< DtRibbonModelInstance >(void)
Definition: DtRibbonModelInstance.h:44
boost::signalslib::connection myBoundingVolumeConnection
Definition: DtRibbonModelInstance.h:160
boost::signalslib::connection myParentSceneObjectConnection
Definition: DtRibbonModelInstance.h:161
float myRibbonTimeout
Definition: DtRibbonModelInstance.h:156
DtUniqueID myParentId
Definition: DtRibbonModelInstance.h:148
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
friend DtRibbonModelInstanceCreator
Definition: DtRibbonModelInstance.h:60
Definition: DtTemplatedModelInstanceCreator.h:32
int myRibbonLength
Definition: DtRibbonModelInstance.h:155
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.
DtOsgSceneConnector is used by models to create an OSG position/orientation transform so that it can ...
Definition: DtOsgSceneConnector.h:77
A model instance creates a ribbon model instance effect from a model definition.
Definition: DtRibbonModelInstance.h:51
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
virtual void setVisible(bool isVisible)
no-op
Definition: DtRibbonModelInstance.h:130
const char * modelInstanceClassName< DtRibbonModelInstance >(void)
Definition: DtRibbonModelInstance.h:41
osg::ref_ptr< DtOsgRibbon > myRibbon
Definition: DtRibbonModelInstance.h:147
Contains the DtTemplatedModelInstanceCreator class declaration.
bool myOcclusionEnabled
Definition: DtRibbonModelInstance.h:149
float myRibbonSpacing
Definition: DtRibbonModelInstance.h:154
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
float myHeightLinesSpacing
Definition: DtRibbonModelInstance.h:152
DtTemplatedModelInstanceCreator< DtRibbonModelInstance > DtRibbonModelInstanceCreator
Definition: DtRibbonModelInstance.h:46
Base class to provide boost signal/slot management.
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
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
Base class for ribbons.
DtModelSetId myHeightLinesModelSetId
Definition: DtRibbonModelInstance.h:153
bool myColorSet
Definition: DtRibbonModelInstance.h:157
DtModelSetId
Definition: DtModelSetEnums.h:19
osg::Vec4 myColor
Definition: DtRibbonModelInstance.h:158
Contains various enum classes relating to model sets.

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)