21 #include <boost/signals.hpp>
31 class DtObserverObjectAgent;
33 class DtAgentManagerInterface;
34 class DtObserverConfiguration;
85 bool hasInitialLocation()
const;
96 int observerMode()
const;
97 void setObserverMode(
int observerMode );
101 double viewResolution()
const;
104 void setViewResolution(
double resolution );
107 double viewMagnification()
const;
110 void setViewMagnification(
double magnficationFactor );
116 bool inUse(
const std::string& channelKeyToIgnore =
"" )
const;
122 void attachToNextElement();
125 void attachToPreviousElement();
139 void setPrimaryAttachment(
const ElementList& element );
145 void setSecondaryAttachment(
const ElementList& objects );
150 void setPartAttachment(
int partId);
153 int partAttachment()
const;
159 bool attached()
const;
162 bool tracking()
const;
165 const ElementList& primaryAttachments()
const;
168 const ElementList& secondaryAttachments()
const;
170 void setHideModelOnAttach(
bool hide );
171 bool hideModelOnAttach()
const;
177 void setAttachmentHas3DCockpit(
bool cockpit);
178 bool attachmentHas3DCockpit()
const;
184 void setOrientToTargetConstraint(
bool orient );
185 bool orientToTargetConstraint()
const;
192 bool haveLastSingleAttached()
const;
205 void setAllowReset(
bool b);
208 bool allowReset()
const;
211 void setAllowAttach(
bool b);
214 bool allowAttach()
const;
217 void setAllowDetach(
bool b);
220 bool allowDetach()
const;
223 void centerOnTerrain();
226 void centerOnTerrain(
const DtUniqueID& terrainPatch );
230 void suppressConstrainToTerrain(
bool trueFalse );
233 void setConstrainToCenter(
bool trueFalse );
234 void toggleConstrainToCenter();
235 bool constrainToCenter()
const;
238 void getLocation(
double &
x,
double &
y,
double&
z )
const;
244 void setLocation(
double x,
double y,
double z );
247 void getOrientation(
double& psi,
double& theta,
double& phi )
const;
250 void getTopographicOrientation(
double& psi,
double& theta,
double& phi )
const;
253 void setOrientation(
double psi,
double theta,
double phi );
256 void setTopographicOrientation(
double psi,
double theta,
double phi );
259 void getOrientation(
double&
x,
double&
y,
double&
z,
double&
w )
const;
262 void setOrientation(
double x,
double y,
double z,
double w );
266 void moveUnit(
const DtVector& direction);
270 void rotateUnit(
const DtTaitBryan& rotation);
273 void getLinearVelocity(
double &
x,
double &
y,
double &
z)
const;
276 void getRotationalVelocity(
double&
x,
double&
y,
double&
z )
const;
279 bool observerObjectMoving()
const;
282 double observerAltitude()
const;
290 void setAttachedLocation(
double x,
double y,
double z );
294 void setAttachedOrientation(
double psi,
double theta,
double phi );
298 void setLocalModelScalingEnabled(
bool enabled );
302 void setLocalModelScalingAmount(
float amount );
310 void setOrbitSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
313 int orbitSpeedGain()
const;
316 int orbitSpeedGainFromSpeed(
double speed )
const;
318 void setRotationSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
319 int rotationSpeedGain()
const;
322 void setLinearSpeedGain(
int gain );
323 int linearSpeedGain()
const;
325 void setLinearScaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
326 int linearScaledSpeedGain()
const;
328 void setLinearUnscaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
329 int linearUnscaledSpeedGain()
const;
331 void setGainPrecision(
int amt,
bool forwardToObserverModeManager =
true );
332 int gainPrecision()
const;
334 void setModelScaleFactor(
double modelScaleFactor,
bool forwardToObserverModeManager =
true );
335 double modelScaleFactor()
const;
338 bool forwardToObserverModeManager =
true );
342 bool forwardToObserverModeManager =
true );
345 void setSpeedScalingAslModeOffset(
double offset,
346 bool forwardToObserverModeManager =
true );
347 double speedScalingAslModeOffset()
const;
350 void setOrbitSpeed(
double speed );
351 double orbitSpeed()
const;
353 void setRotationSpeed(
double speed );
354 double rotationSpeed()
const;
356 void setLinearSpeed(
double speed );
357 double linearSpeed()
const;
362 virtual void toggleFlashlight();
367 virtual void setSensor(
const std::string& sensorName);
373 virtual void disableSensor();
376 virtual void slot_sensorRemoved(
DtSensor* sensor);
381 virtual void synchronize();
424 boost::signal<void (DtObserver*, double offset)>
439 void slot_terrainCleared();
443 void updateGlobalTerrainFlag(
bool flag);
445 double calcLinearSpeed()
const;
446 double calcRotationSpeed()
const;
447 double calcOrbitSpeed()
const;
449 void getObserverOffsetVector(
double&
x,
double&
y,
double&
z )
const;
450 void setObserverOffsetVector(
double x,
double y,
double z );
452 void getObserverRotationOffset(
double&
x,
double&
y,
double&
z,
double&
w )
const;
453 void setObserverRotationOffset(
double x,
double y,
double z,
double w );
455 void getDisplayNamesFromUniqueIds(
const std::vector<DtUniqueID>& idsIn,
456 std::set<std::string>& displayNamesOut)
const;
457 bool getUniqueIdsFromDisplayNames(
const std::set<std::string>& displayNamesIn,
458 std::vector<DtUniqueID>& idsOut)
const;
465 void connectToElementDataSignals();
466 void disconnectFromElementDataSignals();
468 void setModeSpecificObserverObjectData();
474 virtual void slot_onElementAttributesChanged(
477 void slot_observerModeModelSetChanged(
int observerMode );
478 void slot_observerModeSensorChanged(
int observerMode );
479 void slot_observerModeIs2DChanged(
int observerMode );
480 void slot_observerModeKeyMapChanged(
int observerMode );
481 void slot_observerModeGainPrecisionChanged(
int observerMode );
482 void slot_observerModeOrbitSpeedGainChanged(
int observerMode );
483 void slot_observerModeRotationSpeedGainChanged(
int observerMode );
484 void slot_observerModeLinearScaledSpeedGainChanged(
int observerMode );
485 void slot_observerModeLinearUnscaledSpeedGainChanged(
int observerMode );
486 void slot_observerModeModelScaleFactorChanged(
int observerMode );
487 void slot_observerModeModelScaleTypeChanged(
int observerMode );
488 void slot_observerModeSpeedScalingModeChanged(
int observerMode );
489 void slot_observerModeSpeedScalingAslModeOffsetChanged(
int observerMode );
490 void slot_observerModeSettingChanged(
int observerMode,
int settingKey );
491 void slot_observerModeAdded(
int observerMode );
494 void attachTo(
bool afterTrue );