MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::MeshTriPoint Struct Reference

#include <MRMeshTriPoint.h>

Public Member Functions

 MeshTriPoint ()=default
 
 MeshTriPoint (NoInit)
 
 MeshTriPoint (EdgeId e, TriPointf bary)
 
 MeshTriPoint (const MeshEdgePoint &ep)
 
 MeshTriPoint (const MeshTopology &topology, VertId v)
 
template<typename T >
 MeshTriPoint (EdgeId e, const Vector3< T > &p, const Vector3< T > &v0, const Vector3< T > &v1, const Vector3< T > &v2)
 given a point coordinates computes its barycentric coordinates
 
MRMESH_API VertId inVertex (const MeshTopology &topology) const
 returns valid vertex id if the point is in vertex, otherwise returns invalid id
 
bool inVertex () const
 returns true if the point is in a vertex
 
MRMESH_API MeshEdgePoint onEdge (const MeshTopology &topology) const
 
MRMESH_API bool isBd (const MeshTopology &topology, const FaceBitSet *region=nullptr) const
 returns true if the point is in vertex or on edge, and that location is on the boundary of the region
 
MRMESH_API bool fromTriangle (const MeshTopology &topology, FaceId f) const
 returns true if the point is inside or on the boundary of given triangular face
 
bool valid () const
 consider this valid if the edge ID is valid
 
 operator bool () const
 
MRMESH_API MeshTriPoint lnext (const MeshTopology &topology) const
 represents the same point relative to next edge in the same triangle
 
MRMESH_API MeshTriPoint canonical (const MeshTopology &topology) const
 represents the same point relative to the topology.edgeWithLeft( topology.left( e ) )
 
MRMESH_API std::array< WeightedVertex, 3 > getWeightedVerts (const MeshTopology &topology) const
 returns three weighted triangle's vertices with the sum of not-negative weights equal to 1, and the largest weight in the closest vertex
 
bool operator== (const MeshTriPoint &rhs) const =default
 returns true if two points are equal including equal not-unique representation
 

Public Attributes

EdgeId e
 
TriPointf bary
 

Related Symbols

(Note that these are not member symbols.)

MRMESH_API bool same (const MeshTopology &topology, const MeshTriPoint &lhs, const MeshTriPoint &rhs)
 returns true if two points are equal considering different representations
 
MRMESH_API bool fromSameTriangle (const MeshTopology &topology, MeshTriPoint &a, MeshTriPoint &b)
 
bool fromSameTriangle (const MeshTopology &topology, MeshTriPoint &&a, MeshTriPoint &&b)
 
MRMESH_API MeshTriPoint getVertexAsMeshTriPoint (const MeshTopology &topology, EdgeId e, VertId v)
 returns MeshTriPoint representation of given vertex with given edge field; or invalid MeshTriPoint if it is not possible
 

Detailed Description

encodes a point inside a triangular mesh face using barycentric coordinates

Notations used below:
v0 - the value in org( e )
v1 - the value in dest( e )
v2 - the value in dest( next( e ) )


The documentation for this struct was generated from the following file: