17 #if !defined(OPENNURBS_EXTRUSION_INC_) 18 #define OPENNURBS_EXTRUSION_INC_ 42 bool ON_GetEndCapTransformation(
70 unsigned int SizeOf()
const override;
71 ON__UINT32
DataCRC( ON__UINT32 current_remainder )
const override;
83 bool GetBBox(
double* boxmin,
double* boxmax,
bool bGrowBox =
false )
const override;
169 bool GetBrepFormComponentIndex(
170 ON_COMPONENT_INDEX extrusion_ci,
171 ON_COMPONENT_INDEX& brep_ci
174 bool GetBrepFormComponentIndex(
175 ON_COMPONENT_INDEX extrusion_ci,
176 double extrusion_profile_parameter,
178 ON_COMPONENT_INDEX& brep_ci
181 bool GetBrepFormComponentIndex(
182 ON_COMPONENT_INDEX extrusion_ci,
183 double extrusion_profile_parameter,
185 ON_COMPONENT_INDEX& brep_ci
216 int* span_vector_index,
234 double tolerance = ON_ZERO_TOLERANCE
250 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
251 double curvature_tolerance=ON_SQRT_EPSILON
258 double point_tolerance=ON_ZERO_TOLERANCE,
259 double d1_tolerance=ON_ZERO_TOLERANCE,
260 double d2_tolerance=ON_ZERO_TOLERANCE,
261 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
262 double curvature_tolerance=ON_SQRT_EPSILON
267 bool Reverse(
int dir )
override;
307 double tolerance = 0.0
311 double nurbs_s,
double nurbs_t,
312 double* surface_s,
double* surface_t
315 double surface_s,
double surface_t,
316 double* nurbs_s,
double* nurbs_t
346 ON_DEPRECATED_MSG(
"Use ON_Extrusion.m_mesh_cache to managed chached meshes")
347 bool SetMesh( ON::mesh_type mt,
ON_Mesh* mesh );
367 ON_DEPRECATED_MSG(
"Use ON_Extrusion.m_mesh_cache to managed chached meshes")
368 const ON_Mesh* Mesh( ON::mesh_type mt )
const;
382 ON_DEPRECATED_MSG(
"Use ON_Extrusion.m_mesh_cache to managed chached meshes")
383 void DestroyMesh( ON::mesh_type mt );
442 int PathParameter()
const;
463 void GetMiterPlaneNormal(
int end,
ON_3dVector& N)
const;
472 int IsMitered()
const;
487 int IsCapped()
const;
498 int CapCount()
const;
523 ON_DEPRECATED_MSG(
"Use CapCount(), ProfileCount(), or ProfileSmoothSegmentCount()")
524 int FaceCount()
const;
534 bool GetProfileTransformation(
double s,
ON_Xform& xform )
const;
554 bool GetProfilePlane(
double s,
ON_Plane& plane )
const;
575 bool GetPathPlane(
double s,
ON_Plane& plane )
const;
599 bool SetOuterProfile(
ON_Curve* outer_profile,
bool bCap );
618 bool AddInnerProfile(
ON_Curve* inner_profile );
627 int ProfileCount()
const;
641 int ProfileSmoothSegmentCount(
int profile_index )
const;
655 int ProfileParameter()
const;
668 const ON_Curve* Profile(
int profile_index)
const;
685 ON_Curve* Profile3d(
int profile_index,
double s )
const;
697 ON_Curve* Profile3d( ON_COMPONENT_INDEX ci )
const;
709 ON_Curve* WallEdge( ON_COMPONENT_INDEX ci )
const;
721 ON_Surface* WallSurface( ON_COMPONENT_INDEX ci )
const;
746 int ProfileIndex(
double profile_parameter )
const;
789 bool ProfileIsKinked(
int profile_index )
const;
809 static bool CleanupPolyCurveProfile(
ON_PolyCurve& polycurve );
864 static const double m_Nz_min;
868 static const double m_path_length_min;
virtual bool Transpose()=0
virtual bool Transform(const ON_Xform &xform)
Transforms the object.
virtual bool IsClosed(int) const
bool SetDomain(int dir, ON_Interval domain)
ON_Surface & operator=(const ON_Surface &)
virtual bool IsPeriodic(int) const
virtual int Dimension() const
Dimension of the object.
virtual int GetNurbForm(ON_NurbsSurface &nurbs_surface, double tolerance=0.0) const
Get a NURBS surface representation of this surface.
Definition: opennurbs_nurbssurface.h:62
virtual bool GetBBox(double *boxmin, double *boxmax, bool bGrowBox=false) const
This is the virtual function that actually calculates axis aligned bounding boxes.
Definition: opennurbs_array.h:36
virtual bool GetSpanVector(int dir, double *span_vector) const =0
ON_Curve is a pure virtual class for curve objects
Definition: opennurbs_curve.h:93
Definition: opennurbs_linecurve.h:21
Definition: opennurbs_mesh.h:4193
virtual bool GetSurfaceParameterFromNurbFormParameter(double nurbs_s, double nurbs_t, double *surface_s, double *surface_t) const
ON_Cylinder is a right circular cylinder.
Definition: opennurbs_cylinder.h:27
virtual bool IsPlanar(ON_Plane *plane=nullptr, double tolerance=ON_ZERO_TOLERANCE) const
Test a surface to see if it is planar.
virtual ON_Interval Domain(int dir) const =0
ON_Brep * BrepForm(ON_Brep *brep=nullptr) const override
Overrides virtual ON_Geometry::HasBrepForm. Uses ON_Brep::Create( ON_Surface&* ) to create a brep for...
virtual bool GetTightBoundingBox(class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const
Get tight bounding box.
virtual int Degree(int dir) const =0
virtual ISO IsIsoparametric(const ON_Curve &curve, const ON_Interval *curve_domain=nullptr) const
Test a 2d curve to see if it is iso parameteric in the surface's parameter space. ...
Definition: opennurbs_bounding_box.h:25
virtual int SpanCount(int dir) const =0
virtual bool GetNurbFormParameterFromSurfaceParameter(double surface_s, double surface_t, double *nurbs_s, double *nurbs_t) const
An ON_PolyCurve is an ON_Curve represented by a sequence of contiguous ON_Curve segments. A valid polycurve is represented by an array m_segment of Count()>=1 curve objects and a strictly increasing array m_t of Count()+1 parameter values. The i-th curve segment, when considered as part of the polycurve, is affinely reparamaterized from m_t[i] to m_t[i+1], i.e., m_segment[i].Domain()[0] is mapped to m_t[i] and m_segment[i].Domain()[1] is mapped to m_t[i+1].
Definition: opennurbs_polycurve.h:35
virtual bool Split(int dir, double c, ON_Surface *&west_or_south_side, ON_Surface *&east_or_north_side) const
Splits (divides) the surface into two parts at the specified parameter.
virtual bool Trim(int dir, const ON_Interval &domain)
Removes the portions of the surface outside of the specified interval.
ISO
pure virtual class for surface objects
Definition: opennurbs_surface.h:72
virtual void Dump(ON_TextLog &) const
Creates a text dump of the object.
Definition: opennurbs_beam.h:51
Definition: opennurbs_mesh.h:2188
unsigned int SizeOf() const override
virtual ON_Object::SizeOf override
Definition: opennurbs_line.h:20
void DestroyRuntimeCache(bool bDelete=true) override
virtual ON_Object::DestroyRuntimeCache override
virtual bool Extend(int dir, const ON_Interval &domain)
Pure virtual function. Default returns false. Where possible, analytically extends surface to include...
surface of revolution
Definition: opennurbs_sumsurface.h:23
virtual ON_Curve * IsoCurve(int dir, double c) const
Get isoparametric curve.
Definition: opennurbs_brep.h:1472
virtual bool GetParameterTolerance(int dir, double t, double *tminus, double *tplus) const
static const ON_MeshCache Empty
Definition: opennurbs_mesh.h:4196
Definition: opennurbs_textlog.h:20
Definition: opennurbs_archive.h:1783
virtual bool Read(ON_BinaryArchive &binary_archive)
Low level archive writing tool used by ON_BinaryArchive::ReadObject().
Definition: opennurbs_point.h:460
bool IsValid(class ON_TextLog *text_log=nullptr) const override
Tests an object to see if its data members are correctly initialized.
virtual bool Write(ON_BinaryArchive &binary_archive) const
Low level archive writing tool used by ON_BinaryArchive::WriteObject().
virtual ON__UINT32 DataCRC(ON__UINT32 current_remainder) const
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quic...
Definition: opennurbs_plane.h:20
Definition: opennurbs_surface.h:57
virtual bool Reverse(int)=0
virtual bool GetSpanVectorIndex(int dir, double t, int side, int *span_vector_index, ON_Interval *span_interval) const
virtual bool GetSurfaceSize(double *width, double *height) const
Get an estimate of the size of the rectangle that would be created if the 3d surface where flattened ...
Definition: opennurbs_point.h:1152
Definition: opennurbs_point.h:46
virtual int HasNurbForm() const
Is there a NURBS surface representation of this surface.
ON::object_type ObjectType() const override
override ON_Object::ObjectType() - returns ON::surface_object
virtual bool Evaluate(double u, double v, int num_der, int array_stride, double *der_array, int quadrant=0, int *hint=0) const =0
work horse evaluator
virtual 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
Search for a derivatitive, tangent, or curvature discontinuity.
virtual 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
Test continuity at a surface parameter value.