21 #include <boost/signals.hpp>
31 class DtObserverObjectAgent;
33 class DtAgentManagerInterface;
34 class DtObserverConfiguration;
79 bool hasInitialLocation()
const;
86 int observerMode()
const;
89 void setObserverMode(
int observerMode );
92 double viewResolution()
const;
95 void setViewResolution(
double resolution );
98 double viewMagnification()
const;
101 void setViewMagnification(
double magnficationFactor );
105 bool acceptingViewControl()
const;
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 );
145 void setPartAttachment(
int partId);
148 int partAttachment()
const;
154 bool attached()
const;
157 bool tracking()
const;
160 const ElementList& primaryAttachments()
const;
163 const ElementList& secondaryAttachments()
const;
165 void setHideModelOnAttach(
bool hide );
166 bool hideModelOnAttach()
const;
171 void setOrientToTargetConstraint(
bool orient );
172 bool orientToTargetConstraint()
const;
179 bool haveLastSingleAttached()
const;
192 void setAllowReset(
bool b);
195 bool allowReset()
const;
198 void setAllowAttach(
bool b);
201 bool allowAttach()
const;
204 void setAllowDetach(
bool b);
207 bool allowDetach()
const;
210 void centerOnTerrain();
213 void centerOnTerrain(
const DtUniqueID& terrainPatch );
217 void suppressConstrainToTerrain(
bool trueFalse );
220 void setConstrainToCenter(
bool trueFalse );
221 void toggleConstrainToCenter();
222 bool constrainToCenter()
const;
225 void getLocation(
double &
x,
double &
y,
double&
z )
const;
231 void setLocation(
double x,
double y,
double z );
234 void getOrientation(
double& psi,
double& theta,
double& phi )
const;
237 void setOrientation(
double psi,
double theta,
double phi );
240 void getOrientation(
double&
x,
double&
y,
double&
z,
double&
w )
const;
243 void setOrientation(
double x,
double y,
double z,
double w );
247 void moveUnit(
const DtVector& direction);
251 void rotateUnit(
const DtTaitBryan& rotation);
254 void getLinearVelocity(
double &
x,
double &
y,
double &
z)
const;
257 void getRotationalVelocity(
double&
x,
double&
y,
double&
z )
const;
260 bool observerObjectMoving()
const;
263 double observerAltitude()
const;
271 void setAttachedLocation(
double x,
double y,
double z );
275 void setAttachedOrientation(
double psi,
double theta,
double phi );
279 void setLocalModelScalingEnabled(
bool enabled );
283 void setLocalModelScalingAmount(
float amount );
291 void setOrbitSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
294 int orbitSpeedGain()
const;
297 int orbitSpeedGainFromSpeed(
double speed )
const;
299 void setRotationSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
300 int rotationSpeedGain()
const;
303 void setLinearSpeedGain(
int gain );
304 int linearSpeedGain()
const;
306 void setLinearScaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
307 int linearScaledSpeedGain()
const;
309 void setLinearUnscaledSpeedGain(
int gain,
bool forwardToObserverModeManager =
true );
310 int linearUnscaledSpeedGain()
const;
312 void setGainPrecision(
int amt,
bool forwardToObserverModeManager =
true );
313 int gainPrecision()
const;
315 void setModelScaleFactor(
double modelScaleFactor,
bool forwardToObserverModeManager =
true );
316 double modelScaleFactor()
const;
319 bool forwardToObserverModeManager =
true );
322 void setOrbitSpeed(
double speed );
323 double orbitSpeed()
const;
325 void setRotationSpeed(
double speed );
326 double rotationSpeed()
const;
328 void setLinearSpeed(
double speed );
329 double linearSpeed()
const;
336 virtual void setSensor(
const std::string& sensorName);
342 virtual void disableSensor();
345 virtual void slot_sensorRemoved(
DtSensor* sensor);
350 virtual void synchronize();
397 void slot_terrainCleared();
401 void updateGlobalTerrainFlag(
bool flag);
403 double calcLinearSpeed()
const;
404 double calcRotationSpeed()
const;
405 double calcOrbitSpeed()
const;
407 void getObserverOffsetVector(
double&
x,
double&
y,
double&
z )
const;
408 void setObserverOffsetVector(
double x,
double y,
double z );
410 void getObserverRotationOffset(
double&
x,
double&
y,
double&
z,
double&
w )
const;
411 void setObserverRotationOffset(
double x,
double y,
double z,
double w );
413 void getDisplayNamesFromUniqueIds(
const std::vector<DtUniqueID>& idsIn,
414 std::set<std::string>& displayNamesOut)
const;
415 bool getUniqueIdsFromDisplayNames(
const std::set<std::string>& displayNamesIn,
416 std::vector<DtUniqueID>& idsOut)
const;
423 void connectToElementDataSignals();
424 void disconnectFromElementDataSignals();
426 void setModeSpecificObserverObjectData();
432 virtual void slot_onElementAttributesChanged(
435 void slot_observerModeModelSetChanged(
int observerMode );
436 void slot_observerModeSensorChanged(
int observerMode );
437 void slot_observerModeIs2DChanged(
int observerMode );
438 void slot_observerModeKeyMapChanged(
int observerMode );
439 void slot_observerModeGainPrecisionChanged(
int observerMode );
440 void slot_observerModeOrbitSpeedGainChanged(
int observerMode );
441 void slot_observerModeRotationSpeedGainChanged(
int observerMode );
442 void slot_observerModeLinearScaledSpeedGainChanged(
int observerMode );
443 void slot_observerModeLinearUnscaledSpeedGainChanged(
int observerMode );
444 void slot_observerModeModelScaleFactorChanged(
int observerMode );
445 void slot_observerModeModelScaleTypeChanged(
int observerMode );
446 void slot_observerModeSettingChanged(
int observerMode,
int settingKey );
447 void slot_observerModeAdded(
int observerMode );
450 void attachTo(
bool afterTrue );