VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDecalModelInstance.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 
13 
15 
16 #include <osg/BoundingSphere>
17 
18 namespace osg
19 {
20  class Geode;
21  class Group;
22 }
23 
24 namespace makVrv
25 {
27 
29 
30  template <>
31  inline const char* modelInstanceClassName<DtDecalModelInstance>(void) { return "DtDecalModelInstance"; }
32 
33  template <>
34  inline const char* modelInstanceObjectClass<DtDecalModelInstance>(void) { return "DtOsgDecalModel"; }
35 
36 
37  class DtOsgRibbon;
38  class DtSceneObject;
39 
44  {
46 
47  public:
48 
50  virtual ~DtDecalModelInstance();
51 
52  private:
53 
56 
59 
61  DtDecalModelInstance &operator=(const DtDecalModelInstance&);
62 
63  public:
64 
68  virtual bool realize(const DtModelDefinition& definition );
69 
71  virtual void addToConnector( DtOsgSceneConnector* connector );
72 
74  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
75 
77  virtual void setParentSceneObject( const DtUniqueID& sceneObjID );
78 
81  virtual DtSceneObject* parentSceneObject();
82 
86  virtual void setOcclusionEnabled( bool enabled );
87 
89  virtual void setColor( const osg::Vec4& color );
90 
92  virtual void setVisible( bool isVisible ) {}
93 
95  virtual void update();
96 
99  virtual void setNewParticleVisible( bool enabled );
100 
105  virtual void setPositionOffset(const osg::Vec3& offset);
106 
107  protected:
108 
110  DtDecalModelInstance( DtDe& de );
111 
113  virtual DtOsgRibbon* createRibbonEffect( const osg::Vec3& pointA,
114  const osg::Vec3& pointB );
115 
117  virtual osg::Node* findFromCache( DtModelDefinition& definition );
118 
119  protected:
120 
125  osg::Vec4 myColor;
127  osg::Vec3 myPositionOffset;
128 
129  // When the class is destructed, the parent scene object may or may not
130  // exist. Using a separate connection variable makes it possible to
131  // 'disconnect' even if the scene object has been deleted.
132  boost::signalslib::connection mySceneObjectConnection;
133 
134  };
135 }
const char * modelInstanceClassName< DtDecalModelInstance >(void)
Definition: DtDecalModelInstance.h:31
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: DtTemplatedModelInstanceCreator.h:32
virtual void setVisible(bool isVisible)
no-op
Definition: DtDecalModelInstance.h:92
osg::Vec3 myPositionOffset
Definition: DtDecalModelInstance.h:127
DtTemplatedModelInstanceCreator< DtDecalModelInstance > DtDecalModelInstanceCreator
Definition: DtDecalModelInstance.h:26
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
friend DtDecalModelInstanceCreator
Definition: DtDecalModelInstance.h:45
bool myNewParticleVisible
Definition: DtDecalModelInstance.h:126
bool myColorSet
Definition: DtDecalModelInstance.h:124
bool myOcclusionEnabled
Definition: DtDecalModelInstance.h:123
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.
osg::ref_ptr< DtOsgRibbon > myRibbon
Definition: DtDecalModelInstance.h:121
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtUniqueID myParentId
Definition: DtDecalModelInstance.h:122
Base class for OSG ribbon implementations.
Definition: DtOsgRibbon.h:27
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
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
voidpf uLong offset
Definition: ioapi.h:42
boost::signalslib::connection mySceneObjectConnection
Definition: DtDecalModelInstance.h:132
A model instance creates a decal ribbon model instance effect from a model definition.
Definition: DtDecalModelInstance.h:43
osg::Vec4 myColor
Definition: DtDecalModelInstance.h:125
const char * modelInstanceObjectClass< DtDecalModelInstance >(void)
Definition: DtDecalModelInstance.h:34

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)