|
|
MRMESH_API bool | MR::isEdgePath (const MeshTopology &topology, const std::vector< EdgeId > &edges) |
| returns true if every next edge starts where previous edge ends
|
|
MRMESH_API bool | MR::isEdgeLoop (const MeshTopology &topology, const std::vector< EdgeId > &edges) |
| returns true if every next edge starts where previous edge ends, and start vertex coincides with finish vertex
|
|
MRMESH_API std::vector< EdgeLoop > | MR::splitOnSimpleLoops (const MeshTopology &topology, std::vector< EdgeLoop > &&loops) |
| given a number of edge loops, splits every loop that passes via a vertex more than once on smaller loops without self-intersections
|
|
MRMESH_API void | MR::reverse (EdgePath &path) |
|
MRMESH_API void | MR::reverse (std::vector< EdgePath > &paths) |
| reverse every path in the vector
|
|
MRMESH_API double | MR::calcPathMetric (const EdgePath &path, EdgeMetric metric) |
| computes summed metric of all edges in the path
|
|
double | MR::calcPathLength (const EdgePath &path, const Mesh &mesh) |
|
MRMESH_API Vector3d | MR::calcOrientedArea (const EdgeLoop &loop, const Mesh &mesh) |
|
MRMESH_API void | MR::sortPathsByMetric (std::vector< EdgePath > &paths, EdgeMetric metric) |
| sorts given paths in ascending order of their metrics
|
|
void | MR::sortPathsByLength (std::vector< EdgePath > &paths, const Mesh &mesh) |
|
MRMESH_API void | MR::addLeftBand (const MeshTopology &topology, const EdgeLoop &loop, FaceBitSet &addHere) |
| adds all faces incident to loop vertices and located to the left from the loop to given FaceBitSet
|
|
MRMESH_API EdgePath | MR::buildShortestPath (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildShortestPathBiDir (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildShortestPathBiDir (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildShortestPathAStar (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildShortestPathAStar (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildShortestPath (const Mesh &mesh, VertId start, const VertBitSet &finish, float maxPathLen=FLT_MAX) |
| builds shortest path in euclidean metric from start to finish vertices; if no path can be found then empty path is returned
|
|
MRMESH_API EdgePath | MR::buildSmallestMetricPath (const MeshTopology &topology, const EdgeMetric &metric, VertId start, VertId finish, float maxPathMetric=FLT_MAX) |
| builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
|
|
MRMESH_API EdgePath | MR::buildSmallestMetricPathBiDir (const MeshTopology &topology, const EdgeMetric &metric, VertId start, VertId finish, float maxPathMetric=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildSmallestMetricPathBiDir (const MeshTopology &topology, const EdgeMetric &metric, const TerminalVertex *starts, int numStarts, const TerminalVertex *finishes, int numFinishes, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathMetric=FLT_MAX) |
|
MRMESH_API EdgePath | MR::buildSmallestMetricPath (const MeshTopology &topology, const EdgeMetric &metric, VertId start, const VertBitSet &finish, float maxPathMetric=FLT_MAX) |
| builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
|
|
MRMESH_API std::vector< VertId > | MR::getVertexOrdering (const MeshTopology &topology, VertBitSet region) |
| returns all vertices from given region ordered in each connected component in breadth-first way
|
|
MRMESH_API std::vector< EdgeLoop > | MR::extractClosedLoops (const MeshTopology &topology, EdgeBitSet &edges) |
| finds all closed loops from given edges and removes them from edges
|
|
MRMESH_API std::vector< EdgeLoop > | MR::extractClosedLoops (const MeshTopology &topology, const std::vector< EdgeId > &inEdges, EdgeBitSet *outNotLoopEdges=nullptr) |
|
MRMESH_API EdgeLoop | MR::extractLongestClosedLoop (const Mesh &mesh, const std::vector< EdgeId > &inEdges) |
|
MRMESH_API bool | MR::dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| expands the region (of faces or vertices) on given metric value. returns false if callback also returns false
|
|
MRMESH_API bool | MR::dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| shrinks the region (of faces or vertices) on given metric value. returns false if callback also returns false
|
|
MRMESH_API bool | MR::erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::dilateRegion (const Mesh &mesh, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| expands the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
|
|
MRMESH_API bool | MR::dilateRegion (const Mesh &mesh, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::dilateRegion (const Mesh &mesh, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::erodeRegion (const Mesh &mesh, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| shrinks the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
|
|
MRMESH_API bool | MR::erodeRegion (const Mesh &mesh, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API bool | MR::erodeRegion (const Mesh &mesh, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
|
MRMESH_API int | MR::getPathPlaneIntersections (const Mesh &mesh, const EdgePath &path, const Plane3f &plane, std::vector< MeshEdgePoint > *outIntersections=nullptr) |
| finds all intersection points between given path and plane, adds them in outIntersections and returns their number
|
|
MRMESH_API int | MR::getPathEdgesInPlane (const Mesh &mesh, const EdgePath &path, const Plane3f &plane, float tolerance=0.0f, std::vector< EdgeId > *outInPlaneEdges=nullptr) |
| finds all path edges located in given plane with given tolerance, adds them in outInPlaneEdges and returns their number
|
|