15 #include <matrix/vlVector.h>
24 class DtObserverObjectAgent;
26 class DtAgentManagerInterface;
27 class DtObserverConfiguration;
80 bool hasInitialLocation()
const;
91 int observerMode()
const;
92 void setObserverMode(
int observerMode );
96 double viewResolution()
const;
99 void setViewResolution(
double resolution );
102 double viewMagnification()
const;
105 void setViewMagnification(
double magnficationFactor );
111 bool inUse(
const std::string& channelKeyToIgnore =
"" )
const;
117 void attachToNextElement();
120 void attachToPreviousElement();
134 void setPrimaryAttachment(
const ElementList& element );
140 void setSecondaryAttachment(
const ElementList& objects );
144 void setLocationTrackAttachment(
double x,
double y,
double z );
148 void getLocationTrackAttachment(
double&
x,
double&
y,
double&
z )
const;
153 void setPartAttachment(
int partId);
156 int partAttachment()
const;
162 bool attached()
const;
165 bool tracking()
const;
168 const ElementList& primaryAttachments()
const;
171 const ElementList& secondaryAttachments()
const;
173 void setHideModelOnAttach(
bool hide );
174 bool hideModelOnAttach()
const;
180 void setAttachmentHas3DCockpit(
bool cockpit);
181 bool attachmentHas3DCockpit()
const;
187 void setOrientToTargetConstraint(
bool orient );
188 bool orientToTargetConstraint()
const;
195 bool haveLastSingleAttached()
const;
208 void setAllowReset(
bool b);
211 bool allowReset()
const;
214 void setAllowAttach(
bool b);
217 bool allowAttach()
const;
220 void setAllowDetach(
bool b);
223 bool allowDetach()
const;
226 void centerOnTerrain();
229 void centerOnTerrain(
const DtUniqueID& terrainPatch );
233 void suppressConstrainToTerrain(
bool trueFalse );
236 void setConstrainToCenter(
bool trueFalse );
237 void toggleConstrainToCenter();
238 bool constrainToCenter()
const;
241 void getLocation(
double &
x,
double &
y,
double&
z )
const;
247 void setLocation(
double x,
double y,
double z );
250 void getOrientation(
double& psi,
double& theta,
double& phi )
const;
253 void getTopographicOrientation(
double& psi,
double& theta,
double& phi )
const;
256 void setOrientation(
double psi,
double theta,
double phi );
259 void setTopographicOrientation(
double psi,
double theta,
double phi );
262 void getOrientation(
double&
x,
double&
y,
double&
z,
double&
w )
const;
265 void setOrientation(
double x,
double y,
double z,
double w );
269 void moveUnit(
const DtVector& direction);
273 void rotateUnit(
const DtTaitBryan& rotation);
276 void getLinearVelocity(
double &
x,
double &
y,
double &
z)
const;
279 void getRotationalVelocity(
double&
x,
double&
y,
double&
z )
const;
282 bool observerObjectMoving()
const;
285 double observerAltitude()
const;
293 void setAttachedLocation(
double x,
double y,
double z );
297 void setAttachedOrientation(
double psi,
double theta,
double phi );
301 void setLocalModelScalingEnabled(
bool enabled );
305 void setLocalModelScalingAmount(
float amount );
313 void setOrbitSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
316 int orbitSpeedGain()
const;
319 int orbitSpeedGainFromSpeed(
double speed )
const;
321 void setRotationSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
322 int rotationSpeedGain()
const;
325 void setLinearSpeedGain(
int gain );
326 int linearSpeedGain()
const;
328 void setLinearScaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
329 int linearScaledSpeedGain()
const;
331 void setLinearUnscaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
332 int linearUnscaledSpeedGain()
const;
334 void setGainPrecision(
int amt,
bool forwardToObserverModeManager =
true );
335 int gainPrecision()
const;
337 void setModelScaleFactor(
double modelScaleFactor,
bool forwardToObserverModeManager =
true );
338 double modelScaleFactor()
const;
341 bool forwardToObserverModeManager =
true );
345 bool forwardToObserverModeManager =
true );
348 void setSpeedScalingMslModeOffset(
double offset,
349 bool forwardToObserverModeManager =
true );
350 double speedScalingMslModeOffset()
const;
352 void setOrbitSpeed(
double speed );
353 double orbitSpeed()
const;
355 void setRotationSpeed(
double speed );
356 double rotationSpeed()
const;
358 void setLinearSpeed(
double speed );
359 double linearSpeed()
const;
364 virtual void toggleFlashlight();
370 virtual bool setCameraShake(
const std::string& shakeType);
374 virtual void setCameraShakeRotation(
const DtQuat& rotQuat)
const;
379 virtual void setSensor(
const std::string& sensorName);
385 virtual void disableSensor();
388 virtual void slot_sensorRemoved(
DtSensor* sensor);
393 virtual void synchronize();
436 boost::signal<void (DtObserver*, double offset)>
451 void slot_terrainCleared();
455 void updateGlobalTerrainFlag(
bool flag);
457 double calcLinearSpeed()
const;
458 double calcRotationSpeed()
const;
459 double calcOrbitSpeed()
const;
461 void getObserverOffsetVector(
double&
x,
double&
y,
double&
z )
const;
462 void setObserverOffsetVector(
double x,
double y,
double z );
464 void getObserverRotationOffset(
double&
x,
double&
y,
double&
z,
double&
w )
const;
465 void setObserverRotationOffset(
double x,
double y,
double z,
double w );
467 void getDisplayNamesFromUniqueIds(
const std::vector<DtUniqueID>& idsIn,
468 std::set<std::string>& displayNamesOut)
const;
469 bool getUniqueIdsFromDisplayNames(
const std::set<std::string>& displayNamesIn,
470 std::vector<DtUniqueID>& idsOut)
const;
477 void connectToElementDataSignals();
478 void disconnectFromElementDataSignals();
480 void setModeSpecificObserverObjectData();
486 virtual void slot_onElementAttributesChanged(
491 void slot_completeAttachment();
493 void slot_observerModeModelSetChanged(
int observerMode );
494 void slot_observerModeSensorChanged(
int observerMode );
495 void slot_observerModeIs2DChanged(
int observerMode );
496 void slot_observerModeKeyMapChanged(
int observerMode );
497 void slot_observerModeGainPrecisionChanged(
int observerMode );
498 void slot_observerModeOrbitSpeedGainChanged(
int observerMode );
499 void slot_observerModeRotationSpeedGainChanged(
int observerMode );
500 void slot_observerModeLinearScaledSpeedGainChanged(
int observerMode );
501 void slot_observerModeLinearUnscaledSpeedGainChanged(
int observerMode );
502 void slot_observerModeModelScaleFactorChanged(
int observerMode );
503 void slot_observerModeModelScaleTypeChanged(
int observerMode );
504 void slot_observerModeSpeedScalingModeChanged(
int observerMode );
505 void slot_observerModeSpeedScalingMslModeOffsetChanged(
int observerMode );
506 void slot_observerModeSettingChanged(
int observerMode,
int settingKey );
507 void slot_observerModeAdded(
int observerMode );
510 void attachTo(
bool afterTrue );