occ
Loading...
Searching...
No Matches
improve_quality.h File Reference
#include <algorithm>
#include <ankerl/unordered_dense.h>
#include <cmath>
#include <cstdint>
#include <occ/core/linear_algebra.h>
#include <occ/core/log.h>
#include <occ/geometry/half_edge.h>
#include <occ/isosurface/mesh_utils.h>
#include <occ/isosurface/projection.h>
#include <vector>
Include dependency graph for improve_quality.h:

Classes

struct  occ::isosurface::QualityParams
 
struct  occ::isosurface::AngleStats
 

Namespaces

namespace  occ
 
namespace  occ::isosurface
 
namespace  occ::isosurface::impl
 

Functions

FVec3 occ::isosurface::impl::vert_at (const std::vector< float > &V, int i)
 
float occ::isosurface::impl::tri_min_angle (const FVec3 &a, const FVec3 &b, const FVec3 &c)
 
FVec3 occ::isosurface::impl::face_normal (const FVec3 &a, const FVec3 &b, const FVec3 &c)
 
uint64_t occ::isosurface::impl::edge_key (int a, int b)
 
int occ::isosurface::impl::flip_sweep (occ::geometry::HalfEdgeMesh &mesh, const std::vector< float > &V, float feat_cos)
 
template<typename Func >
int occ::isosurface::impl::relax_sweep (const Func &func, float iso, const occ::geometry::HalfEdgeMesh &mesh, std::vector< float > &V, float feat_cos, float lambda, int proj_steps)
 
template<typename Func >
int occ::isosurface::impl::collapse_short_edges (const Func &func, float iso, std::vector< float > &V, std::vector< float > &N, std::vector< float > &C, std::vector< uint32_t > &F, float ratio)
 
AngleStats occ::isosurface::triangle_angle_stats (const std::vector< float > &V, const std::vector< uint32_t > &F)
 
template<typename Func >
void occ::isosurface::improve_mesh_quality (const Func &func, float isovalue, const QualityParams &params, std::vector< float > &V, std::vector< float > &N, std::vector< float > &C, std::vector< uint32_t > &F)