00001
00039 #ifndef INC_MI32_GEOM3D_H
00040 #define INC_MI32_GEOM3D_H
00041
00042 #ifndef INC_MI32_STDDEFNS_H
00043 #include <mi32/stddefns.h>
00044 #endif
00045
00046 struct DPOINT3D;
00047
00048
00050
00051
00052 #define OUTCODE3D_Top 0x01
00053 #define OUTCODE3D_Bottom 0x02
00054 #define OUTCODE3D_Right 0x04
00055 #define OUTCODE3D_Left 0x08
00056 #define OUTCODE3D_Back 0x10
00057 #define OUTCODE3D_Front 0x20
00058
00059 #define CLIP3D_Perspective 0x0001
00060 #define CLIP3D_ClipBackPlane 0x0002
00061
00062
00064
00065
00069
00070 #if defined(__cplusplus)
00071 extern "C" {
00072 #endif
00073
00075 void Clip3DCompOutCodes (
00076 INT32 numpoints,
00077 DPOINT3D *point,
00078 UINT8 *outcode,
00079 double zmin,
00080 UINT32 flags
00081 );
00082
00084 int Clip3DLine (
00085 DPOINT3D *p0,
00086 DPOINT3D *p1,
00087 double zmin,
00088 UINT32 flags
00089 );
00090
00094 int Clip3DLineParallel (
00095 DPOINT3D *p0,
00096 DPOINT3D *p1,
00097 UINT32 flags
00098 );
00099
00103 int Clip3DLinePerspective (
00104 DPOINT3D *p0,
00105 DPOINT3D *p1,
00106 double zmin,
00107 UINT32 flags
00108 );
00109
00113 int Clip3DTriangle (
00114 DPOINT3D **tp,
00115 UINT8 *outcode,
00116 DPOINT3D *opoint,
00117 double ViewPlaneDist,
00118 UINT32 flags
00119 );
00120
00124 int Clip3DFlatPolygon (
00125 DPOINT3D *ipoint,
00126 UINT8 *outcode,
00127 INT32 numIPoints,
00128 DPOINT3D *opoint,
00129 double ViewPlaneDist,
00130 UINT32 flags
00131 );
00132
00133 #if defined(__cplusplus)
00134 }
00135 #endif
00136
00138
00139 #endif