00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef INC_GRE_3DPATH_H
00033 #define INC_GRE_3DPATH_H
00034
00035 #ifndef INC_GRE_BASE_H
00036 #include <gre/base.h>
00037 #endif
00038
00039 #ifndef INC_MI32_POINT_H
00040 #include <mi32/point.h>
00041 #endif
00042
00043
00044 #ifndef GENERATING_DOXYGEN_OUTPUT
00045 struct MDISP3DPATHANGLE {
00046 double Roll;
00047 double Pitch;
00048 double Yaw;
00049 };
00050
00051 struct MDISP3DPATHPOINT {
00052 double Time;
00053 double TurnTime;
00054 DPOINT3D ViewPos;
00055 DPOINT3D ViewDir;
00056 DPOINT3D ViewUp;
00057 DPOINT3D LinearVel;
00058 DPOINT3D LinearAcc;
00059 MDISP3DPATHANGLE AngularVel;
00060 MDISP3DPATHANGLE AngularAcc;
00061 };
00062
00063 struct MDISP3DPATHSEGMENT {
00064 UINT32 NumPoints;
00065 UINT32 flags;
00066 UINT8 ZMode;
00067 UINT8 SpeedMode;
00068 UINT8 ViewElevationMode;
00069 double ZValue;
00070 double SpeedValue;
00071 double ViewElevationAngle;
00072 double StartAngle;
00073 double EndAngle;
00074 DPOINT3D Center;
00075 };
00076
00077 struct MDISP3DPATHVIEW {
00078 double StereoDistance0;
00079 double StereoDepthScale;
00080 double ZScale;
00081 double BaseElevation;
00082
00083 };
00084
00085 struct _MDISP3DPATH {
00086 UINT32 NumSegments;
00087 UINT32 MaxSegments;
00088 MDISP3DPATHSEGMENT *Segment;
00089 UINT32 NumPoints;
00090 UINT32 MaxPoints;
00091 MDISP3DPATHPOINT *Point;
00092 double MaxLinearVel;
00093 double MaxLinearAcc;
00094 double MaxLinearDec;
00095 MDISP3DPATHANGLE MaxAngularAcc;
00096 MDISP3DPATHANGLE MaxAngularVel;
00097 SPATREF::COORDREFSYS PointCoordRefSys;
00098 MDISP3DPATHVIEW View;
00099
00100 _MDISP3DPATH (
00101 ) :
00102 NumSegments(0),
00103 MaxSegments(0),
00104 Segment(0),
00105 NumPoints(0),
00106 MaxPoints(0),
00107 Point(0),
00108 MaxLinearVel(0.0),
00109 MaxLinearAcc(0.0),
00110 MaxLinearDec(0.0)
00111 {
00112 };
00113 };
00114 typedef _MDISP3DPATH *MDISP3DPATH;
00115
00116 #define PATH3D_SEGMENTFLAG_TimeSet 0x00000001
00117 #define PATH3D_SEGMENTFLAG_ViewToPoint 0x00000002
00118 #define PATH3D_SEGMENTFLAG_Panoramic 0x00000004
00119 #define PATH3D_SEGMENTFLAG_Orbit 0x00000008
00120 #define PATH3D_SEGMENTFLAG_DualSweep 0x00000020
00121
00122 #define PATH3D_ZMODE_Variable 0
00123 #define PATH3D_ZMODE_FixedAboveSurface 1
00124 #define PATH3D_ZMODE_FixedAbsolute 2
00125
00126 #define PATH3D_SPEEDMODE_Variable 0
00127 #define PATH3D_SPEEDMODE_Constant 1
00128
00129 #define PATH3D_VIEWELEVATIONMODE_Variable 0
00130 #define PATH3D_VIEWELEVATIONMODE_Constant 1
00131 #define PATH3D_VIEWELEVATIONMODE_PathRelative 2
00132
00133 extern "C" {
00134
00135 int Mdisp3dPathClear (MDISP3DPATH);
00136 int Mdisp3dPathCompute (MDISP3DPATH);
00137 double Mdisp3dPathComputeSegmentLength (MDISP3DPATH, UINT32);
00138 double Mdisp3dPathComputeSegmentTime (MDISP3DPATH, UINT32);
00139 double Mdisp3dPathComputeSegmentSweepAngle (MDISP3DPATH, UINT32);
00140 double Mdisp3dPathComputeTotalLength (MDISP3DPATH);
00141 double Mdisp3dPathComputeTotalTime (MDISP3DPATH);
00142 int Mdisp3dPathCreate (MDISP3DPATH*, GRE_GROUP*);
00143 void Mdisp3dPathDestroy (MDISP3DPATH);
00144 int Mdisp3dPathPointAppend (MDISP3DPATH, MDISP3DPATHPOINT*);
00145
00146 int Mdisp3dSimPlayCreate (void**, MDISP3DPATH, GRE_VIEW*);
00147 void Mdisp3dSimPlayDestroy (void*);
00148 int Mdisp3dSimPlayDrawFrame (void*, int);
00149 int Mdisp3dSimPlayIncrement (void*, double);
00150 void Mdisp3dSimPlayGetPositionOverall (void*, UINT32*, double*);
00151 void Mdisp3dSimPlayGetPositionSegment (void*, UINT32*, UINT32*, double*);
00152 void Mdisp3dSimPlayOpenObjects (void*);
00153 int Mdisp3dSimPlaySetPositionSegment (void*, UINT32, UINT32);
00154 void Mdisp3dSimPlaySetReduceSpeckle (void*, UINT8);
00155 int Mdisp3dSimPlaySetSurfaceLayer (void*, GRE_LAYER_SURFACE*);
00156 void Mdisp3dSimPlayGetSurfTrans (void*, void**);
00157 void Mdisp3dSimPlayGetPositionDirection (void*, DPOINT3D*, DPOINT3D*);
00158 void Mdisp3dSimPlayGetOrbitRadius (void*, DOUBLE*);
00159
00160 }
00161
00162 #endif
00163
00164
00165 #endif INC_GRE_3DPATH_H