![]() |
QCAD
Open Source 2D CAD
|
#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 | |
bool | AreaMassProperties (ON_MassProperties &mp, bool bArea=true, bool bFirstMoments=true, bool bSecondMoments=true, bool bProductMoments=true, double rel_tol=1.0e-6, double abs_tol=1.0e-6) const |
ON_Brep * | BrepForm (ON_Brep *brep=NULL) const |
virtual ON_Mesh * | CreateMesh (const ON_MeshParameters &mp, ON_Mesh *mesh=NULL) const |
virtual ON_SurfaceTree * | CreateSurfaceTree () 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 &du, ON_3dVector &dv, ON_3dVector &normal, int=0, int *=0) 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 | 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 |
virtual bool | GetClosestPoint (const ON_3dPoint &P, double *s, double *t, double maximum_distance=0.0, const ON_Interval *sdomain=0, const ON_Interval *tdomain=0) const |
ON_BOOL32 | GetDomain (int dir, double *t0, double *t1) const |
virtual ON_BOOL32 | GetLocalClosestPoint (const ON_3dPoint &, double, double, double *, double *, const ON_Interval *=NULL, const ON_Interval *=NULL) 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=0.99984769515639123915701155881391, 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 | IntersectSurface (const ON_Surface *surfaceB, ON_ClassArray< ON_SSX_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, double fitting_tolerance=0.0, const ON_Interval *surfaceA_udomain=0, const ON_Interval *surfaceA_vdomain=0, const ON_Interval *surfaceB_udomain=0, const ON_Interval *surfaceB_vdomain=0) 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=0.99984769515639123915701155881391, double curvature_tolerance=ON_SQRT_EPSILON) const |
bool | IsCylinder (ON_Cylinder *cylinder=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
virtual ISO | IsIsoparametric (const ON_BoundingBox &bbox) const |
virtual ISO | IsIsoparametric (const ON_Curve &curve, const ON_Interval *curve_domain=NULL) 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 |
virtual ON_Surface * | Offset (double offset_distance, double tolerance, double *max_deviation=NULL) const |
ON_Surface () | |
ON_Surface (const ON_Surface &) | |
ON_Surface & | operator= (const ON_Surface &) |
ON_3dPoint | PointAt (double, double) const |
virtual ON_Curve * | Pullback (const ON_Curve &curve_3d, double tolerance, const ON_Interval *curve_3d_subdomain=NULL, ON_3dPoint start_uv=ON_UNSET_POINT, ON_3dPoint end_uv=ON_UNSET_POINT) const |
virtual ON_Curve * | Pushup (const ON_Curve &curve_2d, double tolerance, const ON_Interval *curve_2d_subdomain=NULL) const |
virtual ON_BOOL32 | Reverse (int)=0 |
virtual ON_BOOL32 | SetDomain (int dir, double t0, double t1) |
bool | SetDomain (int dir, ON_Interval domain) |
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 |
const ON_SurfaceTree * | SurfaceTree () const |
virtual ON_BOOL32 | Transpose ()=0 |
virtual ON_BOOL32 | Trim (int dir, const ON_Interval &domain) |
bool | VolumeMassProperties (ON_MassProperties &mp, bool bVolume=true, bool bFirstMoments=true, bool bSecondMoments=true, bool bProductMoments=true, ON_3dPoint base_point=ON_UNSET_POINT, double rel_tol=1.0e-6, double abs_tol=1.0e-6) const |
virtual | ~ON_Surface () |
![]() | |
ON_BoundingBox | BoundingBox () const |
virtual void | ClearBoundingBox () |
virtual ON_COMPONENT_INDEX | ComponentIndex () const |
virtual int | Dimension () const =0 |
virtual ON_BOOL32 | GetBBox (double *boxmin, double *boxmax, int bGrowBox=false) const =0 |
ON_BOOL32 | GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, int bGrowBox=false) const |
ON_BOOL32 | GetBoundingBox (ON_BoundingBox &bbox, int bGrowBox=false) const |
virtual bool | GetTightBoundingBox (ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const |
virtual bool | IsDeformable () const |
virtual bool | IsMorphable () const |
virtual bool | MakeDeformable () |
virtual bool | Morph (const ON_SpaceMorph &morph) |
ON_Geometry () | |
ON_Geometry (const ON_Geometry &) | |
ON_Geometry & | operator= (const ON_Geometry &) |
ON_BOOL32 | Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
ON_BOOL32 | Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
ON_BOOL32 | Scale (double scale_factor) |
virtual ON_BOOL32 | SwapCoordinates (int i, int j) |
virtual ON_BOOL32 | Transform (const ON_Xform &xform) |
ON_BOOL32 | Translate (const ON_3dVector &translation_vector) |
virtual | ~ON_Geometry () |
![]() | |
ON_BOOL32 | AttachUserData (ON_UserData *pUserData) |
bool | CopyFrom (const ON_Object *src) |
void | CopyUserData (const ON_Object &source_object) |
virtual ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const |
ON_BOOL32 | DetachUserData (ON_UserData *pUserData) |
virtual void | Dump (ON_TextLog &) const |
ON_UserData * | FirstUserData () const |
ON_UserData * | GetUserData (const ON_UUID &userdata_uuid) const |
bool | GetUserString (const wchar_t *key, ON_wString &string_value) const |
int | GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const |
int | GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const |
ON_BOOL32 | IsKindOf (const ON_ClassId *pClassId) const |
virtual ON_BOOL32 | IsValid (ON_TextLog *text_log=NULL) const =0 |
virtual void | MemoryRelocate () |
virtual ON_UUID | ModelObjectId () const |
void | MoveUserData (ON_Object &source_object) |
ON_Object () | |
ON_Object (const ON_Object &) | |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
virtual ON_BOOL32 | Read (ON_BinaryArchive &binary_archive) |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
void | TransformUserData (const ON_Xform &xform) |
virtual ON_BOOL32 | Write (ON_BinaryArchive &binary_archive) const |
virtual | ~ON_Object () |
Static Public Member Functions | |
static class ON_NurbsSurface * | CreateCubicLoft (int curve_count, const ON_Curve *const *curve_list, double k, int is_closed=0, ON::cubic_loft_end_condition start_shape=ON::cubic_loft_ec_quadratic, ON::cubic_loft_end_condition end_shape=ON::cubic_loft_ec_quadratic, class ON_NurbsSurface *nurbs_surface=0) |
Protected Member Functions | |
ON_Curve * | PullbackCurveProxy (const ON_CurveProxy &curveproxy_3d, double tolerance, const ON_Interval *curve_3d_subdomain, ON_3dPoint start_uv, ON_3dPoint end_uv) const |
ON_Curve * | PullbackPolyCurve (const ON_PolyCurve &polycurve_3d, double tolerance, const ON_Interval *curve_3d_subdomain, ON_3dPoint start_uv, ON_3dPoint end_uv) const |
ON_Curve * | PushupCurveProxy (const ON_CurveProxy &curveproxy_2d, double tolerance, const ON_Interval *curve_2d_subdomain) const |
ON_Curve * | PushupPolyCurve (const ON_PolyCurve &polycurve_2d, double tolerance, const ON_Interval *curve_2d_subdomain) const |
Protected Attributes | |
ON_SurfaceTree * | m_stree |
Private Member Functions | |
ON_OBJECT_DECLARE (ON_Surface) | |
Additional Inherited Members | |
![]() | |
ON_MEMORY_POOL * | m_mempool |
enum ON_Surface::ISO |
ON_Surface::ON_Surface | ( | ) |
ON_Surface::ON_Surface | ( | const ON_Surface & | src | ) |
|
virtual |
bool ON_Surface::AreaMassProperties | ( | ON_MassProperties & | mp, |
bool | bArea = true, | ||
bool | bFirstMoments = true, | ||
bool | bSecondMoments = true, | ||
bool | bProductMoments = true, | ||
double | rel_tol = 1.0e-6, | ||
double | abs_tol = 1.0e-6 ) const |
Reimplemented from ON_Geometry.
|
static |
|
virtual |
Reimplemented in ON_Extrusion, ON_BrepFace, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
|
pure virtual |
Implemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented from ON_Object.
Reimplemented in ON_SurfaceProxy.
void ON_Surface::DestroySurfaceTree | ( | ) |
|
pure virtual |
Implemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_SurfaceProxy.
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 |
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 |
|
pure virtual |
Implemented in ON_Extrusion, ON_NurbsSurface, ON_OffsetSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented from ON_Geometry.
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 |
ON_BOOL32 ON_Surface::EvNormal | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
ON_3dVector & | normal, | ||
int | quadrant = 0, | ||
int * | hint = 0 ) const |
ON_BOOL32 ON_Surface::EvNormal | ( | double | u, |
double | v, | ||
ON_3dVector & | normal, | ||
int | quadrant = 0, | ||
int * | hint = 0 ) const |
ON_BOOL32 ON_Surface::EvPoint | ( | double | u, |
double | v, | ||
ON_3dPoint & | point, | ||
int | quadrant = 0, | ||
int * | hint = 0 ) const |
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, and ON_SumSurface.
|
virtual |
Reimplemented in ON_Extrusion, ON_PlaneSurface, ON_RevSurface, and ON_SurfaceProxy.
ON_BOOL32 ON_Surface::GetDomain | ( | int | dir, |
double * | t0, | ||
double * | t1 ) const |
|
virtual |
Reimplemented in ON_Extrusion, ON_PlaneSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, ON_SurfaceProxy, and ON_Extrusion.
|
virtual |
Reimplemented in ON_Extrusion, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
pure virtual |
Implemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion.
|
virtual |
Reimplemented in ON_Extrusion, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented from ON_Geometry.
|
virtual |
Reimplemented in ON_Extrusion, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
int ON_Surface::IntersectSurface | ( | const ON_Surface * | surfaceB, |
ON_ClassArray< ON_SSX_EVENT > & | x, | ||
double | intersection_tolerance = 0.0, | ||
double | overlap_tolerance = 0.0, | ||
double | fitting_tolerance = 0.0, | ||
const ON_Interval * | surfaceA_udomain = 0, | ||
const ON_Interval * | surfaceA_vdomain = 0, | ||
const ON_Interval * | surfaceB_udomain = 0, | ||
const ON_Interval * | surfaceB_vdomain = 0 ) const |
int ON_Surface::IsAtSeam | ( | double | s, |
double | t ) const |
bool ON_Surface::IsAtSingularity | ( | double | s, |
double | t, | ||
bool | bExact = true ) const |
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
bool ON_Surface::IsCone | ( | ON_Cone * | cone = NULL, |
double | tolerance = ON_ZERO_TOLERANCE ) const |
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
bool ON_Surface::IsCylinder | ( | ON_Cylinder * | cylinder = NULL, |
double | tolerance = ON_ZERO_TOLERANCE ) const |
|
virtual |
Reimplemented in ON_Extrusion, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SurfaceProxy, and ON_SumSurface.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
bool ON_Surface::IsSolid | ( | ) | const |
bool ON_Surface::IsSphere | ( | ON_Sphere * | sphere = NULL, |
double | tolerance = ON_ZERO_TOLERANCE ) const |
bool ON_Surface::IsTorus | ( | ON_Torus * | torus = NULL, |
double | tolerance = ON_ZERO_TOLERANCE ) const |
ON_3dVector ON_Surface::NormalAt | ( | double | s, |
double | t ) const |
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 |
|
virtual |
Reimplemented from ON_Object.
|
virtual |
Reimplemented in ON_NurbsSurface, ON_PlaneSurface, and ON_SurfaceProxy.
|
private |
ON_Surface & ON_Surface::operator= | ( | const ON_Surface & | src | ) |
ON_3dPoint ON_Surface::PointAt | ( | double | s, |
double | t ) const |
|
virtual |
Reimplemented in ON_PlaneSurface, and ON_SurfaceProxy.
|
protected |
|
protected |
|
virtual |
Reimplemented in ON_PlaneSurface, and ON_SurfaceProxy.
|
protected |
|
protected |
|
pure virtual |
Implemented in ON_Extrusion, ON_BrepFace, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_BrepFace, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, and ON_SumSurface.
bool ON_Surface::SetDomain | ( | int | dir, |
ON_Interval | domain ) |
|
virtual |
Reimplemented from ON_Object.
Reimplemented in ON_SurfaceProxy.
|
pure virtual |
Implemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, and ON_SumSurface.
const ON_SurfaceTree * ON_Surface::SurfaceTree | ( | ) | const |
|
pure virtual |
Implemented in ON_Extrusion, ON_BrepFace, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, ON_SumSurface, and ON_SurfaceProxy.
|
virtual |
Reimplemented in ON_Extrusion, ON_NurbsSurface, ON_PlaneSurface, ON_RevSurface, and ON_SumSurface.
bool ON_Surface::VolumeMassProperties | ( | ON_MassProperties & | mp, |
bool | bVolume = true, | ||
bool | bFirstMoments = true, | ||
bool | bSecondMoments = true, | ||
bool | bProductMoments = true, | ||
ON_3dPoint | base_point = ON_UNSET_POINT, | ||
double | rel_tol = 1.0e-6, | ||
double | abs_tol = 1.0e-6 ) const |
|
protected |