VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtViewStateProcessor.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtViewStateProcessor.h,v $ $Revision: 1.14 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00012 #pragma once
00013 #include <vrvCore/vrvCore.h>
00014 #include <vrvCore/DtUniqueID.h>
00015 #include <boost/function.hpp>
00016 
00017 namespace makVrv
00018 {
00019    class DtObserver;
00020 
00026    class DT_DLL_VRVCORE DtViewStateProcessor
00027    {
00028    public:
00029 
00030       struct Vec3d { double x; double y; double z; };
00031 
00032       typedef boost::function<void (DtObserver&)> ObserverAction;
00033 
00035       DtViewStateProcessor();
00036 
00038       ~DtViewStateProcessor();
00039 
00041       ObserverAction makeAbsolute(double x, double y, double z,
00042          double psi, double theta, double phi, long ignoreFlags );
00043 
00045       ObserverAction makeTether(const DtUniqueID& targetId,
00046          double x, double y, double z,
00047          double psi, double theta, double phi, long ignoreFlags);
00048 
00050       ObserverAction makeMimic(const DtUniqueID& targetId,
00051          double x, double y, double z,
00052          double psi, double theta, double phi, long ignoreFlags);
00053 
00055       ObserverAction makeTrack(const DtUniqueID& targetId,
00056          double x, double y, double z, long ignoreFlags);
00057 
00059       ObserverAction makeTetherTrack(const DtUniqueID& tetherId,
00060          const DtUniqueID& trackId, double x, double y, double z, long ignoreFlags);
00061 
00063       ObserverAction makeMimicTrack(const DtUniqueID& mimicId,
00064          const DtUniqueID& trackId, double x, double y, double z, long ignoreFlags);
00065 
00067       ObserverAction makeFollow(const DtUniqueID& targetId,
00068          double x, double y, double z, long ignoreFlags);
00069 
00071       ObserverAction makeOrbit(const DtUniqueID& targetId, double azimuthRate,
00072          double attachX, double attachY, double attachZ,
00073          double offsetX, double offsetY, double offsetZ, long ignoreFlags);
00074 
00076       ObserverAction makeCompass(const DtUniqueID& targetId, double bodyHeading,
00077          double headingOffset, double pitch, double pitchOffset, double roll,
00078          double radius, long ignoreFlags);
00079          
00081       ObserverAction makeMove( double geocX, double geocY, double geocZ, 
00082          double geocPsi, double geocTheta, double geocPhi, int move, int turn,
00083          bool reset, long ignoreFlags );
00084 
00085    protected:
00086 
00088       static void setAbsolute(double x, double y, double z, 
00089          double psi, double theta, double phi, long ignoreFlags,
00090          DtObserver& obs);
00091 
00093       static void setTether(const DtUniqueID& targetId,
00094          Vec3d attachPos,
00096          double psi, double theta, double phi, long ignoreFlags,
00097          DtObserver& obs);
00098 
00100       static void setMimic(const DtUniqueID& targetId,
00101          Vec3d attachPos,
00102          //double x, double y, double z,
00103          double psi, double theta, double phi, long ignoreFlags,
00104          DtObserver& obs);
00105 
00107       static void setTrack(const DtUniqueID& targetId,
00108          double x, double y, double z, long ignoreFlags,
00109          DtObserver& obs);
00110 
00112       static void setTetherTrack(
00113          const DtUniqueID& tetherId, const DtUniqueID& trackId,
00114          double x, double y, double z, long ignoreFlags,
00115          DtObserver& obs);
00116 
00118       static void setMimicTrack(
00119          const DtUniqueID& mimicId, const DtUniqueID& trackId,
00120          double x, double y, double z, long ignoreFlags,
00121          DtObserver& obs);
00122 
00124       static void setFollow(const DtUniqueID& targetId,
00125          double x, double y, double z, long ignoreFlags,
00126          DtObserver& obs);
00127 
00131       struct RadiusArg
00132       {
00133          double heading;
00134          double pitch;
00135          double radius;
00136       };
00137 
00142       static void setOrbit(const DtUniqueID& targetId, 
00143          double azimuthRate, Vec3d attachPos, Vec3d offset, long ignoreFlags,
00144          DtObserver& obs);
00145 
00147       static void setCompass(const DtUniqueID& targetId, RadiusArg pos,
00148          double headingOffset, double pitchOffset, double roll, long ignoreFlags,
00149          DtObserver& obs);
00150 
00152       static void setMove( Vec3d geocPos, Vec3d geocTb, int move, int turn,
00153          bool reset, long ignoreFlags, DtObserver& obs);
00154 
00155    };
00156 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)