Rhino C++ API  8.13
Public Member Functions | Friends | List of all members
ON_XMeshFace Class Reference

#include <opennurbs_plus_mesh_intersection.h>

Inheritance diagram for ON_XMeshFace:
ON_XMeshComponent

Public Member Functions

 ON_XMeshFace (ON_XMeshVertex *pV0, ON_XMeshVertex *pV1, ON_XMeshVertex *pV2, ON_XMeshEdge *pE0, bool bRev0, ON_XMeshEdge *pE1, bool bRev1, ON_XMeshEdge *pE2, bool bRev2)
 
 ~ON_XMeshFace ()
 
bool AddFF (ON_XMeshFF *pFF)
 
void Box (double fmin[3], double fmax[3]) const
 
int ClassifyPoint (const ON_3dPoint &P, double &dist)
 
bool ClosestPoint (const ON_3dPoint &P, ON_3dPoint &abc)
 Get barycentric coords. Returns false if face is degenerate of algorithm fails. More...
 
void CreateComponentString (ON_wString &S) const override
 
bool CreatePlane ()
 
ON_XMeshEdgeEdge (int eid)
 
const ON_XMeshEdgeEdge (int eid) const
 
ON_XMeshEdgeEdge (int eid, bool &bRev)
 
const ON_XMeshEdgeEdge (int eid, bool &bRev) const
 
int EdgeId (const ON_XMeshEdge *pE) const
 returns index in F.m_E. More...
 
bool EdgeIsReversed (int eid) const
 
void Edges (ON_SimpleArray< const ON_XMeshEdge * > &E) const override
 
void Edges (ON_SimpleArray< ON_XMeshEdge * > &E) override
 
void Faces (ON_SimpleArray< const ON_XMeshFace * > &F) const override
 Appends to array. More...
 
void Faces (ON_SimpleArray< ON_XMeshFace * > &F) override
 Appends to array. More...
 
ON_XMeshFFFindFF (int this_side, ON_XMeshFace *pFOther)
 
bool GetVectorIntoFace (const ON_XMeshEdge *pE, ON_3dVector &V) const
 
bool GetVectorIntoFace (int eid, ON_3dVector &V) const
 
bool HasXData () const
 If degenerate, will not make a plane but will flag the face as degenerate. More...
 
bool IsDegenerate () const
 Just look at m_bIsDegenerate. More...
 
bool IsValid () const override
 Just checks m_bOK and for null verts, edges. More...
 
const ON_PlaneEquationPlaneEquation () const
 
double PlaneFuzz () const
 
const ON_3dPointPoint (int vid) const
 i = 0,1,2. More...
 
ON_3dPoint PointAt (const ON_3dPoint &abc) const
 
ON_XMeshVertexVertex (int vid)
 
const ON_XMeshVertexVertex (int vid) const
 
int VertexId (const ON_XMeshVertex *pV) const
 -1 if not found. More...
 
int VertexNotOnEdge (const ON_XMeshEdge *pE) const
 Returns index in F.m_V or -1. More...
 
int VertexNotOnEdge (int eid) const
 input index into F.m_E. 0, 1, 2. More...
 
void Vertices (ON_SimpleArray< const ON_XMeshVertex * > &V) const override
 
void Vertices (ON_SimpleArray< ON_XMeshVertex * > &V) override
 Whatever it is, what are the components that involve it? More...
 
- Public Member Functions inherited from ON_XMeshComponent
virtual ~ON_XMeshComponent ()
 
bool AddEvent (ON_XMeshEvent *pX)
 
ON_XMeshEdgeEdge ()
 
const ON_XMeshEdgeEdge () const
 
ON_XMeshEventEvent (int xid)
 
const ON_XMeshEventEvent (int xid) const
 
int EventCount () const
 Look through the event list. More...
 
ON_XMeshFaceFace ()
 
const ON_XMeshFaceFace () const
 
const ON_XMeshEventFindEvent (const ON_XMeshComponent *pC) const
 
ON_XMeshEventFindEvent (ON_XMeshComponent *pC)
 
bool HasEvent (const ON_XMeshComponent *pC) const
 Does m_X have a member with component? More...
 
bool IsEdge () const
 
bool IsFace () const
 
bool IsVertex () const
 What is this thing? More...
 
void RemoveEvent (ON_XMeshEvent *pX)
 
ON_XMeshVertexVertex ()
 Cast. More...
 
const ON_XMeshVertexVertex () const
 

Friends

class ON_XMesh
 
class ON_XMeshFaceIterator
 
class ON_XMeshFacePool
 
class ON_XMeshIntersector
 

Additional Inherited Members

- Protected Member Functions inherited from ON_XMeshComponent
 ON_XMeshComponent ()
 
 ON_XMeshComponent (const ON_XMeshComponent &C)
 Not implemented. More...
 
ON_XMeshComponentoperator= (const ON_XMeshComponent &src)
 Not implemented. More...
 
- Protected Attributes inherited from ON_XMeshComponent
bool m_bIsValid
 
const ON_XMeshm_pM
 used by fixed pool stuff More...
 
eXMeshPoolStatus m_status
 
ON_XMeshEventListm_X
 events not managed here More...
 

Constructor & Destructor Documentation

◆ ON_XMeshFace()

ON_XMeshFace::ON_XMeshFace ( ON_XMeshVertex pV0,
ON_XMeshVertex pV1,
ON_XMeshVertex pV2,
ON_XMeshEdge pE0,
bool  bRev0,
ON_XMeshEdge pE1,
bool  bRev1,
ON_XMeshEdge pE2,
bool  bRev2 
)

◆ ~ON_XMeshFace()

ON_XMeshFace::~ON_XMeshFace ( )

Member Function Documentation

◆ AddFF()

bool ON_XMeshFace::AddFF ( ON_XMeshFF pFF)

◆ Box()

void ON_XMeshFace::Box ( double  fmin[3],
double  fmax[3] 
) const

◆ ClassifyPoint()

int ON_XMeshFace::ClassifyPoint ( const ON_3dPoint P,
double &  dist 
)

Where is P in relation to the face's plane. -1 below. 1 above. 0 on. dist will be negative if below.
Will return 0 if fabs(dist) < fuzz

◆ ClosestPoint()

bool ON_XMeshFace::ClosestPoint ( const ON_3dPoint P,
ON_3dPoint abc 
)

Get barycentric coords. Returns false if face is degenerate of algorithm fails.

◆ CreateComponentString()

void ON_XMeshFace::CreateComponentString ( ON_wString S) const
overridevirtual

Reimplemented from ON_XMeshComponent.

◆ CreatePlane()

bool ON_XMeshFace::CreatePlane ( )

Only fails if there's an allocation problem.

◆ Edge() [1/4]

ON_XMeshEdge* ON_XMeshFace::Edge ( int  eid)

◆ Edge() [2/4]

const ON_XMeshEdge* ON_XMeshFace::Edge ( int  eid) const

◆ Edge() [3/4]

ON_XMeshEdge* ON_XMeshFace::Edge ( int  eid,
bool &  bRev 
)

◆ Edge() [4/4]

const ON_XMeshEdge* ON_XMeshFace::Edge ( int  eid,
bool &  bRev 
) const

◆ EdgeId()

int ON_XMeshFace::EdgeId ( const ON_XMeshEdge pE) const

returns index in F.m_E.

◆ EdgeIsReversed()

bool ON_XMeshFace::EdgeIsReversed ( int  eid) const

◆ Edges() [1/2]

void ON_XMeshFace::Edges ( ON_SimpleArray< const ON_XMeshEdge * > &  E) const
overridevirtual

Implements ON_XMeshComponent.

◆ Edges() [2/2]

void ON_XMeshFace::Edges ( ON_SimpleArray< ON_XMeshEdge * > &  E)
overridevirtual

Implements ON_XMeshComponent.

◆ Faces() [1/2]

void ON_XMeshFace::Faces ( ON_SimpleArray< const ON_XMeshFace * > &  Faces) const
overridevirtual

Appends to array.

Implements ON_XMeshComponent.

◆ Faces() [2/2]

void ON_XMeshFace::Faces ( ON_SimpleArray< ON_XMeshFace * > &  Faces)
overridevirtual

Appends to array.

Implements ON_XMeshComponent.

◆ FindFF()

ON_XMeshFF* ON_XMeshFace::FindFF ( int  this_side,
ON_XMeshFace pFOther 
)

◆ GetVectorIntoFace() [1/2]

bool ON_XMeshFace::GetVectorIntoFace ( const ON_XMeshEdge pE,
ON_3dVector V 
) const

◆ GetVectorIntoFace() [2/2]

bool ON_XMeshFace::GetVectorIntoFace ( int  eid,
ON_3dVector V 
) const

If face isn't degenerate, get the vector perp to edge pointing to the interior of the face from the edge midpt

◆ HasXData()

bool ON_XMeshFace::HasXData ( ) const

If degenerate, will not make a plane but will flag the face as degenerate.

◆ IsDegenerate()

bool ON_XMeshFace::IsDegenerate ( ) const

Just look at m_bIsDegenerate.

◆ IsValid()

bool ON_XMeshFace::IsValid ( ) const
overridevirtual

Just checks m_bOK and for null verts, edges.

Reimplemented from ON_XMeshComponent.

◆ PlaneEquation()

const ON_PlaneEquation& ON_XMeshFace::PlaneEquation ( ) const

◆ PlaneFuzz()

double ON_XMeshFace::PlaneFuzz ( ) const

◆ Point()

const ON_3dPoint& ON_XMeshFace::Point ( int  vid) const

i = 0,1,2.

◆ PointAt()

ON_3dPoint ON_XMeshFace::PointAt ( const ON_3dPoint abc) const

◆ Vertex() [1/2]

ON_XMeshVertex* ON_XMeshFace::Vertex ( int  vid)

◆ Vertex() [2/2]

const ON_XMeshVertex* ON_XMeshFace::Vertex ( int  vid) const

◆ VertexId()

int ON_XMeshFace::VertexId ( const ON_XMeshVertex pV) const

-1 if not found.

returns index in F.m_V.

◆ VertexNotOnEdge() [1/2]

int ON_XMeshFace::VertexNotOnEdge ( const ON_XMeshEdge pE) const

Returns index in F.m_V or -1.

if pE is not an edge of face, returns -1

◆ VertexNotOnEdge() [2/2]

int ON_XMeshFace::VertexNotOnEdge ( int  eid) const

input index into F.m_E. 0, 1, 2.

◆ Vertices() [1/2]

void ON_XMeshFace::Vertices ( ON_SimpleArray< const ON_XMeshVertex * > &  V) const
overridevirtual

Implements ON_XMeshComponent.

◆ Vertices() [2/2]

void ON_XMeshFace::Vertices ( ON_SimpleArray< ON_XMeshVertex * > &  Vertices)
overridevirtual

Whatever it is, what are the components that involve it?

Implements ON_XMeshComponent.

Friends And Related Function Documentation

◆ ON_XMesh

friend class ON_XMesh
friend

◆ ON_XMeshFaceIterator

friend class ON_XMeshFaceIterator
friend

◆ ON_XMeshFacePool

friend class ON_XMeshFacePool
friend

◆ ON_XMeshIntersector

friend class ON_XMeshIntersector
friend