#include <opennurbs_surface.h>
Public Types | |
enum | ISO { not_iso = 0, x_iso = 1, y_iso = 2, W_iso = 3, S_iso = 4, E_iso = 5, N_iso = 6, iso_count = 7 } |
Public Member Functions | |
ON_Brep * | BrepForm (ON_Brep *brep=NULL) const |
virtual int | Degree (int dir) const =0 |
void | DestroyRuntimeCache (bool bDelete=true) |
void | DestroySurfaceTree () |
virtual ON_Interval | Domain (int dir) const =0 |
virtual ON_Surface * | DuplicateSurface () const |
ON_BOOL32 | Ev1Der (double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, int quadrant=0, int *hint=0) 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 ON_BOOL32 | Evaluate (double u, double v, int num_der, int array_stride, double *der_array, int quadrant=0, int *hint=0) const =0 |
bool | EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const |
ON_BOOL32 | EvNormal (double u, double v, ON_3dPoint &point, ON_3dVector &normal, int quadrant=0, int *hint=0) const |
ON_BOOL32 | EvNormal (double u, double v, ON_3dVector &normal, int quadrant=0, int *hint=0) 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 | EvPoint (double u, double v, ON_3dPoint &point, int quadrant=0, int *hint=0) const |
virtual bool | Extend (int dir, const ON_Interval &domain) |
ON_BOOL32 | FrameAt (double u, double v, ON_Plane &frame) const |
ON_BOOL32 | GetDomain (int dir, double *t0, double *t1) 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 |
virtual int | GetNurbForm (ON_NurbsSurface &nurbs_surface, double tolerance=0.0) const |
virtual bool | GetNurbFormParameterFromSurfaceParameter (double surface_s, double surface_t, double *nurbs_s, double *nurbs_t) const |
virtual ON_BOOL32 | GetParameterTolerance (int dir, double t, double *tminus, double *tplus) const |
virtual ON_BOOL32 | GetSpanVector (int dir, double *span_vector) const =0 |
virtual ON_BOOL32 | GetSpanVectorIndex (int dir, double t, int side, int *span_vector_index, ON_Interval *span_interval) const |
virtual bool | GetSurfaceParameterFromNurbFormParameter (double nurbs_s, double nurbs_t, double *surface_s, double *surface_t) const |
virtual ON_BOOL32 | GetSurfaceSize (double *width, double *height) const |
ON_BOOL32 | HasBrepForm () const |
virtual int | HasNurbForm () const |
int | IsAtSeam (double s, double t) const |
bool | IsAtSingularity (double s, double t, bool bExact=true) const |
virtual ON_BOOL32 | IsClosed (int) const |
bool | IsCone (ON_Cone *cone=NULL, double tolerance=ON_ZERO_TOLERANCE) 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 |
bool | IsCylinder (ON_Cylinder *cylinder=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
virtual ISO | IsIsoparametric (const ON_Curve &curve, const ON_Interval *curve_domain=NULL) const |
virtual ISO | IsIsoparametric (const ON_BoundingBox &bbox) const |
virtual ON_Curve * | IsoCurve (int dir, double c) const |
virtual ON_BOOL32 | IsPeriodic (int) const |
virtual ON_BOOL32 | IsPlanar (ON_Plane *plane=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
virtual ON_BOOL32 | IsSingular (int) const |
bool | IsSolid () const |
bool | IsSphere (ON_Sphere *sphere=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
bool | IsTorus (ON_Torus *torus=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
ON_3dVector | NormalAt (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 |
ON::object_type | ObjectType () const |
ON_Surface () | |
ON_Surface (const ON_Surface &) | |
ON_Surface & | operator= (const ON_Surface &) |
ON_3dPoint | PointAt (double, double) const |
virtual ON_BOOL32 | Reverse (int)=0 |
bool | SetDomain (int dir, ON_Interval domain) |
virtual ON_BOOL32 | SetDomain (int dir, double t0, double t1) |
unsigned int | SizeOf () const |
virtual int | SpanCount (int dir) const =0 |
virtual ON_BOOL32 | Split (int dir, double c, ON_Surface *&west_or_south_side, ON_Surface *&east_or_north_side) const |
virtual ON_BOOL32 | Transpose ()=0 |
virtual ON_BOOL32 | Trim (int dir, const ON_Interval &domain) |
virtual | ~ON_Surface () |
Private Member Functions | |
ON_OBJECT_DECLARE (ON_Surface) |
Definition at line 44 of file opennurbs_surface.h.
enum ON_Surface::ISO |
Definition at line 59 of file opennurbs_surface.h.
Definition at line 21 of file opennurbs_surface.cpp.
ON_Surface::ON_Surface | ( | const ON_Surface & | src | ) |
Definition at line 25 of file opennurbs_surface.cpp.
ON_Surface::~ON_Surface | ( | ) | [virtual] |
Definition at line 49 of file opennurbs_surface.cpp.
ON_Brep * ON_Surface::BrepForm | ( | ON_Brep * | brep = NULL | ) | const [virtual] |
Reimplemented from ON_Geometry.
Reimplemented in ON_Extrusion.
Definition at line 1461 of file opennurbs_surface.cpp.
virtual int ON_Surface::Degree | ( | int | dir | ) | const [pure virtual] |
Implemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
void ON_Surface::DestroyRuntimeCache | ( | bool | bDelete = true | ) | [virtual] |
Reimplemented from ON_Object.
Reimplemented in ON_BrepFace, ON_SurfaceProxy, ON_SumSurface, and ON_RevSurface.
Definition at line 1725 of file opennurbs_object.cpp.
void ON_Surface::DestroySurfaceTree | ( | ) |
Definition at line 1491 of file opennurbs_surface.cpp.
virtual ON_Interval ON_Surface::Domain | ( | int | dir | ) | const [pure virtual] |
Implemented in ON_NurbsSurface, ON_SumSurface, ON_Extrusion, ON_RevSurface, ON_SurfaceProxy, and ON_PlaneSurface.
ON_Surface * ON_Surface::DuplicateSurface | ( | ) | const [virtual] |
Reimplemented in ON_SurfaceProxy.
Definition at line 59 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::Ev1Der | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
ON_3dVector & | du, | ||
ON_3dVector & | dv, | ||
int | quadrant = 0 , |
||
int * | hint = 0 |
||
) | const |
Definition at line 987 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::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 |
Definition at line 1042 of file opennurbs_surface.cpp.
virtual ON_BOOL32 ON_Surface::Evaluate | ( | double | u, |
double | v, | ||
int | num_der, | ||
int | array_stride, | ||
double * | der_array, | ||
int | quadrant = 0 , |
||
int * | hint = 0 |
||
) | const [pure virtual] |
Implemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, ON_OffsetSurface, and ON_Extrusion.
bool ON_Surface::EvaluatePoint | ( | const class ON_ObjRef & | objref, |
ON_3dPoint & | P | ||
) | const [virtual] |
Reimplemented from ON_Geometry.
Definition at line 1110 of file opennurbs_curve.cpp.
ON_BOOL32 ON_Surface::EvNormal | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
ON_3dVector & | normal, | ||
int | quadrant = 0 , |
||
int * | hint = 0 |
||
) | const |
Definition at line 1138 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::EvNormal | ( | double | u, |
double | v, | ||
ON_3dVector & | normal, | ||
int | quadrant = 0 , |
||
int * | hint = 0 |
||
) | const |
Definition at line 1119 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::EvNormal | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
ON_3dVector & | du, | ||
ON_3dVector & | dv, | ||
ON_3dVector & | normal, | ||
int | side = 0 , |
||
int * | hint = 0 |
||
) | const |
Definition at line 1157 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::EvPoint | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
int | quadrant = 0 , |
||
int * | hint = 0 |
||
) | const |
Definition at line 947 of file opennurbs_surface.cpp.
bool ON_Surface::Extend | ( | int | dir, |
const ON_Interval & | domain | ||
) | [virtual] |
Reimplemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_PlaneSurface, and ON_Extrusion.
Definition at line 1264 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::FrameAt | ( | double | u, |
double | v, | ||
ON_Plane & | frame | ||
) | const |
Definition at line 927 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::GetDomain | ( | int | dir, |
double * | t0, | ||
double * | t1 | ||
) | const |
Definition at line 69 of file opennurbs_surface.cpp.
bool ON_Surface::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 [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, and ON_Extrusion.
Definition at line 377 of file opennurbs_surface.cpp.
int ON_Surface::GetNurbForm | ( | ON_NurbsSurface & | nurbs_surface, |
double | tolerance = 0.0 |
||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_PlaneSurface, ON_SumSurface, ON_SurfaceProxy, and ON_Extrusion.
Definition at line 1284 of file opennurbs_surface.cpp.
bool ON_Surface::GetNurbFormParameterFromSurfaceParameter | ( | double | surface_s, |
double | surface_t, | ||
double * | nurbs_s, | ||
double * | nurbs_t | ||
) | const [virtual] |
Reimplemented in ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, and ON_Extrusion.
Definition at line 1309 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::GetParameterTolerance | ( | int | dir, |
double | t, | ||
double * | tminus, | ||
double * | tplus | ||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 143 of file opennurbs_surface.cpp.
virtual ON_BOOL32 ON_Surface::GetSpanVector | ( | int | dir, |
double * | span_vector | ||
) | const [pure virtual] |
Implemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
ON_BOOL32 ON_Surface::GetSpanVectorIndex | ( | int | dir, |
double | t, | ||
int | side, | ||
int * | span_vector_index, | ||
ON_Interval * | span_interval | ||
) | const [virtual] |
Reimplemented in ON_Extrusion.
Definition at line 113 of file opennurbs_surface.cpp.
bool ON_Surface::GetSurfaceParameterFromNurbFormParameter | ( | double | nurbs_s, |
double | nurbs_t, | ||
double * | surface_s, | ||
double * | surface_t | ||
) | const [virtual] |
Reimplemented in ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, and ON_Extrusion.
Definition at line 1298 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::GetSurfaceSize | ( | double * | width, |
double * | height | ||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 77 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::HasBrepForm | ( | ) | const [virtual] |
Reimplemented from ON_Geometry.
Definition at line 1456 of file opennurbs_surface.cpp.
int ON_Surface::HasNurbForm | ( | ) | const [virtual] |
Reimplemented in ON_RevSurface, ON_PlaneSurface, ON_SumSurface, ON_SurfaceProxy, and ON_Extrusion.
Definition at line 1293 of file opennurbs_surface.cpp.
int ON_Surface::IsAtSeam | ( | double | s, |
double | t | ||
) | const |
Definition at line 894 of file opennurbs_surface.cpp.
bool ON_Surface::IsAtSingularity | ( | double | s, |
double | t, | ||
bool | bExact = true |
||
) | const |
Definition at line 820 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::IsClosed | ( | int | dir | ) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 318 of file opennurbs_surface.cpp.
bool ON_Surface::IsCone | ( | ON_Cone * | cone = NULL , |
double | tolerance = ON_ZERO_TOLERANCE |
||
) | const |
Definition at line 1881 of file opennurbs_revsurface.cpp.
bool ON_Surface::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] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, and ON_Extrusion.
Definition at line 577 of file opennurbs_surface.cpp.
bool ON_Surface::IsCylinder | ( | ON_Cylinder * | cylinder = NULL , |
double | tolerance = ON_ZERO_TOLERANCE |
||
) | const |
Definition at line 1777 of file opennurbs_revsurface.cpp.
ON_Surface::ISO ON_Surface::IsIsoparametric | ( | const ON_Curve & | curve, |
const ON_Interval * | curve_domain = NULL |
||
) | const [virtual] |
Reimplemented in ON_Extrusion, and ON_SurfaceProxy.
Definition at line 158 of file opennurbs_surface.cpp.
ON_Surface::ISO ON_Surface::IsIsoparametric | ( | const ON_BoundingBox & | bbox | ) | const [virtual] |
Reimplemented in ON_Extrusion, and ON_SurfaceProxy.
Definition at line 237 of file opennurbs_surface.cpp.
ON_Curve * ON_Surface::IsoCurve | ( | int | dir, |
double | c | ||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, and ON_Extrusion.
Definition at line 1243 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::IsPeriodic | ( | int | dir | ) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 372 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::IsPlanar | ( | ON_Plane * | plane = NULL , |
double | tolerance = ON_ZERO_TOLERANCE |
||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 312 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::IsSingular | ( | int | side | ) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, and ON_PlaneSurface.
Definition at line 798 of file opennurbs_surface.cpp.
bool ON_Surface::IsSolid | ( | ) | const |
Reimplemented in ON_Extrusion.
Definition at line 803 of file opennurbs_surface.cpp.
bool ON_Surface::IsSphere | ( | ON_Sphere * | sphere = NULL , |
double | tolerance = ON_ZERO_TOLERANCE |
||
) | const |
Definition at line 1584 of file opennurbs_revsurface.cpp.
bool ON_Surface::IsTorus | ( | ON_Torus * | torus = NULL , |
double | tolerance = ON_ZERO_TOLERANCE |
||
) | const |
Definition at line 2019 of file opennurbs_revsurface.cpp.
ON_3dVector ON_Surface::NormalAt | ( | double | s, |
double | t | ||
) | const |
Definition at line 920 of file opennurbs_surface.cpp.
ON_NurbsSurface * ON_Surface::NurbsSurface | ( | ON_NurbsSurface * | pNurbsSurface = NULL , |
double | tolerance = 0.0 , |
||
const ON_Interval * | s_subdomain = NULL , |
||
const ON_Interval * | t_subdomain = NULL |
||
) | const |
Definition at line 1321 of file opennurbs_surface.cpp.
ON::object_type ON_Surface::ObjectType | ( | ) | const [virtual] |
Reimplemented from ON_Object.
Reimplemented in ON_ClippingPlaneSurface, and ON_Extrusion.
Definition at line 64 of file opennurbs_surface.cpp.
ON_Surface::ON_OBJECT_DECLARE | ( | ON_Surface | ) | [private] |
ON_Surface & ON_Surface::operator= | ( | const ON_Surface & | src | ) |
Definition at line 42 of file opennurbs_surface.cpp.
ON_3dPoint ON_Surface::PointAt | ( | double | s, |
double | t | ||
) | const |
Definition at line 912 of file opennurbs_surface.cpp.
virtual ON_BOOL32 ON_Surface::Reverse | ( | int | ) | [pure virtual] |
Implemented in ON_BrepFace, ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, and ON_Extrusion.
bool ON_Surface::SetDomain | ( | int | dir, |
ON_Interval | domain | ||
) |
Definition at line 89 of file opennurbs_surface.cpp.
ON_BOOL32 ON_Surface::SetDomain | ( | int | dir, |
double | t0, | ||
double | t1 | ||
) | [virtual] |
Reimplemented in ON_BrepFace, ON_NurbsSurface, ON_SumSurface, ON_Extrusion, ON_RevSurface, and ON_PlaneSurface.
Definition at line 97 of file opennurbs_surface.cpp.
unsigned int ON_Surface::SizeOf | ( | ) | const [virtual] |
Reimplemented from ON_Object.
Reimplemented in ON_BrepFace, ON_ClippingPlaneSurface, ON_SumSurface, ON_NurbsSurface, ON_RevSurface, ON_SurfaceProxy, ON_Extrusion, and ON_PlaneSurface.
Definition at line 29 of file opennurbs_surface.cpp.
virtual int ON_Surface::SpanCount | ( | int | dir | ) | const [pure virtual] |
Implemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_Extrusion, ON_SurfaceProxy, and ON_PlaneSurface.
ON_BOOL32 ON_Surface::Split | ( | int | dir, |
double | c, | ||
ON_Surface *& | west_or_south_side, | ||
ON_Surface *& | east_or_north_side | ||
) | const [virtual] |
Reimplemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_PlaneSurface, and ON_Extrusion.
Definition at line 1273 of file opennurbs_surface.cpp.
virtual ON_BOOL32 ON_Surface::Transpose | ( | ) | [pure virtual] |
Implemented in ON_BrepFace, ON_NurbsSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, ON_PlaneSurface, and ON_Extrusion.
ON_BOOL32 ON_Surface::Trim | ( | int | dir, |
const ON_Interval & | domain | ||
) | [virtual] |
Reimplemented in ON_NurbsSurface, ON_SumSurface, ON_RevSurface, ON_PlaneSurface, and ON_Extrusion.
Definition at line 1255 of file opennurbs_surface.cpp.