diff --git a/Polyhedron/demo/Polyhedron/MainWindow.cpp b/Polyhedron/demo/Polyhedron/MainWindow.cpp
index e1520ae5590..6457e785e94 100644
--- a/Polyhedron/demo/Polyhedron/MainWindow.cpp
+++ b/Polyhedron/demo/Polyhedron/MainWindow.cpp
@@ -1806,7 +1806,7 @@ void MainWindow::updateInfo() {
QString item_filename = item->property("source filename").toString();
CGAL::Bbox_3 bbox = item->bbox();
if(bbox !=CGAL::Bbox_3())
- item_text += QString("
Bounding box: min (%1,%2,%3), max (%4,%5,%6), dimensions (%7, %8, %9)
")
+ item_text += QString("Bounding box:
min (%1, %2, %3),
max (%4, %5, %6),
dimensions (%7, %8, %9)
")
.arg(bbox.xmin(),0, 'g', 17)
.arg(bbox.ymin(),0, 'g', 17)
.arg(bbox.zmin(),0, 'g', 17)
diff --git a/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.cpp b/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.cpp
index 0d353f554cf..d704582ece1 100644
--- a/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.cpp
+++ b/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.cpp
@@ -911,32 +911,34 @@ void Scene_polygon_soup_item::repair(bool erase_dup, bool req_same_orientation)
CGAL::Three::Scene_item::Header_data Scene_polygon_soup_item::header() const
{
CGAL::Three::Scene_item::Header_data data;
- //categories
+ //categories
+ data.categories.append(std::pair(QString("Properties"),2));
data.categories.append(std::pair(QString("Vertices"),1));
- data.categories.append(std::pair(QString("Polygons"),4));
+ data.categories.append(std::pair(QString("Polygons"),2));
data.categories.append(std::pair(QString("Edges"),6));
data.categories.append(std::pair(QString("Angles"),3));
-
//titles
+ data.titles.append(QString("Pure Triangle"));
+ data.titles.append(QString("Pure Quad"));
+
data.titles.append(QString("#Points"));
data.titles.append(QString("#Polygons"));
- data.titles.append(QString("Pure Triangle"));
- data.titles.append(QString("Pure Quad"));
data.titles.append(QString("#Degenerate Polygons"));
data.titles.append(QString("#Edges"));
+ data.titles.append(QString("#Degenerate Edges"));
data.titles.append(QString("Minimum Length"));
data.titles.append(QString("Maximum Length"));
data.titles.append(QString("Median Length"));
data.titles.append(QString("Mean Length"));
- data.titles.append(QString("#Degenerate Edges"));
data.titles.append(QString("Minimum"));
data.titles.append(QString("Maximum"));
data.titles.append(QString("Average"));
+
return data;
}
@@ -954,7 +956,7 @@ QString Scene_polygon_soup_item::computeStats(int type)
case NB_EDGES:
return QString::number(d->nb_lines/6);
- case NB_DEGENERATED_FACES:
+ case NB_DEGENERATE_FACES:
{
if(d->is_triangle)
{
@@ -968,11 +970,11 @@ QString Scene_polygon_soup_item::computeStats(int type)
return QString::number(d->minl);
case MAX_LENGTH:
return QString::number(d->maxl);
- case MID_LENGTH:
+ case MED_LENGTH:
return QString::number(d->midl);
case MEAN_LENGTH:
return QString::number(d->meanl);
- case NB_NULL_LENGTH:
+ case NB_DEGENERATE_EDGES:
return QString::number(d->nb_null_edges);
case MIN_ANGLE:
diff --git a/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.h b/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.h
index ab292ea6505..5dea8c11f02 100644
--- a/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.h
+++ b/Polyhedron/demo/Polyhedron/Scene_polygon_soup_item.h
@@ -154,19 +154,25 @@ public:
const Edges& non_manifold_edges() const;
void initializeBuffers(CGAL::Three::Viewer_interface *) const Q_DECL_OVERRIDE;
void computeElements() const Q_DECL_OVERRIDE;
+
//statistics
- enum STATS {
- NB_VERTICES = 0,
- NB_FACETS,
- IS_PURE_TRIANGLE,
+ enum STATS
+ {
+ IS_PURE_TRIANGLE = 0,
IS_PURE_QUAD,
- NB_DEGENERATED_FACES,
+
+ NB_VERTICES,
+
+ NB_FACETS,
+ NB_DEGENERATE_FACES,
+
NB_EDGES,
+ NB_DEGENERATE_EDGES,
MIN_LENGTH,
MAX_LENGTH,
- MID_LENGTH,
+ MED_LENGTH,
MEAN_LENGTH,
- NB_NULL_LENGTH,
+
MIN_ANGLE,
MAX_ANGLE,
MEAN_ANGLE
diff --git a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.cpp b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.cpp
index 404c38adde7..8c093d7675f 100644
--- a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.cpp
+++ b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.cpp
@@ -2360,9 +2360,9 @@ QString Scene_polyhedron_selection_item::computeStats(int type)
{
case MIN_LENGTH:
case MAX_LENGTH:
- case MID_LENGTH:
+ case MED_LENGTH:
case MEAN_LENGTH:
- case NB_NULL_LENGTH:
+ case NB_DEGENERATE_EDGES:
if(selected_edges.size() == 0)
return QString("n/a");
else
@@ -2488,7 +2488,7 @@ QString Scene_polyhedron_selection_item::computeStats(int type)
case GENUS:
return QString("n/a");
break;
- case NB_DEGENERATED_FACES:
+ case NB_DEGENERATE_FACES:
{
if(is_triangle_mesh(*d->poly))
{
@@ -2529,11 +2529,11 @@ QString Scene_polyhedron_selection_item::computeStats(int type)
return QString::number(minl);
case MAX_LENGTH:
return QString::number(maxl);
- case MID_LENGTH:
+ case MED_LENGTH:
return QString::number(midl);
case MEAN_LENGTH:
return QString::number(meanl);
- case NB_NULL_LENGTH:
+ case NB_DEGENERATE_EDGES:
return QString::number(number_of_null_length_edges);
case MIN_ANGLE:
@@ -2542,7 +2542,7 @@ QString Scene_polyhedron_selection_item::computeStats(int type)
return QString::number(maxi);
case MEAN_ANGLE:
return QString::number(ave);
- case HOLES:
+ case NB_HOLES:
{
return QString("n/a");
}
@@ -2592,24 +2592,26 @@ CGAL::Three::Scene_item::Header_data Scene_polyhedron_selection_item::header() c
CGAL::Three::Scene_item::Header_data data;
//categories
- data.categories.append(std::pair(QString("Properties"),10));
+ data.categories.append(std::pair(QString("Properties"),8));
+ data.categories.append(std::pair(QString("Vertices"),1));
data.categories.append(std::pair(QString("Faces"),10));
data.categories.append(std::pair(QString("Edges"),7));
- data.categories.append(std::pair(QString("Angles"),2));
-
+ data.categories.append(std::pair(QString("Angles"),3));
//titles
- data.titles.append(QString("#Vertices"));
data.titles.append(QString("#Connected Components"));
- data.titles.append(QString("#Border Edges"));
+ data.titles.append(QString("#Connected Components of the Boundary"));
+ data.titles.append(QString("Genus"));
data.titles.append(QString("Pure Triangle"));
data.titles.append(QString("Pure Quad"));
- data.titles.append(QString("#Degenerate Faces"));
- data.titles.append(QString("Connected Components of the Boundary"));
data.titles.append(QString("Area"));
data.titles.append(QString("Volume"));
data.titles.append(QString("Self-Intersecting"));
+
+ data.titles.append(QString("#Vertices"));
+
data.titles.append(QString("#Faces"));
+ data.titles.append(QString("#Degenerate Faces"));
data.titles.append(QString("Min Area"));
data.titles.append(QString("Max Area"));
data.titles.append(QString("Median Area"));
@@ -2618,16 +2620,19 @@ CGAL::Three::Scene_item::Header_data Scene_polyhedron_selection_item::header() c
data.titles.append(QString("Min Aspect-Ratio"));
data.titles.append(QString("Max Aspect-Ratio"));
data.titles.append(QString("Mean Aspect-Ratio"));
- data.titles.append(QString("Genus"));
+
data.titles.append(QString("#Edges"));
+ data.titles.append(QString("#Border Edges"));
+ data.titles.append(QString("#Degenerate Edges"));
data.titles.append(QString("Minimum Length"));
data.titles.append(QString("Maximum Length"));
data.titles.append(QString("Median Length"));
data.titles.append(QString("Mean Length"));
- data.titles.append(QString("#Degenerate Edges"));
+
data.titles.append(QString("Minimum"));
data.titles.append(QString("Maximum"));
data.titles.append(QString("Average"));
+
return data;
}
diff --git a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
index 09342bda810..5b803274716 100644
--- a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
+++ b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
@@ -1085,18 +1085,24 @@ protected :
public:
//statistics
- enum STATS {
- NB_VERTICES = 0,
- NB_CONNECTED_COMPOS,
- NB_BORDER_EDGES,
+ enum STATS
+ {
+ // Properties
+ NB_CONNECTED_COMPOS = 0,
+ NB_HOLES,
+ GENUS,
IS_PURE_TRIANGLE,
IS_PURE_QUAD,
- NB_DEGENERATED_FACES,
- HOLES,
AREA,
VOLUME,
SELFINTER,
+
+ // Vertices
+ NB_VERTICES,
+
+ // Facets
NB_FACETS,
+ NB_DEGENERATE_FACES,
MIN_AREA,
MAX_AREA,
MED_AREA,
@@ -1105,13 +1111,17 @@ public:
MIN_ASPECT_RATIO,
MAX_ASPECT_RATIO,
MEAN_ASPECT_RATIO,
- GENUS,
+
+ // Edges
NB_EDGES,
+ NB_BORDER_EDGES,
+ NB_DEGENERATE_EDGES,
MIN_LENGTH,
MAX_LENGTH,
- MID_LENGTH,
+ MED_LENGTH,
MEAN_LENGTH,
- NB_NULL_LENGTH,
+
+ // Angles
MIN_ANGLE,
MAX_ANGLE,
MEAN_ANGLE
diff --git a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp
index bf2ceccb0f7..75db7480aaa 100644
--- a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp
+++ b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp
@@ -889,7 +889,7 @@ QString Scene_surface_mesh_item::toolTip() const
.arg(num_faces(*d->smesh_))
.arg(this->renderingModeName())
.arg(this->color().name());
- str += QString("
Number of isolated vertices: %1
").arg(getNbIsolatedvertices());
+
return str;
}
@@ -1625,9 +1625,9 @@ QString Scene_surface_mesh_item::computeStats(int type)
{
case MIN_LENGTH:
case MAX_LENGTH:
- case MID_LENGTH:
+ case MED_LENGTH:
case MEAN_LENGTH:
- case NB_NULL_LENGTH:
+ case NB_DEGENERATE_EDGES:
edges_length(d->smesh_, minl, maxl, meanl, midl, d->number_of_null_length_edges);
}
@@ -1683,6 +1683,8 @@ QString Scene_surface_mesh_item::computeStats(int type)
{
case NB_VERTICES:
return QString::number(num_vertices(*d->smesh_));
+ case NB_ISOLATED_VERTICES:
+ return QString::number(this->getNbIsolatedvertices());
case HAS_NM_VERTICES:
{
if(d->has_nm_vertices)
@@ -1714,7 +1716,7 @@ QString Scene_surface_mesh_item::computeStats(int type)
case NB_EDGES:
return QString::number(num_halfedges(*d->smesh_) / 2);
- case NB_DEGENERATED_FACES:
+ case NB_DEGENERATE_FACES:
{
if(is_triangle_mesh(*d->smesh_))
{
@@ -1786,11 +1788,11 @@ QString Scene_surface_mesh_item::computeStats(int type)
return QString::number(minl);
case MAX_LENGTH:
return QString::number(maxl);
- case MID_LENGTH:
+ case MED_LENGTH:
return QString::number(midl);
case MEAN_LENGTH:
return QString::number(meanl);
- case NB_NULL_LENGTH:
+ case NB_DEGENERATE_EDGES:
return QString::number(d->number_of_null_length_edges);
case MIN_ANGLE:
@@ -1799,7 +1801,7 @@ QString Scene_surface_mesh_item::computeStats(int type)
return QString::number(maxi);
case MEAN_ANGLE:
return QString::number(ave);
- case HOLES:
+ case NB_HOLES:
return QString::number(nb_holes(d->smesh_));
case MIN_AREA:
@@ -1837,25 +1839,29 @@ CGAL::Three::Scene_item::Header_data Scene_surface_mesh_item::header() const
CGAL::Three::Scene_item::Header_data data;
//categories
- data.categories.append(std::pair(QString("Properties"),11));
+ data.categories.append(std::pair(QString("Properties"),9));
+ data.categories.append(std::pair(QString("Vertices"),2));
data.categories.append(std::pair(QString("Faces"),10));
- data.categories.append(std::pair(QString("Edges"),6));
+ data.categories.append(std::pair(QString("Edges"),7));
data.categories.append(std::pair(QString("Angles"),3));
//titles
- data.titles.append(QString("#Vertices"));
- data.titles.append(QString("Has Non-manifold Vertices"));
data.titles.append(QString("#Connected Components"));
- data.titles.append(QString("#Border Edges"));
+ data.titles.append(QString("#Connected Components of the Boundary"));
+ data.titles.append(QString("Genus"));
data.titles.append(QString("Pure Triangle"));
data.titles.append(QString("Pure Quad"));
- data.titles.append(QString("#Degenerate Faces"));
- data.titles.append(QString("Connected Components of the Boundary"));
data.titles.append(QString("Area"));
data.titles.append(QString("Volume"));
data.titles.append(QString("Self-Intersecting"));
+ data.titles.append(QString("Has Non-manifold Vertices"));
+
+ data.titles.append(QString("#Vertices"));
+ data.titles.append(QString("#Isolated Vertices"));
+
data.titles.append(QString("#Faces"));
+ data.titles.append(QString("#Degenerate Faces"));
data.titles.append(QString("Min Area"));
data.titles.append(QString("Max Area"));
data.titles.append(QString("Median Area"));
@@ -1864,16 +1870,19 @@ CGAL::Three::Scene_item::Header_data Scene_surface_mesh_item::header() const
data.titles.append(QString("Min Aspect-Ratio"));
data.titles.append(QString("Max Aspect-Ratio"));
data.titles.append(QString("Mean Aspect-Ratio"));
- data.titles.append(QString("Genus"));
+
data.titles.append(QString("#Edges"));
+ data.titles.append(QString("#Border Edges"));
+ data.titles.append(QString("#Degenerate Edges"));
data.titles.append(QString("Minimum Length"));
data.titles.append(QString("Maximum Length"));
data.titles.append(QString("Median Length"));
data.titles.append(QString("Mean Length"));
- data.titles.append(QString("#Degenerate Edges"));
+
data.titles.append(QString("Minimum"));
data.titles.append(QString("Maximum"));
data.titles.append(QString("Average"));
+
return data;
}
diff --git a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h
index 68ffb958dfb..eadae28b8eb 100644
--- a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h
+++ b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h
@@ -104,20 +104,28 @@ public:
bool save(std::ostream& out) const;
bool save_obj(std::ostream& out) const;
bool load_obj(std::istream& in);
+
//statistics
- enum STATS {
- NB_VERTICES = 0,
- HAS_NM_VERTICES,
- NB_CONNECTED_COMPOS,
- NB_BORDER_EDGES,
+ enum STATS
+ {
+ // Properties
+ NB_CONNECTED_COMPOS = 0,
+ NB_HOLES,
+ GENUS,
IS_PURE_TRIANGLE,
IS_PURE_QUAD,
- NB_DEGENERATED_FACES,
- HOLES,
AREA,
VOLUME,
SELFINTER,
+ HAS_NM_VERTICES,
+
+ // Vertices
+ NB_VERTICES,
+ NB_ISOLATED_VERTICES,
+
+ // Facets
NB_FACETS,
+ NB_DEGENERATE_FACES,
MIN_AREA,
MAX_AREA,
MED_AREA,
@@ -126,13 +134,17 @@ public:
MIN_ASPECT_RATIO,
MAX_ASPECT_RATIO,
MEAN_ASPECT_RATIO,
- GENUS,
+
+ // Edges
NB_EDGES,
+ NB_BORDER_EDGES,
+ NB_DEGENERATE_EDGES,
MIN_LENGTH,
MAX_LENGTH,
- MID_LENGTH,
+ MED_LENGTH,
MEAN_LENGTH,
- NB_NULL_LENGTH,
+
+ // Angles
MIN_ANGLE,
MAX_ANGLE,
MEAN_ANGLE