34 [[nodiscard]]
MeshTriPoint(
const MeshEdgePoint & ep ) : e( ep.e ),
bary( ep.a, 0 ) { }
38 template<
typename T >
39 [[nodiscard]]
MeshTriPoint( EdgeId e,
const Vector3<T> & p,
const Vector3<T> & v0,
const Vector3<T> & v1,
const Vector3<T> & v2 ) : e( e ),
bary( p, v0, v1, v2 ) { }
42 [[nodiscard]]
MRMESH_API VertId inVertex(
const MeshTopology & topology )
const;
45 [[nodiscard]]
bool inVertex()
const {
return bary.inVertex() >= 0; }
52 [[nodiscard]]
MRMESH_API bool isBd(
const MeshTopology & topology,
const FaceBitSet * region =
nullptr )
const;
55 [[nodiscard]]
MRMESH_API bool fromTriangle(
const MeshTopology & topology, FaceId f )
const;
58 [[nodiscard]]
bool valid()
const {
return e.valid(); }
59 [[nodiscard]]
explicit operator bool()
const {
return e.valid(); }
68 [[nodiscard]]
MRMESH_API std::array<WeightedVertex, 3> getWeightedVerts(
const MeshTopology & topology )
const;
71 [[nodiscard]]
bool operator==(
const MeshTriPoint& rhs )
const =
default;
78[[nodiscard]]
MRMESH_API bool same(
const MeshTopology & topology,
const MeshTriPoint& lhs,
const MeshTriPoint & rhs );
86[[nodiscard]]
inline bool fromSameTriangle(
const MeshTopology & topology, MeshTriPoint && a, MeshTriPoint && b ) {
return fromSameTriangle( topology, a, b ); }
#define MRMESH_API
Definition MRMeshFwd.h:80
new unsafe MR.TriPointf bary
static unsafe bool fromSameTriangle(MR.Const_MeshTopology topology, MR.MeshTriPoint a, MR.MeshTriPoint b)
static unsafe MR.MeshTriPoint getVertexAsMeshTriPoint(MR.Const_MeshTopology topology, MR.EdgeId e, MR.VertId v)
Definition MRCameraOrientationPlugin.h:8
MRMESH_API bool same(const MeshTopology &topology, const EdgePoint &lhs, const EdgePoint &rhs)
returns true if two edge-points are equal considering different representations