VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRenderSideCigiFrame.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
14 #include <vrvCore/DtUniqueID.h>
15 #include <vrvCore/DtObserver.h>
16 
17 #include <matrix/vlTaitBryan.h>
18 
19 #include <mutex>
20 
21 namespace makVrv
22 {
23 
45  {
46  public:
47 
50 
52  virtual ~DtRenderSideCigiFrame();
53 
54  public:
55 
57  virtual void reset();
58 
62  virtual void setEntityPosition(unsigned int frameId, DtUniqueID sceneObjectId, const DtVector& position);
63 
67  virtual void setEntityOrientation(unsigned int frameId, DtUniqueID sceneObjectId,
68  const DtTaitBryan& orientation);
69 
73  virtual void setObserverAttachedLocation(unsigned int frameId, const std::string& observerName,
74  const DtVector& attachedPosition);
75 
81  virtual void setObserverUsesBoundingVolumeForAttachedOffsets(unsigned int frameId,
82  const std::string& observerName, bool usesBoundingVolumeForAttachedOffsets);
83 
88  virtual void setObserverAttachType(unsigned int frameId, const std::string& observerName, int attachType);
89 
93  virtual void setObserverPrimaryAttachment(unsigned int frameId, const std::string& observerName,
94  const DtObserver::ElementList& objects);
95 
99  virtual void setObserverPartAttachment(unsigned int frameId, const std::string& observerName, int partId);
100 
104  virtual void setObserverAttachedOrientation(unsigned int frameId, const std::string& observerName,
105  const DtVector& attachedOrientation);
106 
110  virtual void setObserverAttachedX(unsigned int frameId, const std::string& observerName, double attachedX);
111 
115  virtual void setObserverAttachedY(unsigned int frameId, const std::string& observerName, double attachedY);
116 
120  virtual void setObserverAttachedZ(unsigned int frameId, const std::string& observerName, double attachedZ);
121 
125  virtual void setObserverAttachedYaw(unsigned int frameId, const std::string& observerName, double attachedYaw);
126 
130  virtual void setObserverAttachedPitch(unsigned int frameId, const std::string& observerName, double attachedPitch);
131 
135  virtual void setObserverAttachedRoll(unsigned int frameId, const std::string& observerName, double attachedRoll);
136 
138  virtual void processFrameNumber(unsigned int frameId);
139 
140  protected:
141 
144  {
146  : myObserverAttachedPartId(0)
147  , myObserverAttachType(DtObserverObject::AttachTypeTether)
148  , myObserverUsesBoundingVolumeForAttachedOffsets(false)
149  {
150  // intentional noop
151  }
152 
153  boost::optional<DtVector> myAttachedPosition;
154  boost::optional<DtVector> myAttachedOrientation;
158  boost::optional<DtObserver::ElementList> myObserverPrimaryAttachment;
159 
160  boost::optional<double> myObserverAttachedX;
161  boost::optional<double> myObserverAttachedY;
162  boost::optional<double> myObserverAttachedZ;
163  boost::optional<double> myObserverAttachedYaw;
164  boost::optional<double> myObserverAttachedPitch;
165  boost::optional<double> myObserverAttachedRoll;
166  };
167 
170  {
171  boost::optional<DtVector> myEntityPosition;
172  boost::optional<DtTaitBryan> myEntityOrientation;
173  };
174 
177  {
178  std::map<std::string, DtCigiFrameObserverValues> myObserverNameToObserverValuesMap;
179  std::map<DtUniqueID, DtCigiFrameSceneObjectValues> mySceneObjectIdToSceneObjectValuesMap;
180  };
181 
182  protected:
183 
184  DtObserverObject* findObserverObjectByName(const std::string& observerName) const;
185 
186  protected:
189  std::map<unsigned int, DtCigiFrameValues> myFrameIdToValuesMap;
190  std::mutex myMapMutex;
191  };
192 }
DtCigiFrameObserverValues()
Definition: DtRenderSideCigiFrame.h:145
boost::optional< double > myObserverAttachedYaw
Definition: DtRenderSideCigiFrame.h:163
std::mutex myMapMutex
Definition: DtRenderSideCigiFrame.h:190
std::vector< DtElementID > ElementList
Definition: DtObserver.h:42
A render-side CIGI Frame is an object who is responsible for processing CIGI requests, belonging to the same CIGI frame, in the same render frame.
Definition: DtRenderSideCigiFrame.h:44
boost::optional< DtVector > myAttachedOrientation
Definition: DtRenderSideCigiFrame.h:154
std::map< std::string, DtCigiFrameObserverValues > myObserverNameToObserverValuesMap
Definition: DtRenderSideCigiFrame.h:178
std::map< unsigned int, DtCigiFrameValues > myFrameIdToValuesMap
Definition: DtRenderSideCigiFrame.h:189
boost::optional< DtVector > myAttachedPosition
Definition: DtRenderSideCigiFrame.h:153
boost::optional< DtVector > myEntityPosition
Definition: DtRenderSideCigiFrame.h:171
boost::optional< double > myObserverAttachedRoll
Definition: DtRenderSideCigiFrame.h:165
std::map< DtUniqueID, DtCigiFrameSceneObjectValues > mySceneObjectIdToSceneObjectValuesMap
Definition: DtRenderSideCigiFrame.h:179
boost::optional< DtObserver::ElementList > myObserverPrimaryAttachment
Definition: DtRenderSideCigiFrame.h:158
Contains DLL export macros.
boost::optional< double > myObserverAttachedX
Definition: DtRenderSideCigiFrame.h:160
int myObserverAttachedPartId
Definition: DtRenderSideCigiFrame.h:155
boost::optional< DtTaitBryan > myEntityOrientation
Definition: DtRenderSideCigiFrame.h:172
Contains makVrv::DtObserver class.
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:35
Supported Properties related to a Scene Object that can be present in a CIGI Frame.
Definition: DtRenderSideCigiFrame.h:169
Supported properties related to am Observer that can be present in a CIGI Frame.
Definition: DtRenderSideCigiFrame.h:143
boost::optional< double > myObserverAttachedPitch
Definition: DtRenderSideCigiFrame.h:164
bool myObserverUsesBoundingVolumeForAttachedOffsets
Definition: DtRenderSideCigiFrame.h:157
DtObserverObject::AttachType myObserverAttachType
Definition: DtRenderSideCigiFrame.h:156
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::optional< double > myObserverAttachedY
Definition: DtRenderSideCigiFrame.h:161
All the supported properties that can be present in a CIGI frame.
Definition: DtRenderSideCigiFrame.h:176
DtUniqueID myUniqueId
Definition: DtRenderSideCigiFrame.h:188
DtDe & myDe
Definition: DtRenderSideCigiFrame.h:187
Contains makVrv::DtUniqueID type.
boost::optional< double > myObserverAttachedZ
Definition: DtRenderSideCigiFrame.h:162
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:76
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
AttachType
Definition: DtObserverObject.h:42

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)