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