mirror of https://github.com/CGAL/cgal
Misc improvements to stats in the demo
This commit is contained in:
parent
25184ee42c
commit
db12deb0b2
|
|
@ -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("<div>Bounding box: min (%1,%2,%3), max (%4,%5,%6), dimensions (%7, %8, %9)</div>")
|
||||
item_text += QString("<div>Bounding box:<br> min (%1, %2, %3),<br> max (%4, %5, %6),<br> dimensions (%7, %8, %9)</div>")
|
||||
.arg(bbox.xmin(),0, 'g', 17)
|
||||
.arg(bbox.ymin(),0, 'g', 17)
|
||||
.arg(bbox.zmin(),0, 'g', 17)
|
||||
|
|
|
|||
|
|
@ -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,int>(QString("Properties"),2));
|
||||
data.categories.append(std::pair<QString,int>(QString("Vertices"),1));
|
||||
data.categories.append(std::pair<QString,int>(QString("Polygons"),4));
|
||||
data.categories.append(std::pair<QString,int>(QString("Polygons"),2));
|
||||
data.categories.append(std::pair<QString,int>(QString("Edges"),6));
|
||||
data.categories.append(std::pair<QString,int>(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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,int>(QString("Properties"),10));
|
||||
data.categories.append(std::pair<QString,int>(QString("Properties"),8));
|
||||
data.categories.append(std::pair<QString,int>(QString("Vertices"),1));
|
||||
data.categories.append(std::pair<QString,int>(QString("Faces"),10));
|
||||
data.categories.append(std::pair<QString,int>(QString("Edges"),7));
|
||||
data.categories.append(std::pair<QString,int>(QString("Angles"),2));
|
||||
|
||||
data.categories.append(std::pair<QString,int>(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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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("<br />Number of isolated vertices: %1<br />").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,int>(QString("Properties"),11));
|
||||
data.categories.append(std::pair<QString,int>(QString("Properties"),9));
|
||||
data.categories.append(std::pair<QString,int>(QString("Vertices"),2));
|
||||
data.categories.append(std::pair<QString,int>(QString("Faces"),10));
|
||||
data.categories.append(std::pair<QString,int>(QString("Edges"),6));
|
||||
data.categories.append(std::pair<QString,int>(QString("Edges"),7));
|
||||
data.categories.append(std::pair<QString,int>(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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue