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 #include <UT/UT_Vector3.h>
18 
19 
20 class GU_Detail;
21 class GEO_Face;
22 class GA_PrimitiveGroup;
23 
24 
26 {
30 };
31 
33 {
34 public:
35 
40  GU_CLAMP_FACE
41  };
42 
43  void crossSection(int vertex);
44  GU_ExtrudeParms() // some valid no-op defaults
45  {
46  sourceGroup = 0;
47  xsection_single = 0;
48  xsection = 0;
49  xsectionGroup = 0;
50  doInit = 0;
51  doFuse = GU_NO_FUSION;
52  shareFaces = 0;
53  detectSharedEdges = 0; // Don't detect shared edges by default
54  keepOriginal = 0;
55  frontOutput = GU_EXTRUDE_FACE_NONE;
56  backOutput = GU_EXTRUDE_FACE_NONE;
57  sideType = GEO_PATCH_QUADS;
58  sideOutput = 0;
59  vertex = 0;
60  tx = 0;
61  ty = 0;
62  sx = 1;
63  sy = 1;
64  frontGroup = 0;
65  backGroup = 0;
66  sideGroup = 0;
67  fullTransform = 0;
68  translateDelta.assign(0,0,0);
69  translateDist = 0;
70  scalex = 1;
71  scaley = 1;
72  outputpoly = 0;
73  holefaces = true;
74  }
75 
76  const GA_PrimitiveGroup *sourceGroup; // prims to extrude
77 
78  const GEO_Face *xsection_single; // if non-zero just
79  // use this primitive
80  const GU_Detail *xsection; // else use the
81  const GA_PrimitiveGroup *xsectionGroup; // gdp-group data
82 
83  int doInit; // initialize nicely
84  GU_ExtrudeFusion doFuse; // fuse points
86  int shareFaces; // share points
87  // between faces and
88  // hull.
89 
94  int vertex;
95  float tx, ty;
96  float sx, sy;
97 
98 
102 
103  // post translation allows the inner row to be relocated arbitrarily.
104  // this is used by the selection extrusion to handle shared points
105  // correctly.
106 
107  int fullTransform; // 0 = no change
108  // 1 = along vector
109  // 2 = along normal
112  float scalex, scaley;
113 
114  bool holefaces;
115 
116 
117  // used to specify whether shared edges should be detected
118  // and the resulting extra walls removed.
119  int detectSharedEdges; // 0 = no checking
120  // 1 = checking done
121 
122 
123  // Used to see if we output to polygons for sidemeshes.
125 };
126 
127 #endif
128 
129 
GU_ExtrudeFaceType frontOutput
Definition: GU_Extrude.h:90
GU_ExtrudeFaceType backOutput
Definition: GU_Extrude.h:91
const GEO_Face * xsection_single
Definition: GU_Extrude.h:78
GA_PrimitiveGroup * backGroup
Definition: GU_Extrude.h:100
GU_ExtrudeFaceType
Definition: GU_Extrude.h:25
GA_PrimitiveGroup * frontGroup
Definition: GU_Extrude.h:99
const GU_Detail * xsection
Definition: GU_Extrude.h:80
float translateDist
Definition: GU_Extrude.h:111
#define GU_API
Definition: GU_API.h:14
const GA_PrimitiveGroup * sourceGroup
Definition: GU_Extrude.h:76
GU_ExtrudeFusion doFuse
Definition: GU_Extrude.h:84
HUSD_API UT_Matrix4D fullTransform(HdSceneDelegate *scene_del, const SdfPath &prim_path)
GA_PrimitiveGroup * sideGroup
Definition: GU_Extrude.h:101
GEO_SurfaceType
GEO_SurfaceType sideType
Definition: GU_Extrude.h:92
UT_Vector3 translateDelta
Definition: GU_Extrude.h:110
const GA_PrimitiveGroup * xsectionGroup
Definition: GU_Extrude.h:81