HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_Extrude.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME:
7  *
8  * COMMENTS:
9  *
10  */
11 
12 #ifndef __GU_Extrude_h__
13 #define __GU_Extrude_h__
14 
15 #include "GU_API.h"
16 #include <GEO/GEO_SurfaceType.h>
17 class GU_Detail;
18 
19 
21 {
25 };
26 
28 {
29 public:
30 
35  GU_CLAMP_FACE
36  };
37 
38  void crossSection(int vertex);
39  GU_ExtrudeParms() // some valid no-op defaults
40  {
41  sourceGroup = 0;
42  xsection_single = 0;
43  xsection = 0;
44  xsectionGroup = 0;
45  doInit = 0;
46  doFuse = GU_NO_FUSION;
47  shareFaces = 0;
48  detectSharedEdges = 0; // Don't detect shared edges by default
49  keepOriginal = 0;
50  frontOutput = GU_EXTRUDE_FACE_NONE;
51  backOutput = GU_EXTRUDE_FACE_NONE;
52  sideType = GEO_PATCH_QUADS;
53  sideOutput = 0;
54  vertex = 0;
55  tx = 0;
56  ty = 0;
57  sx = 1;
58  sy = 1;
59  frontGroup = 0;
60  backGroup = 0;
61  sideGroup = 0;
62  fullTransform = 0;
63  translateDelta.assign(0,0,0);
64  translateDist = 0;
65  scalex = 1;
66  scaley = 1;
67  outputpoly = 0;
68  holefaces = true;
69  }
70 
71  const GA_PrimitiveGroup *sourceGroup; // prims to extrude
72 
73  const GEO_Face *xsection_single; // if non-zero just
74  // use this primitive
75  const GU_Detail *xsection; // else use the
76  const GA_PrimitiveGroup *xsectionGroup; // gdp-group data
77 
78  int doInit; // initialize nicely
79  GU_ExtrudeFusion doFuse; // fuse points
81  int shareFaces; // share points
82  // between faces and
83  // hull.
84 
89  int vertex;
90  float tx, ty;
91  float sx, sy;
92 
93 
97 
98  // post translation allows the inner row to be relocated arbitrarily.
99  // this is used by the selection extrusion to handle shared points
100  // correctly.
101 
102  int fullTransform; // 0 = no change
103  // 1 = along vector
104  // 2 = along normal
107  float scalex, scaley;
108 
109  bool holefaces;
110 
111 
112  // used to specify whether shared edges should be detected
113  // and the resulting extra walls removed.
114  int detectSharedEdges; // 0 = no checking
115  // 1 = checking done
116 
117 
118  // Used to see if we output to polygons for sidemeshes.
120 };
121 
122 #endif
123 
124 
GU_ExtrudeFaceType frontOutput
Definition: GU_Extrude.h:85
GU_ExtrudeFaceType backOutput
Definition: GU_Extrude.h:86
const GEO_Face * xsection_single
Definition: GU_Extrude.h:73
GA_PrimitiveGroup * backGroup
Definition: GU_Extrude.h:95
GU_ExtrudeFaceType
Definition: GU_Extrude.h:20
GA_PrimitiveGroup * frontGroup
Definition: GU_Extrude.h:94
const GU_Detail * xsection
Definition: GU_Extrude.h:75
float translateDist
Definition: GU_Extrude.h:106
#define GU_API
Definition: GU_API.h:12
const GA_PrimitiveGroup * sourceGroup
Definition: GU_Extrude.h:71
GU_ExtrudeFusion doFuse
Definition: GU_Extrude.h:79
GA_PrimitiveGroup * sideGroup
Definition: GU_Extrude.h:96
GEO_SurfaceType
GEO_SurfaceType sideType
Definition: GU_Extrude.h:87
UT_Vector3 translateDelta
Definition: GU_Extrude.h:105
const GA_PrimitiveGroup * xsectionGroup
Definition: GU_Extrude.h:76