29struct FanRecordWithCenter : FanRecord
39struct SomeLocalTriangulations
41 std::vector<VertId> neighbors;
42 std::vector<FanRecordWithCenter> fanRecords;
47struct AllLocalTriangulations
49 Buffer<VertId> neighbors;
50 Vector<FanRecord, VertId> fanRecords;
55[[nodiscard]]
MRMESH_API std::optional<AllLocalTriangulations>
uniteLocalTriangulations(
const std::vector<SomeLocalTriangulations> & in,
const ProgressCallback & progress = {} );
66 Triangulation * outRep3 =
nullptr,
67 Triangulation * outRep2 = nullptr );
73using TrianglesRepetitions = std::array<int, 4>;
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRLocalTriangulations.h:48
unsafe FanRecordWithCenter(MR._InOpt_VertId c=default, MR._InOpt_VertId b=default, uint? fn=null)
new unsafe ref MR.VertId center
unsafe FanRecord(MR._InOpt_VertId b=default, uint? fn=null)
new unsafe ref MR.VertId border
new unsafe ref uint firstNei
Definition MRMesh/MRPointCloud.h:17
Definition MRCameraOrientationPlugin.h:8
MRMESH_API TrianglesRepetitions computeTrianglesRepetitions(const AllLocalTriangulations &triangs)
computes statistics about the number of triangle repetitions in local triangulations
MRMESH_API std::optional< AllLocalTriangulations > uniteLocalTriangulations(const std::vector< SomeLocalTriangulations > &in, const ProgressCallback &progress={})
MRMESH_API Triangulation findRepeatedOrientedTriangles(const AllLocalTriangulations &triangs, int repetitions)
from local triangulations returns all oriented triangles with given number of repetitions each in [1,...
MRMESH_API void orientLocalTriangulations(AllLocalTriangulations &triangs, const VertCoords &coords, const VertBitSet ®ion, const VertNormals &targetDir)
orient neighbors around each point in
MRMESH_API std::vector< UnorientedTriangle > findRepeatedUnorientedTriangles(const AllLocalTriangulations &triangs, int repetitions)
from local triangulations returns all unoriented triangles with given number of repetitions each in [...
MRMESH_API Vector3f computeNormal(const AllLocalTriangulations &triangs, const VertCoords &points, VertId v)
compute normal at point by averaging neighbor triangle normals weighted by triangle's angle at the po...
MRMESH_API bool autoOrientLocalTriangulations(const PointCloud &pointCloud, AllLocalTriangulations &triangs, const VertBitSet ®ion, ProgressCallback progress={}, Triangulation *outRep3=nullptr, Triangulation *outRep2=nullptr)
orient neighbors around each point in