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 #ifndef INC_GRE_3DWIREFRAME_H
00031 #define INC_GRE_3DWIREFRAME_H
00032
00033 #ifndef INC_GRE_BASE_H
00034 #include <gre/base.h>
00035 #endif
00036
00037 #ifndef GENERATING_DOXYGEN_OUTPUT
00038 struct DBCALLBACKSTRUCT;
00039 class REGION2D;
00040
00041 struct MDISPWIREFRAMEEDGE {
00042 INT32 nodefrom;
00043 INT32 nodeto;
00044 INT32 trileft;
00045 INT32 triright;
00046 };
00047
00048 struct MDISPWIREFRAMETRIANGLE {
00049 INT32 edge[3];
00050 };
00051
00052 struct _MDISPWIREFRAME {
00053 UINT8 type;
00054 UINT32 flags;
00055 struct {
00056 INT32 NumNodes;
00057 INT32 NumEdges;
00058 INT32 NumTriangles;
00059 DPOINT3D *Node;
00060 MDISPWIREFRAMEEDGE *Edge;
00061 MDISPWIREFRAMETRIANGLE *Triangle;
00062 } TIN;
00063 struct {
00064 bool Init;
00065 INT32 MaxLines;
00066 INT32 NumLines;
00067 INT32 *NumLinePoints;
00068 DPOINT3D **LinePoint;
00069 } Grid;
00070 struct {
00071 bool Init;
00072 INT32 NumColumns;
00073 INT32 NumLines;
00074 bool HasNull;
00075 double NullValue;
00076 DPOINT3D **Points;
00077 } Matrix;
00078 struct {
00079 bool Init;
00080 INT32 MaxPoints;
00081 INT32 NumPoints;
00082 DOUBLE *MaxElevation;
00083 DOUBLE *MinElevation;
00084 DPOINT3D *Point;
00085 D3POINTPARMS *D3Point;
00086 int fhandle;
00087 int dbhandle;
00088 UINT32 reason;
00089 void ((*dbcallback)(DBCALLBACKSTRUCT*, void*));
00090 void *data;
00091 } D3Point;
00092 struct {
00093 bool Init;
00094 INT32 MaxPolys;
00095 INT32 NumPolys;
00096 INT32 MaxPoints;
00097 INT32 *NumPolyPoints;
00098 DOUBLE *MaxElevation;
00099 DOUBLE *MinElevation;
00100 DPOINT3D **PolyPoint;
00101 D3POLYPARMS *D3Poly;
00102 int fhandle;
00103 int dbhandle;
00104 UINT32 reason;
00105 void ((*dbcallback)(DBCALLBACKSTRUCT*, void*));
00106 void *data;
00107 } D3Poly;
00108 };
00109 typedef _MDISPWIREFRAME *MDISPWIREFRAME;
00110
00111 #define WIREFRAMETYPE_None 0
00112 #define WIREFRAMETYPE_Grid 1
00113 #define WIREFRAMETYPE_TINMem 2
00114 #define WIREFRAMETYPE_TINObj 3
00115 #define WIREFRAMETYPE_Matrix 4
00116
00117 #define WIREFRAMEFLAG_RemoveHiddenLines 0x00000001
00118 #define WIREFRAMEFLAG_ColorSet 0x00000002
00119 #define WIREFRAMEFLAG_SurfaceChanged 0x00000004
00120
00121 int _mdispWireframeDraw (MDISPWIREFRAME, GRE_LAYERDC*);
00122 int _mdispWireframeDrawFlat (const REGION2D& LayerObjRegion, GRE_LAYERDC&);
00123 void _mdispWireframeFree (MDISPWIREFRAME);
00124
00125 #endif // GENERATING_DOXYGEN_OUTPUT
00126
00127 #endif // INC_GRE_3DWIREFRAME_H
00128