00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __GU_Extrude_h__
00021 #define __GU_Extrude_h__
00022
00023 #include "GU_API.h"
00024 #include <GEO/GEO_SurfaceType.h>
00025 class GU_Detail;
00026
00027
00028 typedef enum GU_ExtrudeFaceType {
00029 GU_EXTRUDE_FACE_NONE = 0,
00030 GU_EXTRUDE_FACE_OUTPUT = 1,
00031 GU_EXTRUDE_FACE_CONVEX = 2
00032 } enum_extrudefacetype;
00033
00034 class GU_API GU_ExtrudeParms
00035 {
00036 public:
00037
00038 enum GU_ExtrudeFusion {
00039 GU_NO_FUSION,
00040 GU_CLAMP_ALL_POINTS,
00041 GU_CLAMP_SINGLE_POINT,
00042 GU_CLAMP_FACE
00043 };
00044
00045 void crossSection(int vertex);
00046 GU_ExtrudeParms()
00047 {
00048 sourceGroup = 0;
00049 xsection_single = 0;
00050 xsection = 0;
00051 xsectionGroup = 0;
00052 doInit = 0;
00053 doFuse = GU_NO_FUSION;
00054 shareFaces = 0;
00055 detectSharedEdges = 0;
00056 keepOriginal = 0;
00057 frontOutput = GU_EXTRUDE_FACE_NONE;
00058 backOutput = GU_EXTRUDE_FACE_NONE;
00059 sideType = GEO_PATCH_QUADS;
00060 sideOutput = 0;
00061 vertex = 0;
00062 tx = 0;
00063 ty = 0;
00064 sx = 1;
00065 sy = 1;
00066 frontGroup = 0;
00067 backGroup = 0;
00068 sideGroup = 0;
00069 fullTransform = 0;
00070 translateDelta.assign(0,0,0);
00071 translateDist = 0;
00072 scalex = 1;
00073 scaley = 1;
00074 outputpoly = 0;
00075 holefaces = true;
00076 }
00077
00078 const GB_PrimitiveGroup *sourceGroup;
00079
00080 const GEO_Face *xsection_single;
00081
00082 const GU_Detail *xsection;
00083 const GB_PrimitiveGroup *xsectionGroup;
00084
00085 int doInit;
00086 GU_ExtrudeFusion doFuse;
00087 int keepOriginal;
00088 int shareFaces;
00089
00090
00091
00092 GU_ExtrudeFaceType frontOutput;
00093 GU_ExtrudeFaceType backOutput;
00094 GEO_SurfaceType sideType;
00095 int sideOutput;
00096 int vertex;
00097 float tx, ty;
00098 float sx, sy;
00099
00100
00101 GB_PrimitiveGroup *frontGroup;
00102 GB_PrimitiveGroup *backGroup;
00103 GB_PrimitiveGroup *sideGroup;
00104
00105
00106
00107
00108
00109 int fullTransform;
00110
00111
00112 UT_Vector3 translateDelta;
00113 float translateDist;
00114 float scalex, scaley;
00115
00116 bool holefaces;
00117
00118
00119
00120
00121 int detectSharedEdges;
00122
00123
00124
00125
00126 int outputpoly;
00127 };
00128
00129 #endif
00130
00131