VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtViewStateProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 #include <vrvCore/vrvCore.h>
11 #include <vrvCore/DtUniqueID.h>
12 #include <boost/function.hpp>
13 
14 namespace makVrv
15 {
16  class DtObserver;
17 
24  {
25  public:
26 
27  struct Vec3d { double x; double y; double z; };
28 
29  typedef boost::function<void (DtObserver&)> ObserverAction;
30 
33 
36 
38  ObserverAction makeAbsolute(double x, double y, double z,
39  double psi, double theta, double phi, long ignoreFlags );
40 
42  ObserverAction makeTether(const DtUniqueID& targetId,
43  double x, double y, double z,
44  double psi, double theta, double phi, long ignoreFlags);
45 
47  ObserverAction makeMimic(const DtUniqueID& targetId,
48  double x, double y, double z,
49  double psi, double theta, double phi, long ignoreFlags);
50 
52  ObserverAction makeTrack(const DtUniqueID& targetId,
53  double x, double y, double z, long ignoreFlags);
54 
56  ObserverAction makeTetherTrack(const DtUniqueID& tetherId,
57  const DtUniqueID& trackId, double x, double y, double z, long ignoreFlags);
58 
60  ObserverAction makeMimicTrack(const DtUniqueID& mimicId,
61  const DtUniqueID& trackId, double x, double y, double z, long ignoreFlags);
62 
64  ObserverAction makeFollow(const DtUniqueID& targetId,
65  double x, double y, double z, long ignoreFlags);
66 
68  ObserverAction makeOrbit(const DtUniqueID& targetId, double azimuthRate,
69  double attachX, double attachY, double attachZ,
70  double offsetX, double offsetY, double offsetZ, long ignoreFlags);
71 
73  ObserverAction makeCompass(const DtUniqueID& targetId, double bodyHeading,
74  double headingOffset, double pitch, double pitchOffset, double roll,
75  double radius, long ignoreFlags);
76 
78  ObserverAction makeMove( double geocX, double geocY, double geocZ,
79  double geocPsi, double geocTheta, double geocPhi, int move, int turn,
80  bool reset, long ignoreFlags );
81 
82  protected:
83 
85  static void setAbsolute(double x, double y, double z,
86  double psi, double theta, double phi, long ignoreFlags,
87  DtObserver& obs);
88 
90  static void setTether(const DtUniqueID& targetId,
91  const Vec3d& attachPos,
93  double psi, double theta, double phi, long ignoreFlags,
94  DtObserver& obs);
95 
97  static void setMimic(const DtUniqueID& targetId,
98  const Vec3d& attachPos,
99  //double x, double y, double z,
100  double psi, double theta, double phi, long ignoreFlags,
101  DtObserver& obs);
102 
104  static void setTrack(const DtUniqueID& targetId,
105  double x, double y, double z, long ignoreFlags,
106  DtObserver& obs);
107 
109  static void setTetherTrack(
110  const DtUniqueID& tetherId, const DtUniqueID& trackId,
111  double x, double y, double z, long ignoreFlags,
112  DtObserver& obs);
113 
115  static void setMimicTrack(
116  const DtUniqueID& mimicId, const DtUniqueID& trackId,
117  double x, double y, double z, long ignoreFlags,
118  DtObserver& obs);
119 
121  static void setFollow(const DtUniqueID& targetId,
122  double x, double y, double z, long ignoreFlags,
123  DtObserver& obs);
124 
128  struct RadiusArg
129  {
130  double heading;
131  double pitch;
132  double radius;
133  };
134 
139  static void setOrbit(const DtUniqueID& targetId,
140  double azimuthRate, const Vec3d& attachPos, const Vec3d& offset, long ignoreFlags,
141  DtObserver& obs);
142 
144  static void setCompass(const DtUniqueID& targetId, const RadiusArg& pos,
145  double headingOffset, double pitchOffset, double roll, long ignoreFlags,
146  DtObserver& obs);
147 
149  static void setMove(const Vec3d& geocPos, const Vec3d& geocOrient, int move, int turn,
150  bool reset, long ignoreFlags, DtObserver& obs);
151 
152  };
153 }
Args to modes that define relative position of observer by radius and angles. Mainly exists to avoid ...
Definition: DtViewStateProcessor.h:128
boost::function< void(DtObserver &)> ObserverAction
Definition: DtViewStateProcessor.h:29
Definition: DtViewStateProcessor.h:27
double pitch
Definition: DtViewStateProcessor.h:131
A facade for a DtObserverObject.
Definition: DtObserver.h:38
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double heading
Definition: DtViewStateProcessor.h:130
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Collection of factory methods to produce functions for altering the state of an observer to match som...
Definition: DtViewStateProcessor.h:23
Contains makVrv::DtUniqueID type.
double radius
Definition: DtViewStateProcessor.h:132
double z
Definition: DtViewStateProcessor.h:27
voidpf uLong offset
Definition: ioapi.h:42
Contains DLL export macros.

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)