13 #ifndef __GA_BezBasis__
14 #define __GA_BezBasis__
51 {
return !(*
this ==
a); }
54 void reset()
override;
103 fpreal tol=theBasisTolerance)
const override;
117 int &start_cv,
int &end_cv)
const override;
119 int &start_cv,
int &end_cv)
const override;
126 int &startcv,
int &stopcv)
const override;
129 bool saveH9(std::ostream &os,
bool wrapped,
130 bool binary)
const override;
148 bool checkValid(
int cv_len,
int b_len,
bool does_wrap)
const override;
154 bool wrap=
false)
const override;
158 int grow(
bool wrapped=
false)
override;
162 int shrink(
bool wrapped=
false)
override;
172 bool spread=
false)
override;
179 void reverse(
bool wrapped)
override;
205 bool isUniform()
const;
210 int findBezierBreakpoint(
fpreal v)
const;
virtual int shrink(bool wrapped=false)=0
virtual void makeUniform(fpreal ustep=1)=0
Make the basis uniform of just find out if it is uniform:
virtual fpreal getGreville(int idx, bool clamp=true, bool wrap=false) const =0
virtual int getMultiplicity(fpreal u, int &uidx) const =0
virtual int findOffset(fpreal k, int startIdx=0) const =0
Find index in the knot vector for the break point corresponding to k.
const GLuint GLenum const void * binary
virtual int getBreakpoints(GA_KnotVector &a, fpreal tol=theBasisTolerance) const =0
GLboolean GLboolean GLboolean GLboolean a
GLuint GLsizei GLsizei * length
virtual void evalInterval(fpreal u, int offset, int deriv, fpreal64 *vals) const =0
virtual fpreal computeBValue(int index, fpreal u) const =0
bool operator!=(const GA_BezBasis &a) const
virtual bool slideRange(fpreal umin, fpreal umax, fpreal ubias=0.5)=0
virtual int findStartOffset(fpreal u, int uoffset) const =0
virtual int getBreakCount() const =0
virtual void reset()=0
Re-initializes the basis to default values.
virtual int grow(bool wrapped=false)=0
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
virtual bool checkValid(int cvLen, int bLen, bool doesWrap) const =0
virtual int knotToBreakpoint(int &kidx, int a, int b) const =0
virtual GA_BASIS_TYPE getType() const =0
Return the type of the basis.
Bezier or NURBS basis classes which maintain knot vectors.
GLdouble GLdouble GLint GLint order
virtual void setWrapping(bool wrap)=0
virtual int getDimension() const =0
virtual void rebuild(fpreal ustart=0, fpreal ustep=1)=0
Rebuild the basis as a uniform sequence with a given step.
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
virtual bool validate(int adapt=GA_Basis::GA_BASIS_ADAPT_NONE)=0
GLboolean GLboolean GLboolean b
virtual void chord(UT_Vector4Array &cvs)=0
virtual bool attach(const GA_Basis &b, bool overlap=true, bool spread=false)=0
virtual bool loadH9(UT_IStream &is, int cvs, bool wrapped)=0
virtual bool saveH9(std::ostream &os, bool wrapped, bool binary) const =0
I/O functions for houdini9 format.
virtual const char * getTypeName() const =0
Return the name of the basis.
virtual void reverse(bool wrapped)=0
Reverse the breakpoints in the basis.
Bezier basis classes which maintain knot vectors.
virtual int getEndMultiplicity() const
Return the expected multiplicity of the end knots (1 by default):
virtual void getCvRangeOfDomain(int ustartidx, int ustopidx, int &start_cv, int &end_cv) const =0
virtual void getCvRangeOfBreakpoint(int bkp, int &startcv, int &stopcv) const =0
virtual bool getValidInterval(int &a, int &b) const =0
Get the boundaries of the valid evaluation interval (as indices)
virtual void evalDerivativeMatrix(fpreal u, int offset, int deriv, fpreal64 bmatx[][GA_MAXORDER]) const =0
Evaluate all the derivatives of the basis from 0 to deriv (inclusive).
virtual bool isEqual(const GA_Basis &basis) const =0
Compare to see whether the basis is equal.