17 #if !defined(OPENNURBS_BEZIER_INC_)
18 #define OPENNURBS_BEZIER_INC_
42 ON_BOOL32 bIsRational,
64 ON_BOOL32 bIsRational,
162 ON_BOOL32 bIsRational,
198 ON_BOOL32 bIsRational,
302 int bGrowBox =
false,
350 double rotation_angle,
659 ON::point_style pointstyle,
720 ON::point_style pointstyle,
787 int desired_dimension
800 int desired_cv_capacity
984 #if 8 == ON_SIZEOF_POINTER
988 int m_reserved_ON_BezierCurve;
1051 int bGrowBox =
false
1098 double rotation_angle,
1302 #if 8 == ON_SIZEOF_POINTER
1306 int m_reserved_ON_BezierSurface;
1532 int bGrowBox =
false
1572 double rotation_angle,
1919 #if defined(ON_DLL_TEMPLATE)
1924 #pragma warning( push )
1925 #pragma warning( disable : 4231 )
1934 #pragma warning( pop )
bool SetCV(int i, int j, int k, const ON_3dPoint &point)
bool GetBBox(double *boxmin, double *boxmax, int bGrowBox=false) const
bool GetCV(int i, int j, int k, ON_4dPoint &) const
bool SetWeight(int i, int j, int k, double w)
ON_Interval Domain(int) const
bool Write(ON_BinaryArchive &archive) const
bool SetCV(int i, int j, int k, ON::point_style, const double *)
ON_3dPoint PointAt(double r, double s, double t) const
bool SetCV(int i, int j, int k, const ON_4dPoint &hpoint)
bool Create(const ON_3dPoint *box_corners, int order0, int order1, int order2)
bool Translate(const ON_3dVector &translation_vector)
bool Rotate(double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool ReserveCVCapacity(int cv_capacity)
bool Read(ON_BinaryArchive &archive)
void Dump(ON_TextLog &text_log) const
ON_BezierCage(int dim, bool is_rat, int order0, int order1, int order2)
double * CV(int i, int j, int k) const
bool GetCV(int i, int j, int k, ON::point_style, double *) const
ON_3dPoint PointAt(ON_3dPoint rst) const
ON_BezierCage(const ON_BoundingBox &bbox, int order0, int order1, int order2)
bool Rotate(double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool IsSingular(int) const
bool GetCV(int i, int j, int k, ON_3dPoint &) const
double Weight(int i, int j, int k) const
bool Evaluate(double r, double s, double t, int der_count, int v_stride, double *v) const
bool Transform(const ON_Xform &xform)
ON_BezierCage(const ON_BezierCage &src)
ON_BezierCage(const ON_3dPoint *box_corners, int order0, int order1, int order2)
bool Create(int dim, bool is_rat, int order0, int order1, int order2)
bool Scale(double scale_factor)
ON::point_style CVStyle() const
bool Create(const ON_BoundingBox &bbox, int order0, int order1, int order2)
ON_BezierCage & operator=(const ON_BezierCage &src)
bool SetBezierCage(ON_BezierCage &unitcube2world)
const ON_Xform & WorldToUnitCube() const
const ON_BezierCage & BezierCage() const
bool Write(ON_BinaryArchive &archive) const
bool Transform(const ON_Xform &xform)
bool Read(ON_BinaryArchive &archive)
bool Create(ON_3dPoint P0, ON_3dPoint P1, ON_3dPoint P2, ON_3dPoint P3, int point_countX, int point_countY, int point_countZ)
bool SetXform(ON_Xform world2unitcube)
bool Ev2Der(double t, ON_3dPoint &point, ON_3dVector &first_derivative, ON_3dVector &second_derivative) const
ON_BezierCurve & operator=(const ON_PolynomialCurve &)
ON_Interval Domain() const
bool ChangeDimension(int desired_dimension)
bool GetCV(int cv_index, ON_3dPoint &point) const
bool Transform(const ON_Xform &xform)
ON_BezierCurve(const ON_BezierCurve &)
bool SetCV(int cv_index, ON::point_style pointstyle, const double *cv)
bool GetCV(int cv_index, ON::point_style pointstyle, double *cv) const
bool GetTightBoundingBox(ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const
bool Ev1Der(double t, ON_3dPoint &point, ON_3dVector &first_derivative) const
bool SetCV(int cv_index, const ON_3dPoint &point)
bool Rotate(double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool Evaluate(double t, int der_count, int v_stride, double *v) const
bool GetNurbForm(ON_NurbsCurve &nurbs_curve) const
bool GetBBox(double *box_min, double *box_max, int bGrowBox=false) const
bool Rotate(double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool Split(double t, ON_BezierCurve &left_side, ON_BezierCurve &right_side) const
ON_DEPRECATED bool Reparametrize(double)
ON::point_style CVStyle() const
bool IncreaseDegree(int desired_degree)
bool Loft(const ON_3dPointArray &points)
bool ChangeWeights(int i0, double w0, int i1, double w1)
bool SetWeight(int cv_index, double weight)
ON_BezierCurve & operator=(const ON_BezierCurve &)
double Weight(int cv_index) const
bool EvTangent(double t, ON_3dPoint &point, ON_3dVector &tangent) const
bool GetBoundingBox(ON_BoundingBox &bbox, int bGrowBox=false) const
ON_3dVector TangentAt(double t) const
bool Reparameterize(double c)
bool EvPoint(double t, ON_3dPoint &point) const
ON_3dVector CurvatureAt(double t) const
bool ReserveCVCapacity(int desired_cv_capacity)
bool Create(int dim, ON_BOOL32 bIsRational, int order)
ON_BezierCurve & operator=(const ON_3dPointArray &)
ON_BoundingBox BoundingBox() const
ON_BezierCurve & operator=(const ON_2dPointArray &)
bool SetCV(int cv_index, const ON_4dPoint &point)
ON_BezierCurve & operator=(const ON_4dPointArray &)
ON_BezierCurve(const ON_PolynomialCurve &)
bool GetCV(int cv_index, ON_4dPoint &point) const
ON_BezierCurve(int dim, ON_BOOL32 bIsRational, int order)
ON_BezierCurve(const ON_4dPointArray &)
bool Scale(double scale_factor)
bool Translate(const ON_3dVector &translation_vector)
ON_3dPoint PointAt(double t) const
bool Trim(const ON_Interval &interval)
bool Loft(int pt_dim, int pt_count, int pt_stride, const double *pt, int t_stride, const double *t)
double ControlPolygonLength() const
ON_BezierCurve(const ON_3dPointArray &)
ON_BezierCurve(const ON_2dPointArray &)
ON_3dVector DerivativeAt(double t) const
double * CV(int cv_index) const
bool EvCurvature(double t, ON_3dPoint &point, ON_3dVector &tangent, ON_3dVector &kappa) const
bool ScaleConrolPoints(int i, double w)
void Dump(ON_TextLog &) const
ON_3dPoint PointAt(double s, double t) const
bool Scale(double scale_factor)
ON_BezierSurface(const ON_PolynomialSurface &)
bool SetWeight(int, int, double)
bool GetCV(int, int, ON_4dPoint &) const
bool SetCV(int, int, const ON_3dPoint &)
bool Rotate(double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool Loft(int count, const ON_BezierCurve *const *curve_list)
bool ReserveCVCapacity(int)
void Dump(ON_TextLog &) const
bool SetCV(int, int, ON::point_style, const double *)
bool GetBBox(double *, double *, int bGrowBox=false) const
ON_BezierSurface(const ON_BezierSurface &)
double * CV(int cv_index0, int cv_index1) const
ON_BezierSurface & operator=(const ON_PolynomialSurface &)
ON_BezierCurve * IsoCurve(int dir, double c, ON_BezierCurve *iso=NULL) const
bool GetCV(int, int, ON_3dPoint &) const
bool Translate(const ON_3dVector &translation_vector)
bool IsSingular(int) const
ON_BoundingBox BoundingBox() const
bool Trim(int dir, const ON_Interval &domain)
bool Transform(const ON_Xform &)
bool GetNurbForm(ON_NurbsSurface &) const
bool GetBoundingBox(ON_BoundingBox &bbox, int bGrowBox) const
bool Create(int dim, int is_rat, int order0, int order1)
bool Evaluate(double, double, int, int, double *) const
bool Split(int, double, ON_BezierSurface &, ON_BezierSurface &) const
bool Rotate(double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
ON::point_style CVStyle() const
ON_Interval Domain(int) const
ON_BezierSurface(int dim, int is_rat, int order0, int order1)
bool SetCV(int, int, const ON_4dPoint &)
bool GetCV(int, int, ON::point_style, double *) const
double Weight(int, int) const
ON_BezierSurface & operator=(const ON_BezierSurface &)
bool Loft(const ON_ClassArray< ON_BezierCurve > &curve_list)
ON_PolynomialCurve & operator=(const ON_BezierCurve &)
ON_PolynomialCurve & operator=(const ON_PolynomialCurve &)
ON_BOOL32 Evaluate(double t, int der_count, int v_stride, double *v) const
ON_PolynomialCurve(const ON_PolynomialCurve &)
ON_PolynomialCurve(int dim, ON_BOOL32 bIsRational, int order)
ON_PolynomialCurve(const ON_BezierCurve &)
ON_BOOL32 Create(int dim, ON_BOOL32 bIsRational, int order)
ON_BOOL32 Evaluate(double s, double t, int der_count, int v_stride, double *v) const
ON_PolynomialSurface(const ON_BezierSurface &)
ON_PolynomialSurface(const ON_PolynomialSurface &)
ON_PolynomialSurface & operator=(const ON_PolynomialSurface &)
ON_BOOL32 Create(int, ON_BOOL32, int, int)
ON_PolynomialSurface & operator=(const ON_BezierSurface &)
ON_PolynomialSurface(int, ON_BOOL32, int, int)