15 #ifndef __GEO_PrimRBezSurf_h__
16 #define __GEO_PrimRBezSurf_h__
45 float vbmatx[][GA_MAXORDER],
46 int &rowoffset,
int &coloffset,
47 unsigned du=0,
unsigned dv=0,
48 int uoffset=-1,
int voffset=-1)
const override;
55 float u,
float v,
float *ubvals,
56 float *vbvals,
int &rowoffset,
58 unsigned du=0,
unsigned dv=0,
59 int uoffset=-1,
int voffset=-1)
const override;
61 float u,
float *ubvals,
int &coloffset,
62 unsigned du=0,
int uoffset=-1)
const override;
64 float v,
float *vbvals,
int &rowoffset,
65 unsigned dv=0,
int voffset=-1)
const override;
70 int du=0,
int dv=0)
const override;
76 int &minvk,
int &maxvk)
const override;
84 int &maxbkpu,
int &minbkpv,
85 int &maxbkpv)
const override;
97 int refineU(
float k,
int=1)
override;
101 int refineV(
float k,
int=1)
override;
124 void wrapU(
int rounded = 1,
int preserveShape = 0)
override;
125 void wrapV(
int rounded = 1,
int preserveShape = 0)
override;
140 void openU(
int preserveShape = 0,
int safe = 0)
override;
141 void openV(
int preserveShape = 0,
int safe = 0)
override;
146 bool appendPts=
true)
override;
148 bool appendPts=
true)
override;
149 int deleteRow(
unsigned int which)
override;
150 int deleteCol(
unsigned int which)
override;
160 int loftU(
int newcount,
int start=-1,
int stop=-1)
override;
161 int loftV(
int newcount,
int start=-1,
int stop=-1)
override;
170 float sharpness = 0.0
f,
171 float bias = -1.0
f)
override;
174 float sharpness = 0.0
f,
175 float bias = -1.0
f)
override;
178 float usharpness = 0.
f,
float vsharpness = 0.
f,
179 float ubias = -1.0
f,
float vbias = -1.0
f)
override;
181 int unrollU(
int append_pts = 1)
override;
182 int unrollV(
int append_pts = 1)
override;
219 float bias = 0.5
f,
float tolerance = 1.0
f,
222 float bias = 0.5
f,
float tolerance = 1.0
f,
229 float vstart,
float vstop)
const override;
250 void incrementOrderU();
253 void incrementOrderV();
virtual int loftV(int newcount, int start=-1, int stop=-1)=0
virtual int insertRow(unsigned int beforeWhich, bool appendPts=true)
virtual int refineU(float k, GA_AttributeRefMap &hlist, int i=1)
virtual GA_Basis * newBasis() const =0
virtual int unrollU(int append_pts=1)
virtual int raiseOrderVInt(int neworder)=0
virtual void openU(int preserveShape=0, int safe=0)
virtual int evaluateBreakpoint(int uidx, int vidx, UT_Vector4 &pos, int du=0, int dv=0) const =0
virtual int evaluateBasisDerivs(float u, float v, float ubmatx[][GA_MAXORDER], float vbmatx[][GA_MAXORDER], int &rowoffset, int &coloffset, unsigned du=0, unsigned dv=0, int uoffset=-1, int voffset=-1) const =0
virtual int warp(float u, float v, const UT_Vector3 &delta, GA_AttributeRefMap &map, float usharpness=0.0f, float vsharpness=0.f, float ubias=-1.0f, float vbias=-1.0f)=0
virtual int deleteCol(unsigned int which)
virtual int warpU(float u, const UT_Vector3 &delta, GA_AttributeRefMap &map, float sharpness=0.0f, float bias=-1.0f)=0
virtual void wrapU(int rounded=1, int preserveShape=0)
virtual int raiseOrderUInt(int neworder)=0
virtual int refineV(float k, GA_AttributeRefMap &hlist, int i=1)
virtual int domainRangeOfCV(int i, int j, int &minuk, int &maxuk, int &minvk, int &maxvk) const =0
#define GA_INVALID_OFFSET
virtual int insertCol(unsigned int beforeWhich, bool appendPts=true)
virtual int warpV(float v, const UT_Vector3 &delta, GA_AttributeRefMap &map, float sharpness=0.0f, float bias=-1.0f)=0
virtual int vMaxValidIndex() const
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
virtual int breakpointRangeOfCV(int i, int j, int &minbkpu, int &maxbkpu, int &minbkpv, int &maxbkpv) const =0
int attachV(const GEO_Hull &hull, int blend=1, float bias=0.5f, float tolerance=1.0f, int unrefine=1, GA_PointGroup *ptgroup=0) override
virtual int evaluateUBasis(float u, float *ubvals, int &coloffset, unsigned du=0, int uoffset=-1) const =0
virtual const GA_PrimitiveJSON * getJSON() const =0
virtual void openV(int preserveShape=0, int safe=0)
Provide a JSON interface to a primitive.
Bezier or NURBS basis classes which maintain knot vectors.
virtual void reparameterizeV(GA_ParameterizationType ptype)=0
A handle to simplify manipulation of multiple attributes.
virtual int evaluateBasis(float u, float v, float *ubvals, float *vbvals, int &rowoffset, int &coloffset, unsigned du=0, unsigned dv=0, int uoffset=-1, int voffset=-1) const =0
virtual void reparameterizeU(GA_ParameterizationType ptype)=0
virtual GEO_TPSurf * extract(float ustart, float ustop, float vstart, float vstop) const =0
virtual void wrapV(int rounded=1, int preserveShape=0)
virtual int translateBreakpoints(const UT_IntArray &uindices, const UT_IntArray &vindices, const UT_Vector3 &delta, int fixbkpts=1, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)=0
~GEO_PrimRBezSurf() override
int attachU(const GEO_Hull &hull, int blend=1, float bias=0.5f, float tolerance=1.0f, int unrefine=1, GA_PointGroup *ptgroup=0) override
virtual int loftU(int newcount, int start=-1, int stop=-1)=0
static GA_PrimitiveFamilyMask buildFamilyMask()
virtual int uMaxValidIndex() const
virtual int evaluateVBasis(float v, float *vbvals, int &rowoffset, unsigned dv=0, int voffset=-1) const =0
Container class for all geometry.
Definition of a geometric primitive.
GEO_PrimRBezSurf(GA_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &defn)
virtual int deleteRow(unsigned int which)
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &defn)
static GA_PrimitiveFamilyMask buildFamilyMask()
virtual int raiseOrderVRefMap(int neworder, GA_AttributeRefMap &map)=0
virtual int raiseOrderURefMap(int neworder, GA_AttributeRefMap &map)=0
virtual int transformBreakpoints(const UT_IntArray &uindices, const UT_IntArray &vindices, const UT_Matrix4 &matx, int fixbkpts=1, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)=0
virtual int unrollV(int append_pts=1)