11 #ifndef __GT_PrimQuadric__
12 #define __GT_PrimQuadric__
29 : myAttributes(attribs)
34 : myAttributes(src.myAttributes)
41 : myAttributes(src.myAttributes)
48 const char *
className()
const override {
return "GT_PrimQuadric"; }
52 return myUV.save(*j) &&
60 int nsegments)
const override;
76 {
return myAttributes; }
84 {
return myAttributes; }
116 { fillQP(&P, 1, &u, v); }
118 { fillQP(&P, 1, &u, v); }
120 { fillQN(&N, 1, &u, v); }
122 { fillQN(&N, 1, &u, v); }
144 virtual void adjustTesselationCounts(
GT_Size &nu,
152 void hardenAttributes();
159 bool create_normals=
true,
void getQP(UT_Vector3D &P, fpreal u, fpreal v) const
GT_PrimitiveHandle clone() const
virtual int getMotionSegments() const =0
const GT_AttributeListHandle & getDetailAttributes() const override
GT_PrimitiveHandle splitU()
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
virtual const GT_ViewportRefineOptions & viewportRefineOptions() const
GT_PrimitiveHandle splitV()
GA_API const UT_StringHolder uv
Class to keep track for a 2D parametric interval.
GT_AttributeListHandle myAttributes
const GT_AttributeListHandle & getAttributes() const
Class which writes ASCII or binary JSON streams.
void getQP(UT_Vector3F &P, fpreal u, fpreal v) const
GT_PrimQuadric(const GT_PrimQuadric &src, const GT_Parametric &uv)
Copy the quadric, but with a different parametric range.
const GT_TransformHandle & getPrimitiveTransform() const
GLuint const GLchar * name
GA_API const UT_StringHolder transform
The base class for all GT primitive types.
virtual int64 getMemoryUsage() const =0
bool saveQuadric(UT_JSONWriter &w, const char *name) const
const char * className() const override
Processes primitives generated by refinement process.
void setPrimitiveTransform(const GT_TransformHandle &x)
Set the transform for a the primitive.
const GT_Parametric & getParametric() const
GT_PrimQuadric(const GT_AttributeListHandle &attribs, const GT_TransformHandle &transform, const GT_Parametric &uv=GT_Parametric())
bool saveAttributeLists(UT_JSONWriter &w) const
GT_PrimQuadric(const GT_PrimQuadric &src)
void getQN(UT_Vector3F &N, fpreal u, fpreal v) const
GA_API const UT_StringHolder N
GLdouble GLdouble GLdouble top
void getQN(UT_Vector3D &N, fpreal u, fpreal v) const
GLubyte GLubyte GLubyte GLubyte w
UT_IntrusivePtr< GT_Primitive > GT_PrimitiveHandle
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0