You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

36 lines
1.5 KiB

#pragma once
#include "sha-base-framework/declarations.h"
#include "sha-surface-mesh/matmesh.h"
#include "declarations.h"
namespace da {
namespace sha {
auto CreateVoronoiDiagramInDomain(const Eigen::AlignedBox3d &domain,
const Eigen::MatrixXd &mat_seeds, size_t num_lloyd_iterations = 0)
-> VoronoiDiagram;
auto CreateRestrictedVoronoiDiagramFromMesh(const MatMesh3 &mesh, const Eigen::MatrixXd &mat_seeds,
size_t num_lloyd_iterations, double sharp_angle,
bool keep_number_flag = true) -> VoronoiDiagram;
auto SeparatePolygonIfNotConnected(const PolygonFace &polygon, const VoronoiCell &voronoi_cell)
-> std::vector<PolygonFace>;
auto SeparatePolygonIfEdgeIsSharp(const PolygonFace &polygon, const VoronoiCell &voronoi_cell,
const SurfaceMesh3 &voronoi_mesh3, double angle)
-> std::vector<PolygonFace>;
void RemoveEmptyPolygonsFromVoronoiCell(VoronoiCell &voronoi_cell);
void ComputeLoopVertexByItsTriangles(PolygonFace &polygon);
auto ComputeRelatedEdgesFromVoronoiDiagram(const VoronoiDiagram &voronoi,
const Eigen::AlignedBox3d &domain) -> MatMesh2;
auto ComputeRelatedEdgesFromVoronoiDiagram(
const VoronoiDiagram &voronoi, const Eigen::AlignedBox3d &domain,
std::vector<std::set<index_t>> &map_beam_idx_to_cell_indices) -> MatMesh2;
} // namespace sha
} // namespace da