MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshFillHole.h File Reference
#include "MRMeshFwd.h"
#include "MRMeshMetrics.h"
#include "MRId.h"
#include <functional>
#include <memory>

Go to the source code of this file.

Classes

struct  MR::FillHoleParams
 Parameters structure for MR::fillHole
Structure has some options to control MR::fillHole. More...
struct  MR::StitchHolesParams
 Parameters structure for MR::stitchHoles
Structure has some options to control MR::stitchHoles. More...
struct  MR::FillHoleItem
struct  MR::HoleFillPlan
 concise representation of proposed hole triangulation More...
struct  MR::MakeBridgeResult

Namespaces

namespace  MR
 only for bindings generation

Functions

void MR::stitchHoles (Mesh &mesh, EdgeId a, EdgeId b, const StitchHolesParams &params={})
 Stitches two holes in Mesh
.
void MR::buildCylinderBetweenTwoHoles (Mesh &mesh, EdgeId a, EdgeId b, const StitchHolesParams &params={})
bool MR::stitchHoles (Mesh &mesh, const StitchHolesParams &params={})
 this version finds holes in the mesh by itself and returns false if they are not found
bool MR::buildCylinderBetweenTwoHoles (Mesh &mesh, const StitchHolesParams &params={})
void MR::fillHole (Mesh &mesh, EdgeId a, const FillHoleParams &params={})
 Fills hole in mesh
.
void MR::fillHoles (Mesh &mesh, const std::vector< EdgeId > &as, const FillHoleParams &params={})
 fill all holes given by their representative edges in
bool MR::isHoleBd (const MeshTopology &topology, const EdgeLoop &loop)
HoleFillPlan MR::getHoleFillPlan (const Mesh &mesh, EdgeId e, const FillHoleParams &params={})
std::vector< HoleFillPlanMR::getHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges, const FillHoleParams &params={})
HoleFillPlan MR::getPlanarHoleFillPlan (const Mesh &mesh, EdgeId e)
std::vector< HoleFillPlanMR::getPlanarHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges)
void MR::executeHoleFillPlan (Mesh &mesh, EdgeId a0, HoleFillPlan &plan, FaceBitSet *outNewFaces=nullptr)
 quickly triangulates the face or hole to the left of (e) given the plan (quickly compared to fillHole function)
VertId MR::fillHoleTrivially (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr)
 Triangulates face of hole in mesh trivially
.
EdgeId MR::extendHole (Mesh &mesh, EdgeId a, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr)
std::vector< EdgeId > MR::extendAllHoles (Mesh &mesh, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr)
EdgeId MR::extendHole (Mesh &mesh, EdgeId a, std::function< Vector3f(const Vector3f &)> getVertPos, FaceBitSet *outNewFaces=nullptr)
EdgeId MR::buildBottom (Mesh &mesh, EdgeId a, Vector3f dir, float holeExtension, FaceBitSet *outNewFaces=nullptr)
EdgeId MR::makeDegenerateBandAroundHole (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr)
MakeBridgeResult MR::makeQuadBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr)
MakeBridgeResult MR::makeBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr)
MakeBridgeResult MR::makeSmoothBridge (Mesh &mesh, EdgeId a, EdgeId b, float samplingStep, FaceBitSet *outNewFaces=nullptr)
EdgeId MR::makeBridgeEdge (MeshTopology &topology, EdgeId a, EdgeId b)
void MR::splitQuad (MeshTopology &topology, EdgeId a, FaceBitSet *outNewFaces=nullptr)
 given quadrangle face to the left of a, splits it in two triangles with new diagonal edge via dest(a)