Rhino C++ API  8.13
Public Member Functions | Public Attributes | List of all members
ON_BrepVertex Class Reference

#include <opennurbs_brep.h>

Inheritance diagram for ON_BrepVertex:
ON_Point ON_Geometry ON_Object

Public Member Functions

 ON_BrepVertex ()
 
 ON_BrepVertex (int)
 
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 EdgeCount () const
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 
ON_BrepVertexoperator= (const ON_BrepVertex &)
 
ON_3dPoint Point () const
 
unsigned int ProxyBrepSubDVertexId () const
 
bool Read (ON_BinaryArchive &) override
 virtual ON_Object::Read() override More...
 
bool SetPoint (const ON_3dPoint &)
 Interface. More...
 
unsigned int SizeOf () const override
 virtual ON_Object::SizeOf override More...
 
double Tolerance () const
 
bool Write (ON_BinaryArchive &) const override
 virtual ON_Object::Write() override More...
 
- Public Member Functions inherited from ON_Point
 ON_Point ()
 
 ON_Point (const ON_3dPoint &)
 
 ON_Point (const ON_Point &)
 
 ON_Point (double, double, double)
 
 ~ON_Point ()
 
int Dimension () const override
 
void Dump (ON_TextLog &) const override
 for debugging More...
 
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
More...
 
bool IsDeformable () const override
 virtual ON_Geometry::IsDeformable() override More...
 
bool IsMorphable () const override
 virtual ON_Geometry override More...
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 
bool MakeDeformable () override
 virtual ON_Geometry::MakeDeformable() override More...
 
bool Morph (const ON_SpaceMorph &morph) override
 virtual ON_Geometry override More...
 
ON::object_type ObjectType () const override
 
 operator const double * () const
 
 operator const ON_3dPoint & () const
 
 operator const ON_3dPoint * () const
 
 operator double * ()
 
 operator ON_3dPoint & ()
 
 operator ON_3dPoint * ()
 
ON_Pointoperator= (const ON_3dPoint &)
 
ON_Pointoperator= (const ON_Point &)
 
bool Read (ON_BinaryArchive &) override
 
bool SwapCoordinates (int, int) override
 
bool Transform (const ON_Xform &) override
 
bool Write (ON_BinaryArchive &) const override
 
- 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_BrepBrepForm (class ON_Brep *brep=nullptr) const
 
virtual void ClearBoundingBox ()
 
virtual bool EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) 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 HasBrepForm () const
 
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)
 
const ON_BoundingBox TightBoundingBox () const
 
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)
 
virtual void DestroyRuntimeCache (bool bDelete=true)
 
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
 

Public Attributes

ON_SimpleArray< int > m_ei
 Implementation. More...
 
ON_ComponentStatus m_status = ON_ComponentStatus::NoneSet
 
double m_tolerance = ON_UNSET_VALUE
 
int m_vertex_index = -1
 index of the vertex in the ON_Brep.m_V[] array More...
 
ON_U m_vertex_user
 
- Public Attributes inherited from ON_Point
ON_3dPoint point
 

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
const static ON_Geometry Unset
 

Detailed Description

TEMPORARY DEFINES SO I DON'T BREAK THE BUILD define m_vertex_user_i m_vertex_user.i define m_trim_user_i m_trim_user.i define m_edge_user_i m_edge_user.i define m_loop_user_i m_loop_user.i define m_face_user_i m_face_user.i Description: Brep vertex information is stored in ON_BrepVertex classes. ON_Brep.m_V[] is an array of all the vertices in the brep.

If a vertex is a point on a face, then brep.m_E[m_ei] will be an edge with no 3d curve. This edge will have a single trim with type ON_BrepTrim::ptonsrf. There will be a loop containing this single trim. Use ON_Brep::NewPointOnFace() to create vertices that are points on faces.

Constructor & Destructor Documentation

◆ ON_BrepVertex() [1/2]

ON_BrepVertex::ON_BrepVertex ( )

Construction

In general, you should not directly create ON_BrepVertex classes. Use ON_Brep::NewVertex instead.

◆ ON_BrepVertex() [2/2]

ON_BrepVertex::ON_BrepVertex ( int  )

Member Function Documentation

◆ ComponentIndex()

ON_COMPONENT_INDEX ON_BrepVertex::ComponentIndex ( ) const
overridevirtual

virtual ON_Geometry::ComponentIndex() override

Reimplemented from ON_Geometry.

◆ DataCRC()

ON__UINT32 ON_BrepVertex::DataCRC ( ON__UINT32  current_remainder) const
overridevirtual

virtual ON_Object::DataCRC override

Reimplemented from ON_Object.

◆ Dump()

void ON_BrepVertex::Dump ( ON_TextLog ) const
overridevirtual

virtual ON_Object::Dump() override

for debugging

Reimplemented from ON_Object.

◆ EdgeCount()

int ON_BrepVertex::EdgeCount ( ) const

Returns: number of edges that begin or end at this vertex.

◆ IsValid()

bool ON_BrepVertex::IsValid ( class ON_TextLog text_log = nullptr) const
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 english description of the reason the object is not valid is appended 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: @untitled table true object is valid false object is invalid, uninitialized, etc.

Reimplemented from ON_Object.

◆ operator=()

ON_BrepVertex& ON_BrepVertex::operator= ( const ON_BrepVertex )

◆ Point()

ON_3dPoint ON_BrepVertex::Point ( ) const

Returns: Vertex location.

◆ ProxyBrepSubDVertexId()

unsigned int ON_BrepVertex::ProxyBrepSubDVertexId ( ) const

Returns: If this vertex is part of a brep created by ON_SubD::ProxyBrep(), then the subd component id of the corresponding SubD vertex is returned. Otherwise 0 is returned.

◆ Read()

bool ON_BrepVertex::Read ( ON_BinaryArchive )
overridevirtual

virtual ON_Object::Read() override

Reimplemented from ON_Object.

◆ SetPoint()

bool ON_BrepVertex::SetPoint ( const ON_3dPoint )

Interface.

Description: Set vertex location. Parameters: point - [in] 3d vertex location

◆ SizeOf()

unsigned int ON_BrepVertex::SizeOf ( ) const
overridevirtual

virtual ON_Object::SizeOf override

Reimplemented from ON_Object.

◆ Tolerance()

double ON_BrepVertex::Tolerance ( ) const

Returns: value of ON_BrepVertex::m_tolerance Remarks: Use ON_Brep::SetVertexTolerance( ON_BrepVertex& ) to set tolerances.

◆ Write()

bool ON_BrepVertex::Write ( ON_BinaryArchive ) const
overridevirtual

virtual ON_Object::Write() override

Reimplemented from ON_Object.

Member Data Documentation

◆ m_ei

ON_SimpleArray<int> ON_BrepVertex::m_ei

Implementation.

indices of edges starting/ending at this vertex

For closed edges, edge.m_vi[0] = edge.m_vi[1] and edge.m_edge_index appears twice in the m_ei[] array. The first occurrence of edge.m_edge_index in m_ei[] is for the closed edge starting the vertex. The second occurrence of edge,m_edge_index in m_ei[] is for the closed edge ending at the vertex. C.f. ON_Brep::Next/PrevEdge().

◆ m_status

ON_ComponentStatus ON_BrepVertex::m_status = ON_ComponentStatus::NoneSet
mutable

◆ m_tolerance

double ON_BrepVertex::m_tolerance = ON_UNSET_VALUE

accuracy of vertex point (>=0.0 or ON_UNSET_VALUE)

A value of ON_UNSET_VALUE indicates that the tolerance should be computed.

A value of 0.0 indicates that the distance from the vertex to any applicable edge or trim end is <= ON_ZERO_TOLERANCE

If an edge begins or ends at this vertex, then the distance from the vertex's 3d point to the appropriate end of the edge's 3d curve must be <= this tolerance.

If a trim begins or ends at this vertex, then the distance from the vertex's 3d point to the 3d point on the surface obtained by evaluating the surface at the appropriate end of the trimming curve must be <= this tolerance.

◆ m_vertex_index

int ON_BrepVertex::m_vertex_index = -1

index of the vertex in the ON_Brep.m_V[] array

◆ m_vertex_user

ON_U ON_BrepVertex::m_vertex_user
mutable

Union available for application use. The constructor zeros m_vertex_user. The value is of m_vertex_user is not saved in 3DM archives and may be changed by some computations.