Rhino C++ API
8.10
|
#include <opennurbs_mesh.h>
Public Member Functions | |
ON_MeshXPoint () | |
this class must not have a vtable. More... | |
int | IsFacetCorner () const |
Static Public Member Functions | |
static int | Compare2dLocation (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
static int | Compare3dLocation (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
static int | Compare3dLocationAndId (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
static int | CompareLocationsAndId (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
static int | CompareNextPrev (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
static int | IsFacetEdge (const ON_MeshXPoint *p, const ON_MeshXPoint *q) |
Public Attributes | |
double | m_bc [4] |
ON__UINT32 | m_event_sn |
m_event_sn must immediately follow m_point. More... | |
unsigned int | m_mesh_facet_index |
ON__UINT_PTR | m_mesh_id |
unsigned int | m_mesh_vertex_index |
ON__UINT_PTR | m_other_id |
double | m_other_parameter |
class ON_MeshXPoint * | m_p [2] |
(previous,next) More... | |
ON_3dPoint | m_point |
m_point must be the first data member in this class. More... | |
ON__UINT16 | m_point_status |
ON_2dPoint | m_S |
ON__INT_PTR | m_tag |
Static Public Attributes | |
static const ON__UINT16 | m_status_at_corner |
= 0x0010 More... | |
static const ON__UINT16 | m_status_corner_mask |
= 0x001F More... | |
static const ON__UINT16 | m_status_corner_value [4] |
= {0x0001,0x0002,0x0004,0x0008} More... | |
static const ON__UINT16 | m_status_corner_value_mask |
= 0x000F More... | |
static const ON__UINT16 | m_status_degenerate |
= 0x0100 More... | |
static const ON__UINT16 | m_status_olap_edge_end |
= 0x0040 More... | |
static const ON__UINT16 | m_status_olap_edge_mask |
= 0x0060 More... | |
static const ON__UINT16 | m_status_olap_edge_start |
= 0x0020 More... | |
static const ON__UINT16 | m_status_olap_facet_corner |
= 0x0080 More... | |
Friends | |
class | ON_MeshXPointPool |
ON_MeshXPoint::ON_MeshXPoint | ( | ) |
this class must not have a vtable.
|
static |
Description: Dictionary compares the coordinates of m_S.
|
static |
Description: Dictionary compares the coordinates of m_point.
|
static |
Description: Dictionary the coordinates of m_point, then m_mesh_id.
|
static |
Description: Dictionary the coordinates of m_point, then m_mesh_id, then the coordinates of m_S.
|
static |
Description: Compares the next and previous pointers in m_p[]. (null,null) < (not null,null) < (null,not null) < (not null,not null)
int ON_MeshXPoint::IsFacetCorner | ( | ) | const |
Returns: 0: not a facet corner 1: face.vi[0] corner 2: face.vi[1] corner 4: face.vi[2] corner 8: face.vi[3] corner
|
static |
Parameters: p - [in] edge starting point q - [in] edge ending point
Returns: 0: (p,q) are not the ends of a mesh facet edge +3: (p,q) is the edge from face.vi[0] to face.vi[1]. -3: (p,q) is the edge from face.vi[1] to face.vi[0]. +5: (p,q) is the edge from face.vi[2] to face.vi[0]. -5: (p,q) is the edge from face.vi[0] to face.vi[2]. +9: (p,q) is the edge from face.vi[3] to face.vi[0]. -9: (p,q) is the edge from face.vi[0] to face.vi[3]. +6: (p,q) is the edge from face.vi[1] to face.vi[2]. -6: (p,q) is the edge from face.vi[2] to face.vi[1]. +10: (p,q) is the edge from face.vi[3] to face.vi[1]. -10: (p,q) is the edge from face.vi[1] to face.vi[3]. +12: (p,q) is the edge from face.vi[2] to face.vi[3]. -12: (p,q) is the edge from face.vi[3] to face.vi[2].
|
friend |
double ON_MeshXPoint::m_bc[4] |
The values of m_bc[] are the mesh facet's barycentric coordinates for the point.
ON__UINT32 ON_MeshXPoint::m_event_sn |
m_event_sn must immediately follow m_point.
unsigned int ON_MeshXPoint::m_mesh_facet_index |
ON__UINT_PTR ON_MeshXPoint::m_mesh_id |
unsigned int ON_MeshXPoint::m_mesh_vertex_index |
If (0x0F & m_status_bits) = 1, 2, 4 or 8, then m_mesh_vertex_index = index of the mesh's vertex.
ON__UINT_PTR ON_MeshXPoint::m_other_id |
double ON_MeshXPoint::m_other_parameter |
The interpretation of m_other_id depends on what created the ON_MeshXPoint. ON_MeshXPlane::IntersectLine(): m_other_id = line_id ON_MeshXPlane::IntersectPlane(): m_other_id = plane_id
class ON_MeshXPoint* ON_MeshXPoint::m_p[2] |
(previous,next)
The m_p[] pointers are used as previous and next pointers when connecting events in an intersection component. See ON_MeshXPoint::JoinPoints() for more details.
ON_3dPoint ON_MeshXPoint::m_point |
m_point must be the first data member in this class.
ON__UINT16 ON_MeshXPoint::m_point_status |
The bits of (m_status_corner_mask & m_point_status) are set to identify the corner or edge of the facet the mesh-plane intersection point lies on. Below "Cn" identifies a corner of the facet: Cn = mesh.m_V[face.vi[n]], n = 0, 1, 2 or 3.
(1 & m_point_status): set if C0 is an end point (2 & m_point_status): set if C1 is an end point (4 & m_point_status): set if C2 is an end point (8 & m_point_status): set if C3 is an end point (1 | 2): point is interior to the facet edge connecting C0 and C1 (2 | 4): point is interior to the facet edge connecting C1 and C2 (4 | 8): point is interior to the quad edge connecting C2 and C3 (1 | 8): point is interior to the quad edge connecting C3 and C0 (1 | 4): point is interior to the triangle edge connecting C0 and C2
(0x10 & m_point_status): set if the point is a corner point (not interior).
The bits of (m_status_olap_mask & m_point_status) reports overlap conditions.
(m_status_olap_facet & m_point_status): set if the point is the corner of a facet that is in the plane. (m_status_edge_01 & m_point_status): set if the facet edge connecting C0 and C1 is in the plane and the point is at the start or end of this facet edge. (m_status_edge_12 & m_point_status): set if the facet edge connecting C1 and C2 is in the plane and the point is at the start or end of this facet edge. (m_status_edge_23 & m_point_status): set if the quad facet edge connecting C2 and C3 is in the plane and the point is at the start or end of this edge. (m_status_edge_30 & m_point_status): set if the quad facet edge connecting C3 and C0 is in the plane and the point is at the start or end of this edge. (m_status_edge_20 & m_point_status): set if the triangle facet edge connecting C2 and C0 is in the plane and the point is at the start or end of this edge.
ON_2dPoint ON_MeshXPoint::m_S |
Surface parameters If no surface parameters are on the mesh, m_S = (0.0,0.0).
|
static |
= 0x0010
|
static |
= 0x001F
|
static |
= {0x0001,0x0002,0x0004,0x0008}
|
static |
= 0x000F
|
static |
= 0x0100
|
static |
= 0x0040
|
static |
= 0x0060
|
static |
= 0x0020
|
static |
= 0x0080
ON__INT_PTR ON_MeshXPoint::m_tag |
The "m_tag" field is set to zero when an ON_MeshXPoint is created and when it is destroyed. It is copied when an ON_MeshXPoint class is copied. Nothing else in opennurbs modifies or uses this value.