HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_VertexGroup.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: GU Library (C++)
7  *
8  * COMMENTS:
9  *
10  */
11 
12 #ifndef __GU_VertexGroup_h__
13 #define __GU_VertexGroup_h__
14 
15 #include "GU_API.h"
16 #include "GU_ElementGroup.h"
17 #include "GU_Detail.h"
18 
19 ////////////////////////////////////////////////////////////////////////////
20 //
21 // GU_VertexGroup - Creates a point group and selects specific points to
22 // be created given a set of parameters
23 //
24 ////////////////////////////////////////////////////////////////////////////
25 
27 {
28 public:
29  /// Constructor and Destructor allocate and free a ptRefArray
30  /// if mask isn't GEOPRIMALL
31  /// NOTE: The constructor without a name allocates a detached group
32  /// that is destroyed by the destructor.
34  GU_VertexGroup(GU_Detail *gdp, GA_VertexGroup *vtxgroup);
35  ~GU_VertexGroup() override;
36 
37  GA_ElementGroup *newGroup(const char *name) override;
38  GA_ElementGroup *find(const char *name) const override;
39  void destroy() override;
40 
41  /// Not Implemented - we need thes to de-abstract.
42  /// {
43  void generateGroup(const GU_GroupParms &parms) override;
44 
45  void range(int, int, int, int, int, int) const override;
46  void pattern(const char *pattern, int nelements,
47  int order) const override;
48  void patternGroup(const char *pattern,
49  bool order) const override;
50  int boundingBox(float tx, float ty, float tz,
51  float halfx, float halfy, float halfz,
52  float rx, float ry, float rz,
53  bool includeNotWhollyContained) override;
54  void boundingSphere(float tx, float ty, float tz,
55  float radx, float rady, float radz,
56  bool includeNotWhollyContained
57  ) const override;
58 
59  void normal(UT_Vector3 &nml, float angle,
60  bool include_opposite=false) const override;
61  void backface(const UT_Vector3 &eye) const;
62  void degenerate(bool degenerate, bool zaf, bool doOpen,
63  float tol) const override;
64  void randomChance(float seed, float frac, bool use_attrib,
65  const char * attrib_name) const override;
66  /// }
67 
68 protected:
69 private:
70  const char *myName; // name of the group
71 };
72 
73 #endif
virtual void normal(UT_Vector3 &nml, float angle, bool include_opposite) const =0
virtual int boundingBox(float, float, float, float, float, float, float, float, float, bool)
virtual void randomChance(float seed, float frac, bool use_attrib, const char *attrib_name) const =0
SIM_API const UT_StringHolder angle
virtual void generateGroup(const GU_GroupParms &parms)=0
virtual void patternGroup(const char *pattern, bool order) const =0
virtual void range(int, int, int, int, int, int) const =0
virtual GA_Group * find(const char *) const =0
virtual void destroy()=0
virtual void pattern(const char *pattern, int nelements, int order) const =0
GLdouble GLdouble GLint GLint order
Definition: glad.h:2676
#define GU_API
Definition: GU_API.h:14
GLuint const GLchar * name
Definition: glcorearb.h:786
GLushort pattern
Definition: glad.h:2583
virtual void boundingSphere(float, float, float, float, float, float, bool) const =0
virtual void degenerate(bool degenerate, bool zaf, bool doOpen, float tol) const =0
virtual GA_Group * newGroup(const char *)=0