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 virtual DtVector observerPlatformFront()
const;
273 virtual DtVector observerPlatformUp()
const;
277 virtual DtVector observerPlatformRight()
const;
281 virtual DtVector observerFront()
const;
284 virtual DtVector observerUp()
const;
287 virtual DtVector observerRight()
const;
291 void moveUnit(
const DtVector& direction);
295 void rotateUnit(
const DtTaitBryan& rotation);
298 void getLinearVelocity(
double &
x,
double &
y,
double &
z)
const;
301 void getRotationalVelocity(
double&
x,
double&
y,
double&
z )
const;
304 bool observerObjectMoving()
const;
307 double observerAltitude()
const;
315 void setAttachedLocation(
double x,
double y,
double z );
319 void setAttachedOrientation(
double psi,
double theta,
double phi );
323 void setLocalModelScalingEnabled(
bool enabled );
327 void setLocalModelScalingAmount(
float amount );
335 void setOrbitSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
338 int orbitSpeedGain()
const;
341 int orbitSpeedGainFromSpeed(
double speed )
const;
343 void setRotationSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
344 int rotationSpeedGain()
const;
347 void setLinearSpeedGain(
int gain );
348 int linearSpeedGain()
const;
350 void setLinearScaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
351 int linearScaledSpeedGain()
const;
353 void setLinearUnscaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
354 int linearUnscaledSpeedGain()
const;
356 void setGainPrecision(
int amt,
bool forwardToObserverModeManager =
true );
357 int gainPrecision()
const;
359 void setModelScaleFactor(
double modelScaleFactor,
bool forwardToObserverModeManager =
true );
360 double modelScaleFactor()
const;
363 bool forwardToObserverModeManager =
true );
367 bool forwardToObserverModeManager =
true );
370 void setSpeedScalingMslModeOffset(
double offset,
371 bool forwardToObserverModeManager =
true );
372 double speedScalingMslModeOffset()
const;
374 void setOrbitSpeed(
double speed );
375 double orbitSpeed()
const;
377 void setRotationSpeed(
double speed );
378 double rotationSpeed()
const;
380 void setLinearSpeed(
double speed );
381 double linearSpeed()
const;
386 virtual void toggleFlashlight();
392 virtual bool setCameraShake(
const std::string& shakeType);
396 virtual void setCameraShakeRotation(
const DtQuat& rotQuat)
const;
401 virtual void setSensor(
const std::string& sensorName);
407 virtual void disableSensor();
410 virtual void slot_sensorRemoved(
DtSensor* sensor);
415 virtual void synchronize();
458 boost::signal<void (DtObserver*, double offset)>
473 void slot_terrainCleared();
477 void updateGlobalTerrainFlag(
bool flag);
479 double calcLinearSpeed()
const;
480 double calcRotationSpeed()
const;
481 double calcOrbitSpeed()
const;
483 void getObserverOffsetVector(
double&
x,
double&
y,
double&
z )
const;
484 void setObserverOffsetVector(
double x,
double y,
double z );
486 void getObserverRotationOffset(
double&
x,
double&
y,
double&
z,
double&
w )
const;
487 void setObserverRotationOffset(
double x,
double y,
double z,
double w );
489 void getDisplayNamesFromUniqueIds(
const std::vector<DtUniqueID>& idsIn,
490 std::set<std::string>& displayNamesOut)
const;
491 bool getUniqueIdsFromDisplayNames(
const std::set<std::string>& displayNamesIn,
492 std::vector<DtUniqueID>& idsOut)
const;
499 void connectToElementDataSignals();
500 void disconnectFromElementDataSignals();
502 void setModeSpecificObserverObjectData();
508 virtual void slot_onElementAttributesChanged(
513 void slot_completeAttachment();
515 void slot_observerModeModelSetChanged(
int observerMode );
516 void slot_observerModeSensorChanged(
int observerMode );
517 void slot_observerModeIs2DChanged(
int observerMode );
518 void slot_observerModeKeyMapChanged(
int observerMode );
519 void slot_observerModeGainPrecisionChanged(
int observerMode );
520 void slot_observerModeOrbitSpeedGainChanged(
int observerMode );
521 void slot_observerModeRotationSpeedGainChanged(
int observerMode );
522 void slot_observerModeLinearScaledSpeedGainChanged(
int observerMode );
523 void slot_observerModeLinearUnscaledSpeedGainChanged(
int observerMode );
524 void slot_observerModeModelScaleFactorChanged(
int observerMode );
525 void slot_observerModeModelScaleTypeChanged(
int observerMode );
526 void slot_observerModeSpeedScalingModeChanged(
int observerMode );
527 void slot_observerModeSpeedScalingMslModeOffsetChanged(
int observerMode );
528 void slot_observerModeSettingChanged(
int observerMode,
int settingKey );
529 void slot_observerModeAdded(
int observerMode );
532 void attachTo(
bool afterTrue );