HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_GEOPrimTPSurf.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: GT_GEOPrimTPSurf.h ( GT Library, C++ )
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __GT_GEOPrimTPSurf__
12 #define __GT_GEOPrimTPSurf__
13 
14 #include "GT_API.h"
15 #include "GT_GEOPrimitive.h"
16 #include "GT_Handles.h"
17 #include <GU/GU_TPSurfCache.h>
18 
19 class GEO_TPSurf;
20 class GU_TrimPatch;
21 
23 {
24 public:
26  const GEO_Primitive *const* primlist,
27  int nsegments,
28  const GT_AttributeListHandle &prim);
29 
31  ~GT_GEOPrimTPSurf() override;
32 
33  const char *className() const override
34  { return "GT_GEOPrimTPSurf"; }
35 
36  /// Interface from GT_Primitive required by subclass
37  bool refine(GT_Refine &refiner,
38  const GT_RefineParms *parms=NULL) const override;
39 
40  /// Viewport refinement options
41  const GT_ViewportRefineOptions &viewportRefineOptions() const override;
42 
43  /// Interface from GT_Primitive implemented using methods on GEO_Primitive
44  int getPrimitiveType() const override
45  { return GT_GEO_PRIMTPSURF; }
46  GT_PrimitiveHandle doSoftCopy() const override
47  { return new GT_GEOPrimTPSurf(*this); }
48 
49  GT_PrimitiveHandle buildIsoparms(const GT_RefineParms *parms,
50  GT_DataArrayHandle &breakpnt_list,
51  int &nu, int &nv, int &density,
52  bool &uwrap, bool &vwrap) const;
53  GT_PrimitiveHandle buildHull() const;
54 
55  // Build from cache
56  GT_PrimitiveHandle buildSurface(const GT_RefineParms *parms) const;
57 
58  // Build profile curves (may return an empty primitive)
59  GT_PrimitiveHandle buildProfileCurves(const GT_RefineParms *parms) const;
60 
61  /// Build a GT_PrimNuPatch
62  GT_PrimitiveHandle buildNuPatch() const;
63 
65  { return myUniformList; }
67  { return myPointList; }
69  { return myDetailList; }
70  bool updateGeoPrim(const GU_ConstDetailHandle &dtl,
71  const GT_RefineParms &refine) override;
72 private:
73  GT_AttributeListHandle myUniformList;
74  GT_AttributeListHandle myPointList;
75  GT_AttributeListHandle myDetailList;
76 };
77 
78 #endif
Base class for many of the GEO_Primitive objects.
int getPrimitiveType() const override
Interface from GT_Primitive implemented using methods on GEO_Primitive.
virtual const GT_ViewportRefineOptions & viewportRefineOptions() const
#define GT_API
Definition: GT_API.h:13
bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const override
const GT_AttributeListHandle & getDetailAttributes() const override
const GT_AttributeListHandle & getUniformAttributes() const override
bool updateGeoPrim(const GU_ConstDetailHandle &dtl, const GT_RefineParms &refine) override
Update the primitive pointers.
const GT_AttributeListHandle & getPointAttributes() const override
const char * className() const override
GT_PrimitiveHandle doSoftCopy() const override
Processes primitives generated by refinement process.
Definition: GT_Refine.h:20
GLenum src
Definition: glcorearb.h:1793