38 template<
typename T >
45 [[nodiscard]]
bool inVertex()
const {
return bary.inVertex() >= 0; }
58 [[nodiscard]]
bool valid()
const {
return e.valid(); }
59 [[nodiscard]]
explicit operator bool()
const {
return e.valid(); }
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
Definition MRMesh/MRMeshTopology.h:18
Definition MRCameraOrientationPlugin.h:8
constexpr NoInit noInit
Definition MRMesh/MRMeshFwd.h:57
encodes a point on an edge of mesh or of polyline
Definition MREdgePoint.h:11
Definition MRMesh/MRMeshTriPoint.h:23
MRMESH_API MeshTriPoint lnext(const MeshTopology &topology) const
represents the same point relative to next edge in the same triangle
MRMESH_API bool fromSameTriangle(const MeshTopology &topology, MeshTriPoint &a, MeshTriPoint &b)
MRMESH_API MeshEdgePoint onEdge(const MeshTopology &topology) const
bool valid() const
consider this valid if the edge ID is valid
Definition MRMesh/MRMeshTriPoint.h:58
MeshTriPoint(NoInit)
Definition MRMesh/MRMeshTriPoint.h:32
bool fromSameTriangle(const MeshTopology &topology, MeshTriPoint &&a, MeshTriPoint &&b)
Definition MRMesh/MRMeshTriPoint.h:86
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...
bool inVertex() const
returns true if the point is in a vertex
Definition MRMesh/MRMeshTriPoint.h:45
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
MeshTriPoint(EdgeId e, TriPointf bary)
Definition MRMesh/MRMeshTriPoint.h:33
TriPointf bary
Definition MRMesh/MRMeshTriPoint.h:29
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 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,...
MRMESH_API bool same(const MeshTopology &topology, const MeshTriPoint &lhs, const MeshTriPoint &rhs)
returns true if two points are equal considering different representations
MeshTriPoint(const MeshTopology &topology, VertId v)
Definition MRMesh/MRMeshTriPoint.h:35
MRMESH_API VertId inVertex(const MeshTopology &topology) const
returns valid vertex id if the point is in vertex, otherwise returns invalid id
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
Definition MRMesh/MRMeshTriPoint.h:39
MeshTriPoint(const MeshEdgePoint &ep)
Definition MRMesh/MRMeshTriPoint.h:34
bool operator==(const MeshTriPoint &rhs) const =default
returns true if two points are equal including equal not-unique representation
MRMESH_API MeshTriPoint canonical(const MeshTopology &topology) const
represents the same point relative to the topology.edgeWithLeft( topology.left( e ) )
EdgeId e
Definition MRMesh/MRMeshTriPoint.h:24
Definition MRMesh/MRMeshFwd.h:56
Definition MRMesh/MRVector3.h:19
Definition MRMesh/MRMeshTriPoint.h:11
float weight
Definition MRMesh/MRMeshTriPoint.h:13
VertId v
Definition MRMesh/MRMeshTriPoint.h:12