#include <opennurbs_brep.h>
Public Member Functions | |
| ON_BrepEdge () | |
| ON_BrepEdge (int) | |
| edge index More... | |
| ON_Brep * | Brep () const |
| bool | ChangeEdgeCurve (int c3i) |
| ON_COMPONENT_INDEX | ComponentIndex () const override |
| virtual ON_Geometry::ComponentIndex() override More... | |
| ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const override |
| virtual ON_Object::DataCRC override More... | |
| void | Dump (ON_TextLog &) const override |
| virtual ON_Object::Dump() override More... | |
| int | EdgeCurveIndexOf () const |
| Implementation. More... | |
| const ON_Curve * | EdgeCurveOf () const |
| bool | IsClosed () const override |
| virtual ON_Curve::IsClosed override More... | |
| bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
| ON::object_type | ObjectType () const override |
| ON_BrepEdge & | operator= (const ON_BrepEdge &) |
| bool | Read (ON_BinaryArchive &) override |
| virtual ON_Object::Read() override More... | |
| bool | Reverse () override |
| virtual ON_Curve::Reverse override More... | |
| unsigned int | SizeOf () const override |
| virtual ON_Object::SizeOf override More... | |
| ON_BrepTrim * | Trim (int eti) const |
| int | TrimCount () const |
| void | UnsetPlineEdgeParameters () |
| ON_BrepVertex * | Vertex (int evi) const |
| bool | Write (ON_BinaryArchive &) const override |
| virtual ON_Object::Write() override More... | |
Public Member Functions inherited from ON_CurveProxy | |
| ON_CurveProxy () ON_NOEXCEPT | |
| ON_CurveProxy (const ON_CurveProxy &) | |
| ON_CurveProxy (const ON_Curve *) | |
| ON_CurveProxy (const ON_Curve *, ON_Interval) | |
| virtual | ~ON_CurveProxy () |
| ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const override |
| virtual ON_Object::DataCRC override More... | |
| int | Degree () 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 () const override |
| ON_Curve overrides. More... | |
| void | Dump (ON_TextLog &) const override |
| for debugging More... | |
| ON_Curve * | DuplicateCurve () const override |
| bool | Evaluate (double, int, int, double *, int=0, int *=0) const override |
| Domain changes from [a,b] to [-b,-a]. More... | |
| bool | GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override |
| virtual ON_Geometry GetBBox override More... | |
| bool | GetCurveParameterFromNurbFormParameter (double, double *) const override |
| virtual ON_Curve::GetCurveParameterFromNurbFormParameter override More... | |
| bool | GetNextDiscontinuity (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_NurbsCurve &, double=0.0, const ON_Interval *=nullptr) const override |
| bool | GetNurbFormParameterFromCurveParameter (double, double *) const override |
| virtual ON_Curve::GetNurbFormParameterFromCurveParameter override More... | |
| bool | GetParameterTolerance (double, double *, double *) const override |
| (optional - override if curve is piecewise smooth) More... | |
| bool | GetSpanVector (double *) const override |
| int | HasNurbForm () const override |
| bool | IsArc (const ON_Plane *=nullptr, ON_Arc *=nullptr, double=ON_ZERO_TOLERANCE) const override |
| bool | IsClosed (void) const override |
| bool | IsContinuous (ON::continuity c, 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 |
| bool | IsInPlane (const ON_Plane &, double=ON_ZERO_TOLERANCE) const override |
| bool | IsLinear (double=ON_ZERO_TOLERANCE) const override |
| bool | IsPeriodic (void) const override |
| periodic.) More... | |
| bool | IsPlanar (ON_Plane *=nullptr, double=ON_ZERO_TOLERANCE) const override |
| int | IsPolyline (ON_SimpleArray< ON_3dPoint > *pline_points=nullptr, ON_SimpleArray< double > *pline_t=nullptr) const override |
| virtual override of ON_Curve::IsPolyline More... | |
| bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
| ON_Object overrides. More... | |
| ON_CurveProxy & | operator= (const ON_CurveProxy &) |
| const ON_Curve * | ProxyCurve () const |
| ON_Interval | ProxyCurveDomain () const |
| bool | ProxyCurveIsReversed () const |
| bool | Read (ON_BinaryArchive &) override |
| double | RealCurveParameter (double t) const |
| bool | Reverse () override |
| bool | SetDomain (double t0, double t1) override |
| bool | SetDomain (ON_Interval domain) |
| void | SetProxyCurve (const ON_Curve *real_curve) |
| void | SetProxyCurve (const ON_Curve *real_curve, ON_Interval real_curve_subdomain) |
| bool | SetProxyCurveDomain (ON_Interval proxy_curve_subdomain) |
| unsigned int | SizeOf () const override |
| virtual ON_Object::SizeOf override More... | |
| int | SpanCount () const override |
| number of smooth spans in curve More... | |
| bool | Split (double t, ON_Curve *&left_side, ON_Curve *&right_side) const override |
| override of virtual ON_Curve::Split More... | |
| double | ThisCurveParameter (double real_curve_parameter) const |
| bool | Transform (const ON_Xform &) override |
| bool | Trim (const ON_Interval &domain) override |
| override of virtual ON_Curve::Trim More... | |
| bool | Write (ON_BinaryArchive &) const override |
Public Member Functions inherited from ON_Curve | |
| ON_Curve () ON_NOEXCEPT | |
| ON_Curve (const ON_Curve &) | |
| virtual | ~ON_Curve () |
| virtual bool | ChangeClosedCurveSeam (double t) |
| virtual bool | ChangeDimension (int desired_dimension) |
| ON_3dVector | CurvatureAt (double t) const |
| ON_3dVector | DerivativeAt (double t) const |
| void | DestroyCurveTree () |
| bool | Ev1Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, int side=0, int *hint=0) const |
| bool | Ev2Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, ON_3dVector &second_derivative, int side=0, int *hint=0) const |
| bool | EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const override |
| virtual ON_Geometry override More... | |
| bool | EvCurvature (double t, ON_3dPoint &point, ON_3dVector &tangent, ON_3dVector &kappa, int side=0, int *hint=0) const |
| bool | EvPoint (double t, ON_3dPoint &point, int side=0, int *hint=0) const |
| bool | EvTangent (double t, ON_3dPoint &point, ON_3dVector &tangent, int side=0, int *hint=0) const |
| virtual bool | Extend (const ON_Interval &domain) |
| bool | FirstSpanIsLinear (double min_length, double tolerance) const |
| bool | FirstSpanIsLinear (double min_length, double tolerance, ON_Line *span_line) const |
| bool | FrameAt (double t, ON_Plane &plane) const |
| bool | GetDomain (double *t0, double *t1) const |
| curve interface More... | |
| virtual bool | GetSpanVectorIndex (double t, int side, int *span_vector_index, ON_Interval *span_domain) const |
| bool | GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const override |
| virtual ON_Geometry GetTightBoundingBox override More... | |
| bool | IsArcAt (double t, const ON_Plane *plane=0, ON_Arc *arc=0, double tolerance=ON_ZERO_TOLERANCE, double *t0=0, double *t1=0) const |
| bool | IsClosable (double tolerance, double min_abs_size=0.0, double min_rel_size=10.0) const |
| virtual bool | IsEllipse (const ON_Plane *plane=nullptr, ON_Ellipse *ellipse=nullptr, double tolerance=ON_ZERO_TOLERANCE) const |
| bool | LastSpanIsLinear (double min_length, double tolerance) const |
| bool | LastSpanIsLinear (double min_length, double tolerance, ON_Line *span_line) const |
| ON_NurbsCurve * | NurbsCurve (ON_NurbsCurve *pNurbsCurve=nullptr, double tolerance=0.0, const ON_Interval *subdomain=nullptr) const |
| ON::object_type | ObjectType () const override |
| ON_Curve & | operator= (const ON_Curve &) |
| ON_3dPoint | PointAt (double t) const |
| ON_3dPoint | PointAtEnd () const |
| ON_3dPoint | PointAtStart () const |
| bool | SetDomain (ON_Interval domain) |
| virtual bool | SetEndPoint (ON_3dPoint end_point) |
| virtual bool | SetStartPoint (ON_3dPoint start_point) |
| ON_3dVector | TangentAt (double t) 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 class ON_Brep * | BrepForm (class ON_Brep *brep=nullptr) const |
| virtual void | ClearBoundingBox () |
| bool | GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const |
| bool | GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const |
| virtual bool | HasBrepForm () const |
| virtual bool | IsDeformable () const |
| bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
| virtual bool | MakeDeformable () |
| ON_Geometry & | operator= (const ON_Geometry &)=default |
| bool | Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
| bool | Rotate (double rotation_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_ComponentStatus states_to_clear) const |
| virtual unsigned int | ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const |
| unsigned int | CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution) |
| void | CopyUserData (const ON_Object &source_object) |
| virtual bool | DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) |
| bool | DetachUserData (class ON_UserData *pUserData) |
| void | EmergencyDestroy () |
| class ON_UserData * | FirstUserData () const |
| virtual unsigned int | GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const |
| class 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 |
| bool | IsKindOf (const ON_ClassId *pClassId) const |
| virtual void | MarkAggregateComponentStatusAsNotCurrent () const |
| virtual void | MemoryRelocate () |
| virtual ON_UUID | ModelObjectId () const |
| unsigned int | MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems) |
| void | MoveUserData (ON_Object &source_object) |
| ON_Object & | operator= (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) |
| 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 |
Public Attributes | |
| int | m_c3i = -1 |
| int | m_edge_index = -1 |
| index of edge in ON_Brep.m_E[] array More... | |
| ON_U | m_edge_user |
| ON_ComponentStatus | m_status = ON_ComponentStatus::NoneSet |
| ON_SimpleArray< int > | m_ti |
| indices of Trims that use this edge More... | |
| double | m_tolerance = ON_UNSET_VALUE |
| int | m_vi [2] |
Friends | |
| class | ON_Brep |
Additional Inherited Members | |
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 Attributes inherited from ON_Geometry | |
| static const ON_Geometry | Unset |
Protected Member Functions inherited from ON_CurveProxy | |
| void | SetProxyCurveIsReversed (bool bReversed) |
Protected Member Functions inherited from ON_Curve | |
| bool | ParameterSearch (double t, int &index, bool bEnableSnap, const ON_SimpleArray< double > &m_t, double RelTol=ON_SQRT_EPSILON) const |
Description: Brep edge information is stored in ON_BrepEdge classes. ON_Brep.m_E[] is an array of all the edges in the brep.
An ON_BrepEdge is derived from ON_CurveProxy so the the edge can supply easy to use evaluation tools via the ON_Curve virtual member functions.
Note well that the domains and orientations of the curve m_C3[edge.m_c3i] and the edge as a curve may not agree.April 24, 2017 Dale Lear ON_Curve::Trim(const ON_Interval&) is a virtual function and ON_BrepEdge derives from ON_CurveProxy which derives from ON_Curve. The ON_Brep::Trim(int) function was added and mistakenly named "Trim". This all happened about twenty years ago.
Both the virtual ON_Curve::Trim(const ON_Interval&) and ON_BrepEdge::Trim(int) functions are widely used. At some point the functionON_Brep::Trim() will be deprecated and the 4263 warning ON_Brep::Trim(int) generates will be disabled for the definition of class ON_BrepEdge. In version 7, ON_Brep::Trim(int) will be deleted and the warning will no longer be disabled.
| ON_BrepEdge::ON_BrepEdge | ( | ) |
Construction
In general, you should not directly create ON_BrepEdge classes. Use ON_Brep::NewVertex instead.
| ON_BrepEdge::ON_BrepEdge | ( | int | ) |
edge index
| ON_Brep* ON_BrepEdge::Brep | ( | ) | const |
Returns: Brep this edge belongs to.
| bool ON_BrepEdge::ChangeEdgeCurve | ( | int | c3i | ) |
Description: Expert user tool that replaces the 3d curve geometry of an edge Parameters; c3i - [in] brep 3d curve index of new curve Returns: True if successful. Example:
ON_Curve* pCurve = ...;
int c3i = brep.AddEdgeCurve(pCurve);
edge.ChangeEdgeCurve(c3i);
Remarks: Sets m_c3i, calls SetProxyCurve, cleans runtime caches.
|
overridevirtual |
virtual ON_Geometry::ComponentIndex() override
Reimplemented from ON_Geometry.
|
overridevirtual |
virtual ON_Object::DataCRC override
Reimplemented from ON_Object.
|
overridevirtual |
| int ON_BrepEdge::EdgeCurveIndexOf | ( | ) | const |
Implementation.
Not necessary. Base class does the right thing. ON_CurveProxy does not have an override. / virtual ON_Curve::SetStartPoint override bool SetStartPoint( ON_3dPoint start_point );
/ virtual ON_Curve::SetEndPoint override bool SetEndPoint( ON_3dPoint end_point ); Returns: brep.m_C3[] index of the 3d curve geometry used by this edge or -1.
| const ON_Curve* ON_BrepEdge::EdgeCurveOf | ( | ) | const |
Returns: 3d curve geometry used by this edge or nullptr.
|
overridevirtual |
virtual ON_Curve::IsClosed override
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Tests an object to see if its data members are correctly initialized. Parameters: text_log - [in] if the object is not valid and text_log is not nullptr, then a brief englis description of the reason the object is not valid is appened to the log. The information appended to text_log is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Returns: table true object is valid false object is invalid, uninitialized, etc.
Reimplemented from ON_Object.
|
overridevirtual |
virtual ON_Object function The ON_BrepEdge override returns ON::curve_object.
Reimplemented from ON_Object.
| ON_BrepEdge& ON_BrepEdge::operator= | ( | const ON_BrepEdge & | ) |
|
overridevirtual |
virtual ON_Object::Read() override
Reimplemented from ON_Object.
|
overridevirtual |
virtual ON_Curve::Reverse override
Implements ON_Curve.
|
overridevirtual |
virtual ON_Object::SizeOf override
Reimplemented from ON_Object.
| ON_BrepTrim* ON_BrepEdge::Trim | ( | int | eti | ) | const |
Parameters: eti - [in] index into the edge's m_ti[] array. Returns: The trim brep.m_T[edge.m_ti[eti]]; Remarks: This version of "Trim" hides the virtual function ON_CurveProxy::Trim(const ON_Interval&), which is a good thing. Special care must be takend when changing the geometry of a brep edge to insure vertex, trim, and edge information remains valid.
| int ON_BrepEdge::TrimCount | ( | ) | const |
Returns: Number of trims attached to this edge.
| void ON_BrepEdge::UnsetPlineEdgeParameters | ( | ) |
Description: When an edge is modified, the m_pline[].e values need to be set to ON_UNSET_VALUE by calling UnsetPlineEdgeParameters().
| ON_BrepVertex* ON_BrepEdge::Vertex | ( | int | evi | ) | const |
Parameters: evi - [in] 0 or 1 Returns: Brep vertex at specified end of the edge.
|
overridevirtual |
virtual ON_Object::Write() override
Reimplemented from ON_Object.
|
friend |
| int ON_BrepEdge::m_c3i = -1 |
index of 3d curve in m_C3[] array (edge.m_curve also points to m_C3[m_c3i])
| int ON_BrepEdge::m_edge_index = -1 |
index of edge in ON_Brep.m_E[] array
|
mutable |
Union available for application use. The constructor zeros m_edge_user. The value is of m_edge_user is not saved in 3DM archives and may be changed by some computations.
|
mutable |
| ON_SimpleArray<int> ON_BrepEdge::m_ti |
indices of Trims that use this edge
| double ON_BrepEdge::m_tolerance = ON_UNSET_VALUE |
accuracy of edge curve (>=0.0 or ON_UNSET_VALUE)
A value of ON_UNSET_VALUE indicates that the tolerance should be computed.
The maximum distance from the edge's 3d curve to any surface of a face that has this edge as a portion of its boundary must be <= this tolerance.
| int ON_BrepEdge::m_vi[2] |
indices of starting/ending vertex
For closed edges, m_vi[0] = m_vi[1] and m_edge_index appears twice in the m_V[m_vi[0]].m_ei[] array. The first occurance of m_edge_index in m_V[m_vi[0]].m_ei[] is for the closed edge starting the vertex. The second occurance of m_edge_index in m_V[m_vi[0]].m_ei[] is for the closed edge edge ending at the vertex. C.f. ON_Brep::Next/PrevEdge().