mirror of https://github.com/CGAL/cgal
fix num_xxxx error
This commit is contained in:
parent
ebad196840
commit
3513a4e60c
|
|
@ -144,10 +144,13 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
|
|||
const Verbose_level vl = choose_param(
|
||||
get_param(np, internal_np::verbose_level), SILENT);
|
||||
|
||||
const std::size_t number_of_faces = std::distance(faces(tm).first, faces(tm).second);
|
||||
const std::size_t number_of_vertices = std::distance(vertices(tm).first, vertices(tm).second);
|
||||
|
||||
if (vl == MAIN_STEPS || vl == VERBOSE) {
|
||||
std::cout << "Variational shape approximation:"
|
||||
<< "\n#f " << num_faces(tm)
|
||||
<< "\n#v " << num_vertices(tm) << std::endl;
|
||||
<< "\n#f " << number_of_faces
|
||||
<< "\n#v " << number_of_vertices << std::endl;
|
||||
}
|
||||
|
||||
L21_metric metric(tm, point_pmap);
|
||||
|
|
@ -176,7 +179,7 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
|
|||
std::cout << "Seeding done." << std::endl;
|
||||
|
||||
// default number of iterations
|
||||
std::size_t nb_of_iterations_default = max_nb_of_proxies ? num_faces(tm) / *max_nb_of_proxies : 30;
|
||||
std::size_t nb_of_iterations_default = max_nb_of_proxies ? number_of_faces / *max_nb_of_proxies : 30;
|
||||
nb_of_iterations_default = (std::min)((std::max)(
|
||||
nb_of_iterations_default, static_cast<std::size_t>(20)), static_cast<std::size_t>(60));
|
||||
const std::size_t nb_of_iterations = choose_param(
|
||||
|
|
|
|||
|
|
@ -232,6 +232,8 @@ private:
|
|||
// member variables
|
||||
// The triangle mesh.
|
||||
const TriangleMesh *m_ptm;
|
||||
// The exact number of faces
|
||||
const std::size_t m_nb_of_faces;
|
||||
// The mesh vertex point map.
|
||||
VertexPointMap m_vpoint_map;
|
||||
// The approximation object.
|
||||
|
|
@ -278,6 +280,7 @@ public:
|
|||
const VertexPointMap &vpoint_map,
|
||||
const Error_metric &error_metric) :
|
||||
m_ptm(&tm),
|
||||
m_nb_of_faces(std::distance(faces(tm).first, faces(tm).second)),
|
||||
m_vpoint_map(vpoint_map),
|
||||
m_metric(&error_metric),
|
||||
m_average_edge_length(0.0),
|
||||
|
|
@ -331,7 +334,7 @@ public:
|
|||
const std::size_t nb_relaxations = choose_param(get_param(np, internal_np::number_of_relaxations), 5);
|
||||
|
||||
// maximum number of proxies internally, maybe better choice?
|
||||
const std::size_t nb_px = num_faces(*m_ptm) / 3;
|
||||
const std::size_t nb_px = m_nb_of_faces / 3;
|
||||
|
||||
// initialize proxies and the proxy map to prepare for insertion
|
||||
bootstrap_from_connected_components();
|
||||
|
|
@ -497,7 +500,7 @@ public:
|
|||
std::cerr << "zero error, diffuse w.r.t. number of faces" << std::endl;
|
||||
#endif
|
||||
const double avg_face =
|
||||
static_cast<double>(num_faces(*m_ptm)) / static_cast<double>(nb_proxies);
|
||||
static_cast<double>(m_nb_of_faces) / static_cast<double>(nb_proxies);
|
||||
std::vector<double> px_size(m_proxies.size(), 0.0);
|
||||
BOOST_FOREACH(face_descriptor f, faces(*m_ptm))
|
||||
px_size[get(m_fproxy_map, f)] += 1.0;
|
||||
|
|
@ -1024,7 +1027,7 @@ private:
|
|||
* @brief randomly initializes proxies to target number of proxies.
|
||||
* @note To ensure the randomness, call `std::srand()` beforehand.
|
||||
* @param max_nb_proxies maximum number of proxies,
|
||||
* should be in range `(nb_connected_components, num_faces(*m_ptm))`
|
||||
* should be in range `(nb_connected_components, nb_faces)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* @return number of proxies initialized
|
||||
*/
|
||||
|
|
@ -1044,7 +1047,7 @@ private:
|
|||
/*!
|
||||
* @brief incrementally initializes proxies to target number of proxies.
|
||||
* @param max_nb_proxies maximum number of proxies,
|
||||
* should be in range `(nb_connected_components, num_faces(*m_ptm))`
|
||||
* should be in range `(nb_connected_components, nb_faces)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* before each incremental proxy insertion
|
||||
* @return number of proxies initialized
|
||||
|
|
@ -1060,7 +1063,7 @@ private:
|
|||
/*!
|
||||
* @brief hierarchically initializes proxies to target number of proxies.
|
||||
* @param max_nb_proxies maximum number of proxies,
|
||||
* should be in range `(nb_connected_components, num_faces(*m_ptm))`
|
||||
* should be in range `(nb_connected_components, nb_faces)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* before each hierarchical proxy insertion
|
||||
* @return number of proxies initialized
|
||||
|
|
@ -1087,7 +1090,7 @@ private:
|
|||
* with both maximum number of proxies and minimum error drop stop criteria,
|
||||
* where the first criterion met stops the seeding.
|
||||
* @note To ensure the randomness, call `std::srand()` beforehand.
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, num_faces(tm) / 3)`
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, nb_faces / 3)`
|
||||
* @param min_error_drop minimum error drop, should be in range `(0.0, 1.0)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* @return number of proxies initialized
|
||||
|
|
@ -1122,7 +1125,7 @@ private:
|
|||
* @brief incrementally initializes proxies
|
||||
* with both maximum number of proxies and minimum error drop stop criteria,
|
||||
* The first criterion met stops the seeding.
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, num_faces(tm) / 3)`
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, nb_faces / 3)`
|
||||
* @param min_error_drop minimum error drop, should be in range `(0.0, 1.0)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* @return number of proxies initialized
|
||||
|
|
@ -1145,7 +1148,7 @@ private:
|
|||
* @brief hierarchically initializes proxies
|
||||
* with both maximum number of proxies and minimum error drop stop criteria,
|
||||
* where the first criterion met stops the seeding.
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, num_faces(tm) / 3)`
|
||||
* @param max_nb_proxies maximum number of proxies, should be in range `(nb_connected_components, nb_faces / 3)`
|
||||
* @param min_error_drop minimum error drop, should be in range `(0.0, 1.0)`
|
||||
* @param nb_iterations number of re-fitting iterations
|
||||
* @return number of proxies initialized
|
||||
|
|
@ -1370,14 +1373,14 @@ private:
|
|||
*/
|
||||
bool random_pick_non_seed_faces(const std::size_t nb_requested,
|
||||
std::vector<face_descriptor> &picked_faces) {
|
||||
if (nb_requested + m_proxies.size() >= num_faces(*m_ptm))
|
||||
if (nb_requested + m_proxies.size() >= m_nb_of_faces)
|
||||
return false;
|
||||
|
||||
std::set<face_descriptor> seed_faces_set;
|
||||
BOOST_FOREACH(const Proxy_wrapper &pxw, m_proxies)
|
||||
seed_faces_set.insert(pxw.seed);
|
||||
|
||||
const std::size_t nb_nsf = num_faces(*m_ptm) - m_proxies.size();
|
||||
const std::size_t nb_nsf = m_nb_of_faces - m_proxies.size();
|
||||
std::vector<face_descriptor> non_seed_faces;
|
||||
non_seed_faces.reserve(nb_nsf);
|
||||
BOOST_FOREACH(face_descriptor f, faces(*m_ptm)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue