Rhino C++ API  7.18
Public Member Functions | List of all members
ON_OffsetSurface Class Reference

#include <opennurbs_offsetsurface.h>

Inheritance diagram for ON_OffsetSurface:
ON_SurfaceProxy ON_Surface ON_Geometry ON_Object

Public Member Functions

 ON_OffsetSurface ()
 
 ON_OffsetSurface (const ON_OffsetSurface &src)
 
 ~ON_OffsetSurface ()
 
const ON_SurfaceBaseSurface () const
 
bool Evaluate (double, double, int, int, double *, int=0, int *=0) const override
 work horse evaluator More...
 
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
More...
 
ON_OffsetSurfaceFunctionOffsetFunction ()
 
const ON_OffsetSurfaceFunctionOffsetFunction () const
 
ON_OffsetSurfaceoperator= (const ON_OffsetSurface &src)
 
bool SetBaseSurface (const ON_Surface *base_surface)
 
bool SetBaseSurface (ON_Surface *base_surface, bool bManage)
 
- Public Member Functions inherited from ON_SurfaceProxy
 ON_SurfaceProxy ()
 
 ON_SurfaceProxy (const ON_Surface *)
 
 ON_SurfaceProxy (const ON_SurfaceProxy &)
 
virtual ~ON_SurfaceProxy ()
 
ON_MeshCreateMesh (const ON_MeshParameters &mp, ON_Mesh *mesh=nullptr) const override
 ON_Surface overrides. More...
 
ON__UINT32 DataCRC (ON__UINT32 current_remainder) const override
 virtual ON_Object::DataCRC override More...
 
int Degree (int) const override
 
void DestroyRuntimeCache (bool bDelete=true) override
 virtual ON_Object::DestroyRuntimeCache override More...
 
int Dimension () const override
 ON_Geometry overrides. More...
 
ON_Interval Domain (int) const override
 
void Dump (ON_TextLog &) const override
 for debugging More...
 
ON_SurfaceDuplicateSurface () const override
 
bool Evaluate (double, double, int, int, double *, int=0, int *=0) const override
 work horse evaluator More...
 
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
More...
 
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 override
 
bool GetLocalClosestPoint (const ON_3dPoint &, double, double, double *, double *, const ON_Interval *=nullptr, const ON_Interval *=nullptr) const override
 
bool GetNextDiscontinuity (int dir, ON::continuity c, double t0, double t1, double *t, int *hint=nullptr, int *dtype=nullptr, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const override
 
int GetNurbForm (ON_NurbsSurface &, double=0.0) const override
 
bool GetNurbFormParameterFromSurfaceParameter (double surface_s, double surface_t, double *nurbs_s, double *nurbs_t) const override
 
bool GetParameterTolerance (int, double, double *, double *) const override
 
bool GetSpanVector (int, double *) const override
 
bool GetSurfaceParameterFromNurbFormParameter (double nurbs_s, double nurbs_t, double *surface_s, double *surface_t) const override
 
bool GetSurfaceSize (double *width, double *height) const override
 
int HasNurbForm () const override
 
bool IsClosed (int) const override
 
bool IsContinuous (ON::continuity c, double s, double t, int *hint=nullptr, 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 override
 
ON_Surface::ISO IsIsoparametric (const ON_BoundingBox &bbox) const override
 override virtual ON_Surface::IsIsoparametric More...
 
ON_Surface::ISO IsIsoparametric (const ON_Curve &curve, const ON_Interval *curve_domain=nullptr) const override
 override virtual ON_Surface::IsIsoparametric More...
 
ON_CurveIsoCurve (int dir, double c) const override
 
bool IsPeriodic (int) const override
 
bool IsPlanar (ON_Plane *plane=nullptr, double tolerance=ON_ZERO_TOLERANCE) const override
 
bool IsSingular (int) const override
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 
ON_SurfaceOffset (double offset_distance, double tolerance, double *max_deviation=nullptr) const override
 
ON_SurfaceProxyoperator= (const ON_SurfaceProxy &)
 
const ON_SurfaceProxySurface () const
 
bool ProxySurfaceIsTransposed () const
 
ON_CurvePullback (const ON_Curve &curve_3d, double tolerance, const ON_Interval *curve_3d_subdomain=nullptr, ON_3dPoint start_uv=ON_3dPoint::UnsetPoint, ON_3dPoint end_uv=ON_3dPoint::UnsetPoint, ON_FitResult *rc=0) const override
 
ON_CurvePushup (const ON_Curve &curve_2d, double tolerance, const ON_Interval *curve_2d_subdomain=nullptr, ON_FitResult *rc=0) const override
 
bool Read (ON_BinaryArchive &) override
 
bool Reverse (int) override
 
void SetProxySurface (const ON_Surface *proxy_surface)
 
unsigned int SizeOf () const override
 ON_Object overrides. More...
 
int SpanCount (int) const override
 number of smooth spans in curve More...
 
bool Transform (const ON_Xform &) override
 
bool Transpose () override
 transpose surface parameterization (swap "s" and "t") More...
 
bool Write (ON_BinaryArchive &) const override
 
- Public Member Functions inherited from ON_Surface
 ON_Surface ()
 
 ON_Surface (const ON_Surface &)
 
virtual ~ON_Surface ()
 
bool AreaMassProperties (class 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_BrepBrepForm (ON_Brep *brep=nullptr) const override
 
virtual ON_SurfaceTreeCreateSurfaceTree () const
 
void DestroySurfaceTree ()
 
bool Ev1Der (double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, int quadrant=0, int *hint=0) const
 
bool 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
 
bool EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const override
 virtual ON_Geometry override More...
 
bool EvNormal (double u, double v, ON_3dPoint &point, ON_3dVector &du, ON_3dVector &dv, ON_3dVector &normal, int=0, int *=0) const
 
bool EvNormal (double u, double v, ON_3dPoint &point, ON_3dVector &normal, int quadrant=0, int *hint=0) const
 
bool EvNormal (double u, double v, ON_3dVector &normal, int quadrant=0, int *hint=0) const
 
bool EvPoint (double u, double v, ON_3dPoint &point, int quadrant=0, int *hint=0) const
 
virtual bool Extend (int dir, const ON_Interval &domain)
 
bool FrameAt (double u, double v, ON_Plane &frame) const
 
bool GetDomain (int dir, double *t0, double *t1) const
 
int GetIsoPushupDirection (const ON_Curve &curve_2d, double tolerance, const ON_Interval *curve_2d_subdomain, double *c, ON_Interval *c3_dom) const
 
bool GetSilhouette (const ON_Interval *udom, const ON_Interval *vdom, const ON_SilhouetteParameters parameters, const ON_PlaneEquation *clipping_planes, size_t clipping_plane_count, ON_ClassArray< ON_SIL_EVENT > &silhouettes, ON_ProgressReporter *progress, ON_Terminator *terminator) const
 
virtual bool GetSpanVectorIndex (int dir, double t, int side, int *span_vector_index, ON_Interval *span_interval) const
 
ON_CurveGetSurfaceParameterFromNurbFormParameter (const ON_Curve &curve3d, const ON_Curve &ns_curve2dX, double fit_tolerance) const
 
bool HasBrepForm () const override
 
int IntersectPlane (ON_PlaneEquation plane_equation, ON_ClassArray< ON_SSX_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, double fitting_tolerance=0.0, const ON_Interval *surface_udomain=0, const ON_Interval *surface_vdomain=0) 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
 
bool IsCone (ON_Cone *cone=nullptr, double tolerance=ON_ZERO_TOLERANCE) const
 
bool IsCylinder (ON_Cylinder *cylinder=nullptr, double tolerance=ON_ZERO_TOLERANCE) const
 
bool IsSolid () const
 
bool IsSphere (ON_Sphere *sphere=nullptr, double tolerance=ON_ZERO_TOLERANCE) const
 
bool IsTorus (ON_Torus *torus=nullptr, double tolerance=ON_ZERO_TOLERANCE) const
 
ON_3dVector NormalAt (double, double) const
 
ON_NurbsSurfaceNurbsSurface (ON_NurbsSurface *pNurbsSurface=nullptr, double tolerance=0.0, const ON_Interval *s_subdomain=nullptr, const ON_Interval *t_subdomain=nullptr) const
 
ON::object_type ObjectType () const override
 override ON_Object::ObjectType() - returns ON::surface_object More...
 
ON_Surfaceoperator= (const ON_Surface &)
 
ON_3dPoint PointAt (double, double) const
 simple evaluation interface - no error handling More...
 
virtual bool SetDomain (int dir, double t0, double t1)
 
bool SetDomain (int dir, ON_Interval domain)
 
virtual bool Split (int dir, double c, ON_Surface *&west_or_south_side, ON_Surface *&east_or_north_side) const
 
const ON_SurfaceTreeSurfaceTree () const
 
virtual bool Trim (int dir, const ON_Interval &domain)
 
bool VolumeMassProperties (class ON_MassProperties &mp, bool bVolume=true, bool bFirstMoments=true, bool bSecondMoments=true, bool bProductMoments=true, ON_3dPoint base_point=ON_3dPoint::UnsetPoint, double rel_tol=1.0e-6, double abs_tol=1.0e-6) const
 
- Public Member Functions inherited from ON_Geometry
 ON_Geometry ()=default
 
 ON_Geometry (const ON_Geometry &)=default
 
 ~ON_Geometry ()=default
 
ON_BoundingBox BoundingBox () const
 
virtual void ClearBoundingBox ()
 
virtual ON_COMPONENT_INDEX ComponentIndex () const
 
bool GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const
 
bool GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const
 
virtual bool GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const
 
virtual bool IsDeformable () const
 
virtual bool IsMorphable () const
 
virtual bool MakeDeformable ()
 
virtual bool Morph (const class ON_SpaceMorph &morph)
 
ON_Geometryoperator= (const ON_Geometry &)=default
 
bool Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Scale (double scale_factor)
 
virtual bool SwapCoordinates (int i, int j)
 
bool Translate (const ON_3dVector &translation_vector)
 
- Public Member Functions inherited from ON_Object
 ON_Object () ON_NOEXCEPT
 
 ON_Object (const ON_Object &)
 
virtual ~ON_Object ()
 
virtual ON_AggregateComponentStatus AggregateComponentStatus () const
 
bool AttachUserData (class ON_UserData *pUserData)
 
unsigned int ClearAllComponentStates () const
 
virtual unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const
 
virtual unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const
 
void CopyUserData (const ON_Object &source_object)
 
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
bool DetachUserData (class ON_UserData *pUserData)
 
void EmergencyDestroy ()
 
class ON_UserDataFirstUserData () const
 
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
 
class ON_UserDataGetUserData (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
 
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
 
bool IsKindOf (const ON_ClassId *pClassId) const
 
virtual void MarkAggregateComponentStatusAsNotCurrent () const
 
virtual void MemoryRelocate ()
 
virtual ON_UUID ModelObjectId () const
 
void MoveUserData (ON_Object &source_object)
 
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
 
ON_Objectoperator= (const ON_Object &)
 
void PurgeUserData ()
 
virtual unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const
 
virtual unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const
 
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
 
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
 
bool ThisIsNullptr (bool bSilentError) const
 
void TransformUserData (const class ON_Xform &xform)
 
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
 
int UserStringCount () const
 

Additional Inherited Members

- Public Types inherited from ON_Surface
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
}
 pure virtual class for surface objects More...
 
- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
}
 
- Static Public Member Functions inherited from ON_Surface
static class ON_NurbsSurfaceCreateCubicLoft (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)
 
static class ON_NurbsSurfaceCreateLinearLoft (int curve_count, const ON_Curve *const *curve_list, double k, int is_closed=0, class ON_NurbsSurface *nurbs_surface=0)
 
- Static Public Attributes inherited from ON_Geometry
const static ON_Geometry Unset
 
- Protected Member Functions inherited from ON_Surface
ON_CurvePullbackCurveProxy (const ON_CurveProxy &curveproxy_3d, double tolerance, const ON_Interval *curve_3d_subdomain, ON_3dPoint start_uv, ON_3dPoint end_uv, ON_FitResult *rc) const
 Helper for ON_Surface::Pullback overrides that handles "real" curve issues. More...
 
ON_CurvePullbackPolyCurve (const ON_PolyCurve &polycurve_3d, double tolerance, const ON_Interval *curve_3d_subdomain, ON_3dPoint start_uv, ON_3dPoint end_uv, ON_FitResult *rc) const
 
ON_CurvePushupCurveProxy (const ON_CurveProxy &curveproxy_2d, double tolerance, const ON_Interval *curve_2d_subdomain, ON_FitResult *rc) const
 Helper for ON_Surface::Pushup overrides that handles "real" curve issues. More...
 
ON_CurvePushupPolyCurve (const ON_PolyCurve &polycurve_2d, double tolerance, const ON_Interval *curve_2d_subdomain, ON_FitResult *rc) const
 

Constructor & Destructor Documentation

◆ ON_OffsetSurface() [1/2]

ON_OffsetSurface::ON_OffsetSurface ( )

◆ ~ON_OffsetSurface()

ON_OffsetSurface::~ON_OffsetSurface ( )

◆ ON_OffsetSurface() [2/2]

ON_OffsetSurface::ON_OffsetSurface ( const ON_OffsetSurface src)

Member Function Documentation

◆ BaseSurface()

const ON_Surface* ON_OffsetSurface::BaseSurface ( ) const

Returns: Base surface;

◆ Evaluate()

bool ON_OffsetSurface::Evaluate ( double  u,
double  v,
int  num_der,
int  array_stride,
double *  der_array,
int  quadrant = 0,
int *  hint = 0 
) const
overridevirtual

work horse evaluator

Parameters
ureturns false if unable to evaluate
vevaluation parameters
num_dernumber of derivatives (>=0)
array_stridearray stride (>=Dimension())
der_arrayarray of length stride*(ndir+1)*(ndir+2)/2
quadrantoptional - determines which quadrant to evaluate from 0 = default 1 from NE quadrant 2 from NW quadrant 3 from SW quadrant 4 from SE quadrant
hintoptional - evaluation hint (int[2]) used to speed repeated evaluations

Implements ON_Surface.

◆ GetBBox()

bool ON_OffsetSurface::GetBBox ( double *  boxmin,
double *  boxmax,
bool  bGrowBox = false 
) const
overridevirtual

virtual ON_Geometry GetBBox override

Reimplemented from ON_Geometry.

◆ OffsetFunction() [1/2]

ON_OffsetSurfaceFunction& ON_OffsetSurface::OffsetFunction ( )

◆ OffsetFunction() [2/2]

const ON_OffsetSurfaceFunction& ON_OffsetSurface::OffsetFunction ( ) const

◆ operator=()

ON_OffsetSurface& ON_OffsetSurface::operator= ( const ON_OffsetSurface src)

◆ SetBaseSurface() [1/2]

bool ON_OffsetSurface::SetBaseSurface ( const ON_Surface base_surface)

Description: Sets base surface to a surface that is not managed by the ON_OffsetSurface class. Parameters: base_surface - [in] points to a base surface the caller insures will exist for the lifetimes of the ON_OffsetSurface class. Returns: True if successful.

◆ SetBaseSurface() [2/2]

bool ON_OffsetSurface::SetBaseSurface ( ON_Surface base_surface,
bool  bManage 
)

Description: Sets base surface to a surface that is optionally managed by the ON_OffsetSurface class. Parameters: base_surface - [in] points to a base surface the caller insures will exist for the lifetimes of the ON_OffsetSurface class. bManage - [in] if true, the base_surface must point to a surface that is on the heap and the surface will be deleted by ~ON_OffsetSurface. Returns: True if successful.