HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_PolyExtrude-2.0.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: SOP_PolyExtrude-2.0.h (C++)
7  *
8  */
9 
10 
11 #ifndef __SOP_PolyExtrude2__
12 #define __SOP_PolyExtrude2__
13 
14 #include "SOP_API.h"
15 #include "SOP_Node.h"
16 #include <GU/GU_PolyExtrude2.h>
17 
19 {
20 public:
22  const char *name,
23  OP_Operator *entry);
24  virtual ~SOP_PolyExtrude2();
25 
26  virtual OP_ERROR cookInputGroups(
27  OP_Context &context, int alone = 0);
28 
29  virtual bool updateParmsFlags();
30 
31  virtual void syncNodeVersion(const char *old_version,
32  const char *cur_version,
33  bool *node_deleted);
34 
35  static OP_Node *myConstructor(OP_Network *net,
36  const char *name,
37  OP_Operator *entry);
38 
39  static PRM_Template myTemplateList[];
40 
41  static const char *theHandleCenterAttribName;
42  static const char *theHandleXformAttribName;
43  static const char *theDraggerStartAttribName;
44  static const char *theDraggerDirAttribName;
45 
46 protected:
47  virtual OP_ERROR cookMySop(OP_Context &context);
48  virtual const char *inputLabel(unsigned idx) const;
49 
50 private:
51 
53 
54  void getGroupString(UT_String &str, fpreal t)
55  { evalString(str, 0, 0, t); }
56 
57  bool setExtrudeXform(GU_PolyExtrude2 &extrude, fpreal t);
58  GA_Group *setupOutputGroups(GU_PolyExtrude2 *extruder, fpreal t);
59  void setExtruderParms(GU_PolyExtrude2 *extruder,
60  GEO_Face *external_spine, fpreal t,
61  UT_Ramp &thickness_ramp,
62  UT_Ramp &twist_ramp);
63  void refreshHandleData(GU_PolyExtrude2 *extruder);
64 
65  void convertToPolys();
66  GA_EdgeGroup *switchGroupTypeForOpenCurves();
67 
68  const GA_Group *myGroup;
69  const GA_EdgeGroup *mySplitEdges;
70  const GA_PointGroup *mySplitPoints;
71 
72 };
73 
74 #endif
virtual bool updateParmsFlags()
virtual void syncNodeVersion(const char *old_version, const char *current_version, bool *node_deleted)
virtual const char * inputLabel(unsigned idx) const
UT_ErrorSeverity
Definition: UT_Error.h:25
static const char * theHandleXformAttribName
void evalString(UT_String &val, int pi, int vi, fpreal t) const
static const char * theHandleCenterAttribName
GLuint const GLchar * name
Definition: glcorearb.h:785
virtual OP_ERROR cookInputGroups(OP_Context &context, int alone=0)
static const char * theDraggerStartAttribName
double fpreal
Definition: SYS_Types.h:270
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
#define SOP_API
Definition: SOP_API.h:10
static const char * theDraggerDirAttribName
virtual OP_ERROR cookMySop(OP_Context &context)=0