mirror of https://github.com/CGAL/cgal
commit
e04a8594b7
|
|
@ -1475,7 +1475,7 @@ The curvature-based sizing field version of isotropic remeshing was added by Iva
|
|||
The implementation of the ACVD Remeshing method was initiated by Hossam Saeed during GSoC 2023, under
|
||||
supervision of Sébastien Valette and Sébastien Loriot, who later finalized the work.
|
||||
The implementation is based on \cgalCite{cgal:vcp-grtmmdvd-08}. and
|
||||
preceeding work. <a href="https://www.creatis.insa-lyon.fr/~valette/public/project/acvd/">ACVD's implementation</a> was also
|
||||
preceding work. <a href="https://www.creatis.insa-lyon.fr/~valette/public/project/acvd/">ACVD's implementation</a> was also
|
||||
used as a reference during the project.
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -458,8 +458,8 @@ acvd_impl(TriangleMesh& tmesh,
|
|||
CGAL_precondition(CGAL::is_triangle_mesh(tmesh));
|
||||
|
||||
const double vertex_count_ratio = choose_parameter(get_parameter(np, internal_np::vertex_count_ratio), 0.1);
|
||||
// TODO: (possible optimization to save memory) if qem is not used use std::conditionnal to store and compute less things in QEMClusterData
|
||||
// TODO: (possible optimization to save memort) use a std::array to store quadrics and assemble the Eigen matric only at the end
|
||||
// TODO: (possible optimization to save memory) if qem is not used use std::conditional to store and compute less things in QEMClusterData
|
||||
// TODO: (possible optimization to save memort) use a std::array to store quadrics and assemble the Eigen matrix only at the end
|
||||
|
||||
std::size_t nb_vertices = vertices(tmesh).size();
|
||||
|
||||
|
|
@ -1236,7 +1236,7 @@ acvd_impl(TriangleMesh& tmesh,
|
|||
add_edge(descriptors[p.first], descriptors[p.second], graph);
|
||||
}
|
||||
|
||||
// TODO: (possible optimisation) add an id to vertices in Graph and use a random acccess pmap
|
||||
// TODO: (possible optimization) add an id to vertices in Graph and use a random access pmap
|
||||
std::map<typename Graph::vertex_descriptor, int> the_map;
|
||||
|
||||
if (boost::connected_components(graph, boost::make_assoc_property_map(the_map)) > 1)
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ void DemoWindowItem::draw_edge(QPainter* painter, Point source, Point target)
|
|||
|
||||
double determinant = src_x*tar_y - src_y*tar_x; // determinant of the matrix whose columns are the vectors src and tar : indicates colinearity
|
||||
double distance_squared = (src_x-tar_x)*(src_x-tar_x) + (src_y-tar_y)*(src_y-tar_y);
|
||||
if ((std::abs(determinant) < computation_treshold_squared) || (distance_squared < computation_treshold_squared)) {
|
||||
if ((std::abs(determinant) < computation_threshold_squared) || (distance_squared < computation_threshold_squared)) {
|
||||
// src and tar are too colinear or too close from each other
|
||||
draw_line(painter, src_x, src_y, tar_x, tar_y);
|
||||
return;
|
||||
|
|
@ -232,7 +232,7 @@ void DemoWindowItem::draw_arc(QPainter* painter,
|
|||
double DemoWindowItem::deg_angle(double x, double y)
|
||||
{
|
||||
// To avoid problems when further division by x (ok since x^2 + y^2 not too small) :
|
||||
if (x*x < computation_treshold_squared) {
|
||||
if (x*x < computation_threshold_squared) {
|
||||
if (y>0) return 90;
|
||||
return -90;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ private:
|
|||
// radius of the poincaré disk
|
||||
const int poincare_disk_radius_in_pixels_ = 600;
|
||||
|
||||
// Approximation treshold: used to decide when to simplify a computation (ex: draw a line
|
||||
// Approximation threshold: used to decide when to simplify a computation (ex: draw a line
|
||||
// instead of an arc if an hyperbolic segment is very small)
|
||||
const double computation_treshold = 0.001;
|
||||
const double computation_treshold_squared = computation_treshold*computation_treshold;
|
||||
const double computation_threshold = 0.001;
|
||||
const double computation_threshold_squared = computation_threshold*computation_threshold;
|
||||
|
||||
public:
|
||||
// Initializer
|
||||
|
|
|
|||
Loading…
Reference in New Issue