23 #if !defined(OPENNURBS_SURFACE_INC_)
24 #define OPENNURBS_SURFACE_INC_
26 #include <pcl/pcl_exports.h>
220 int* span_vector_index,
289 double tolerance = ON_ZERO_TOLERANCE
305 double tolerance = ON_ZERO_TOLERANCE
321 double tolerance = ON_ZERO_TOLERANCE
337 double tolerance = ON_ZERO_TOLERANCE
353 double tolerance = ON_ZERO_TOLERANCE
474 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
475 double curvature_tolerance=ON_SQRT_EPSILON
509 double point_tolerance=ON_ZERO_TOLERANCE,
510 double d1_tolerance=ON_ZERO_TOLERANCE,
511 double d2_tolerance=ON_ZERO_TOLERANCE,
512 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
513 double curvature_tolerance=ON_SQRT_EPSILON
776 double tolerance = 0.0
828 double tolerance = 0.0,
835 double nurbs_s,
double nurbs_t,
836 double* surface_s,
double* surface_t
841 double surface_s,
double surface_t,
842 double* nurbs_s,
double* nurbs_t
871 bool m_bIsSingular[4];
883 unsigned char m_reserved[16];
894 #if defined(ON_DLL_TEMPLATE)
898 #pragma warning( push )
899 #pragma warning( disable : 4231 )
901 #pragma warning( pop )
ON_BOOL32 Read(ON_BinaryArchive &)
ON_BOOL32 Duplicate(ON_SurfaceArray &) const
ON_BOOL32 Write(ON_BinaryArchive &) const
virtual int HasNurbForm() const
virtual ISO IsIsoparametric(const ON_Curve &curve, const ON_Interval *curve_domain=NULL) const
virtual ON_BOOL32 GetSpanVector(int dir, double *span_vector) const =0
ON_BOOL32 EvNormal(double u, double v, ON_3dVector &normal, int quadrant=0, int *hint=0) const
virtual ON_BOOL32 IsClosed(int) const
virtual ON_BOOL32 SetDomain(int dir, double t0, double t1)
virtual ON_BOOL32 Split(int dir, double c, ON_Surface *&west_or_south_side, ON_Surface *&east_or_north_side) const
ON_BOOL32 FrameAt(double u, double v, ON_Plane &frame) const
virtual ON_BOOL32 IsPlanar(ON_Plane *plane=NULL, double tolerance=ON_ZERO_TOLERANCE) const
bool IsTorus(ON_Torus *torus=NULL, double tolerance=ON_ZERO_TOLERANCE) const
ON_BOOL32 Ev2Der(double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, ON_3dVector &duu, ON_3dVector &duv, ON_3dVector &dvv, int quadrant=0, int *hint=0) const
virtual int Degree(int dir) const =0
ON_BOOL32 EvPoint(double u, double v, ON_3dPoint &point, int quadrant=0, int *hint=0) const
virtual int GetNurbForm(ON_NurbsSurface &nurbs_surface, double tolerance=0.0) const
ON_3dVector NormalAt(double, double) const
unsigned int SizeOf() const
ON_3dPoint PointAt(double, double) const
ON_NurbsSurface * NurbsSurface(ON_NurbsSurface *pNurbsSurface=NULL, double tolerance=0.0, const ON_Interval *s_subdomain=NULL, const ON_Interval *t_subdomain=NULL) const
virtual ON_BOOL32 Reverse(int)=0
virtual ON_BOOL32 Evaluate(double u, double v, int num_der, int array_stride, double *der_array, int quadrant=0, int *hint=0) const =0
virtual ON_BOOL32 IsSingular(int) const
ON_Surface(const ON_Surface &)
ON_Surface & operator=(const ON_Surface &)
virtual ON_BOOL32 GetSurfaceSize(double *width, double *height) const
virtual ON_BOOL32 IsPeriodic(int) const
bool IsAtSingularity(double s, double t, bool bExact=true) const
bool SetDomain(int dir, ON_Interval domain)
virtual ON_BOOL32 Transpose()=0
virtual ISO IsIsoparametric(const ON_BoundingBox &bbox) const
virtual bool GetNextDiscontinuity(int dir, ON::continuity c, double t0, double t1, double *t, int *hint=NULL, int *dtype=NULL, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const
ON_BOOL32 GetDomain(int dir, double *t0, double *t1) const
ON_BOOL32 EvNormal(double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, ON_3dVector &normal, int=0, int *=0) const
ON_BOOL32 HasBrepForm() const
virtual ON_Curve * IsoCurve(int dir, double c) const
virtual bool Extend(int dir, const ON_Interval &domain)
virtual ON_BOOL32 GetParameterTolerance(int dir, double t, double *tminus, double *tplus) const
bool IsCone(ON_Cone *cone=NULL, double tolerance=ON_ZERO_TOLERANCE) const
bool EvaluatePoint(const class ON_ObjRef &objref, ON_3dPoint &P) const
virtual ON_Interval Domain(int dir) const =0
void DestroyRuntimeCache(bool bDelete=true)
int IsAtSeam(double s, double t) const
virtual bool IsContinuous(ON::continuity c, double s, double t, int *hint=NULL, double point_tolerance=ON_ZERO_TOLERANCE, double d1_tolerance=ON_ZERO_TOLERANCE, double d2_tolerance=ON_ZERO_TOLERANCE, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const
virtual bool GetSurfaceParameterFromNurbFormParameter(double nurbs_s, double nurbs_t, double *surface_s, double *surface_t) const
ON::object_type ObjectType() const
virtual bool GetNurbFormParameterFromSurfaceParameter(double surface_s, double surface_t, double *nurbs_s, double *nurbs_t) const
bool IsCylinder(ON_Cylinder *cylinder=NULL, double tolerance=ON_ZERO_TOLERANCE) const
ON_BOOL32 EvNormal(double u, double v, ON_3dPoint &point, ON_3dVector &normal, int quadrant=0, int *hint=0) const
virtual int SpanCount(int dir) const =0
bool IsSphere(ON_Sphere *sphere=NULL, double tolerance=ON_ZERO_TOLERANCE) const
ON_Brep * BrepForm(ON_Brep *brep=NULL) const
virtual ON_BOOL32 GetSpanVectorIndex(int dir, double t, int side, int *span_vector_index, ON_Interval *span_interval) const
ON_BOOL32 Ev1Der(double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, int quadrant=0, int *hint=0) const
virtual ON_BOOL32 Trim(int dir, const ON_Interval &domain)
virtual ON_Surface * DuplicateSurface() const
void DestroySurfaceTree()
void Set(const ON_Surface *surface)
const ON_Surface * m_surface