13 #ifndef __GU_PrimRBezSurf_h__
14 #define __GU_PrimRBezSurf_h__
56 return *theDefinition;
69 int create(
int rows,
int cols,
int orderu=4,
int orderv=4,
70 int wrapu = 0,
int wrapv = 0,
72 int appendPoints = 1);
87 float tmax = 1E17F,
float tol = 1E-12F,
90 float *u = 0,
float *
v = 0,
91 int ignoretrim = 1)
const override;
95 float worldtol = 1e-4F,
96 float domaintol = 1e-2F,
98 bool docompact =
true)
override;
100 float worldtol = 1e-4F,
101 int nontrivial = 0)
const override;
107 bool openu,
bool openv,
108 bool,
bool)
const override;
117 int &ind1,
int &ind2,
int keep)
override;
119 int &ind1,
int &ind2,
int keep)
override;
122 void openAtU(
float u)
override;
131 int split(
int every_patch = 0,
132 int append_points = 0,
146 int orderu = 4,
int orderv = 4,
147 int wrapu = 0,
int wrapv = 0,
149 int appendPoints = 1);
170 friend class GU_PrimitiveFactory;
virtual GEO_Hull * reconfigure(unsigned type, int orderu, int orderv, bool openu, bool openv, bool endsu, bool endsv) const =0
virtual void openAtU(float u)=0
Open the primitive at the given domain value.
GLfloat GLfloat GLfloat v2
virtual int64 getMemoryUsage() const
~GU_PrimRBezSurf() override
virtual int intersectSurf(GEO_TPSurf &surf2, GU_IsectCurveSet &curveset, float worldtol=1e-4F, float domaintol=1e-2F, int steps=100, bool docompact=true)=0
virtual int doesIntersect(const GEO_Primitive &prim, float worldtol=1e-4F, int nontrivial=0) const =0
virtual void openAtV(float v)=0
#define GA_INVALID_OFFSET
virtual void getRangeBBox(const UT_Interval &u, const UT_Interval &v, UT_BoundingBox &bbox, const GA_PwHandleRO &h) const =0
GA_PwHandle< true > GA_PwHandleRO
GU_PrimRBezSurf(GA_Detail *gdp, GA_Offset offset=GA_INVALID_OFFSET)
NOTE: This constructor should only be called via GU_PrimitiveFactory.
virtual void countMemory(UT_MemoryCounter &counter) const
virtual GEO_Curve * buildRowCurve(bool appendPoints, GEO_Detail *parent) const =0
virtual GEO_TPSurf * cutV(float v1, float v2, int &ind1, int &ind2, int keep)=0
const GA_PrimitiveDefinition & getTypeDef() const override
virtual GEO_TPSurf * cutU(float u1, float u2, int &ind1, int &ind2, int keep)=0
GLfloat GLfloat GLfloat GLfloat h
virtual int intersectRay(const UT_Vector3 &o, const UT_Vector3 &d, float tmax=1E17F, float tol=1E-12F, float *distance=0, UT_Vector3 *pos=0, UT_Vector3 *nml=0, int accurate=0, float *u=0, float *v=0, int ignoretrim=1) const
virtual GEO_Hull * getSubHull(int top, int left, int bottom, int right, GEO_SubHullFlags break_flags)=0
GLdouble GLdouble GLdouble top
Container class for all geometry.
virtual GEO_Primitive * convert(GEO_ConvertParms &parms, GA_PointGroup *usedpts=0)=0
Definition of a geometric primitive.
void OIIO_UTIL_API split(string_view str, std::vector< string_view > &result, string_view sep=string_view(), int maxsplit=-1)
SIM_API const UT_StringHolder distance
virtual GEO_Curve * buildColCurve(bool appendPoints, GEO_Detail *parent) const =0
virtual GEO_Primitive * convertNew(GEO_ConvertParms &parms)=0