From 249bfd0624adb2e2b77ac2a31c69c2446484ca58 Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Sun, 20 Jan 2008 13:00:37 +0000 Subject: [PATCH] Added comments and minor modifications --- src/fgt/edit_quality/qualitymapper.cpp | 13 ++++---- src/fgt/edit_quality/qualitymapper.h | 9 ++++-- src/fgt/edit_quality/qualitymapperdialog.cpp | 29 ++---------------- src/fgt/edit_quality/qualitymapperdialog.h | 5 +++- src/fgt/edit_quality/qualitymapperdialog.ui | 30 +++++++++++++++---- src/fgt/edit_quality/ui_qualitymapperdialog.h | 9 ++++-- 6 files changed, 50 insertions(+), 45 deletions(-) diff --git a/src/fgt/edit_quality/qualitymapper.cpp b/src/fgt/edit_quality/qualitymapper.cpp index 402a4c0ee..48f33699d 100644 --- a/src/fgt/edit_quality/qualitymapper.cpp +++ b/src/fgt/edit_quality/qualitymapper.cpp @@ -31,11 +31,11 @@ Beginning #include #include #include -#include + #include // #include "color_manifold.h" -#include "../../meshlabplugins/meshcolorize/curvature.h" //<--contains Frange -#include "../../meshlabplugins/meshcolorize/equalizerDialog.h" //for EqualizerSettings + +//#include "../../meshlabplugins/meshcolorize/equalizerDialog.h" //for EqualizerSettings // #include "smoothcolor.h" #include //for quality @@ -114,8 +114,8 @@ void QualityMapperPlugin::StartEdit(QAction *mode, MeshModel &m, GLArea *gla ) } //building up histogram... - QualityMapperPlugin::ComputePerVertexQualityHistogram(m.cm, _histogram, 100); Frange mmmq(tri::Stat::ComputePerVertexQualityMinMax(m.cm)); + QualityMapperPlugin::ComputePerVertexQualityHistogram(m.cm, mmmq, _histogram, 100); //...histogram built //setting and applying settings to dialog (??) MAL @@ -146,11 +146,10 @@ void QualityMapperPlugin::EndEdit(QAction * , MeshModel &, GLArea * ) } } -void QualityMapperPlugin::ComputePerVertexQualityHistogram( CMeshO & m, Histogramf &h, int bins=10000) // V1.0 +void QualityMapperPlugin::ComputePerVertexQualityHistogram( CMeshO & m, Frange range, Histogramf &h, int bins=10000) // V1.0 { h.Clear(); - std::pair minmax = tri::Stat::ComputePerVertexQualityMinMax(m); - h.SetRange( minmax.first,minmax.second, bins); + h.SetRange( range.minV, range.maxV, bins); CMeshO::VertexIterator vi; for(vi = m.vert.begin(); vi != m.vert.end(); ++vi) if(!(*vi).IsD()) h.Add((*vi).Q()); diff --git a/src/fgt/edit_quality/qualitymapper.h b/src/fgt/edit_quality/qualitymapper.h index c1b346731..7263e4646 100644 --- a/src/fgt/edit_quality/qualitymapper.h +++ b/src/fgt/edit_quality/qualitymapper.h @@ -44,11 +44,14 @@ Beginning //#include //#include #include //<-- contains VertexQuality method +#include "../../meshlabplugins/meshcolorize/curvature.h" //<--contains Frange #include "qualitymapperdialog.h" - -#include #include "transferfunction.h" +#include +#include + +//using namespace vcg; class QualityMapperPlugin : public QObject, public MeshEditInterface @@ -85,7 +88,7 @@ public: QPoint cur; bool haveToPick; - void ComputePerVertexQualityHistogram( CMeshO & m, Histogramf &h, int bins); + void ComputePerVertexQualityHistogram( CMeshO & m, vcg::Frange range, Histogramf &h, int bins); }; #endif diff --git a/src/fgt/edit_quality/qualitymapperdialog.cpp b/src/fgt/edit_quality/qualitymapperdialog.cpp index fa4e8dd36..e78457adf 100644 --- a/src/fgt/edit_quality/qualitymapperdialog.cpp +++ b/src/fgt/edit_quality/qualitymapperdialog.cpp @@ -22,17 +22,6 @@ void QualityMapperDialog::setValues(const QualityMapperSettings& qms) ui.minSpinBox->setValue(_settings.meshMinQ); ui.midSpinBox->setValue(_settings.meshMidQ); ui.maxSpinBox->setValue(_settings.meshMaxQ); - - /* - ui.percentileSpinbox->setValue(settings.percentile); - ui.rangeSpinbox->setValue(settings.range); - ui.meshMinQlineEdit->setText(qnum.arg(settings.meshMinQ)); - ui.meshMaxQlineEdit->setText(qnum.arg(settings.meshMaxQ)); - ui.histoMinQlineEdit->setText(qnum.arg(settings.histoMinQ)); - ui.histoMaxQlineEdit->setText(qnum.arg(settings.histoMaxQ)); - ui.manualMinQlineEdit->setText(qnum.arg(settings.manualMinQ)); - ui.manualMaxQlineEdit->setText(qnum.arg(settings.manualMaxQ)); - ui.manualCheckBox->setChecked(settings.useManual); */ } QualityMapperSettings QualityMapperDialog::getValues() @@ -40,12 +29,7 @@ QualityMapperSettings QualityMapperDialog::getValues() _settings.manualMinQ=ui.minSpinBox->value(); _settings.manualMidQ=ui.midSpinBox->value(); _settings.manualMaxQ=ui.maxSpinBox->value(); - /* - settings.percentile = ui.percentileSpinbox->value(); - settings.range = ui.rangeSpinbox->value(); - settings.useManual=ui.manualCheckBox->isChecked(); - settings.manualMaxQ=ui.manualMaxQlineEdit->text().toFloat(); - */ + return _settings; } @@ -94,8 +78,6 @@ void QualityMapperDialog::drawCartesianChartBasics(QGraphicsScene& scene, QGraph //il nome non mi sembra giusto. Questo dovrebbe essere piuttosto drawHistogram -//il calcolo di miY e maxY mi pare sia superflo. Se non erro già la classe histogram li ha dentro (cmq mi pare vengano calcolati in ComputePerVertexQualityMinMax) -//se proprio vanno calcolati minY e maxY, maxY può essere inizializzato a -1 (pedantic mode) //_equalizerScene dovrebbe chiamarsi in realtà histogramScene //l'histogram e la transfer function potrebbero diventare attributi di questa classe? valutare l'impatto. //in generale il codice di questo metodo va ripulito un po'... @@ -118,17 +100,12 @@ void QualityMapperDialog::initEqualizerHistogram( Histogramf& h ) int chartHeightForCartesians = lowerBorderForCartesians - upperBorder; int yScaleStep = 5; - float dX = (float)chartWidth / (float)h.n; float dY = (float)chartHeightForCartesians / (float)h.n; - //float maxX = float.MinValue; - int maxY = std::numeric_limits::min(); + int maxY = 0; int minY = std::numeric_limits::max(); - /*std::vector::iterator it; - for (it= h->R.begin(); it != h->R.end(); it++)*/ - //processing minX, maxX, minY and maxY values for (int i=0; i :/images/qualitymapper.png - - gne gne gne! - @@ -312,7 +309,14 @@ - + + + -999.990000000000009 + + + 999.990000000000009 + + @@ -328,7 +332,14 @@ - + + + -999.990000000000009 + + + 999.990000000000009 + + @@ -344,7 +355,14 @@ - + + + -999.990000000000009 + + + 999.990000000000009 + + diff --git a/src/fgt/edit_quality/ui_qualitymapperdialog.h b/src/fgt/edit_quality/ui_qualitymapperdialog.h index c87a1e5cc..a64eb9685 100644 --- a/src/fgt/edit_quality/ui_qualitymapperdialog.h +++ b/src/fgt/edit_quality/ui_qualitymapperdialog.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading ui file 'qualitymapperdialog.ui' ** -** Created: Thu 17. Jan 22:33:05 2008 +** Created: Sun 20. Jan 13:31:18 2008 ** by: Qt User Interface Compiler version 4.3.2 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! @@ -288,6 +288,8 @@ public: hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4")); minSpinBox = new QDoubleSpinBox(equalizerGroupBox); minSpinBox->setObjectName(QString::fromUtf8("minSpinBox")); + minSpinBox->setMinimum(-999.99); + minSpinBox->setMaximum(999.99); hboxLayout4->addWidget(minSpinBox); @@ -297,6 +299,8 @@ public: midSpinBox = new QDoubleSpinBox(equalizerGroupBox); midSpinBox->setObjectName(QString::fromUtf8("midSpinBox")); + midSpinBox->setMinimum(-999.99); + midSpinBox->setMaximum(999.99); hboxLayout4->addWidget(midSpinBox); @@ -306,6 +310,8 @@ public: maxSpinBox = new QDoubleSpinBox(equalizerGroupBox); maxSpinBox->setObjectName(QString::fromUtf8("maxSpinBox")); + maxSpinBox->setMinimum(-999.99); + maxSpinBox->setMaximum(999.99); hboxLayout4->addWidget(maxSpinBox); @@ -358,7 +364,6 @@ public: void retranslateUi(QDialog *QualityMapperDialogClass) { QualityMapperDialogClass->setWindowTitle(QApplication::translate("QualityMapperDialogClass", "Quality Mapper Dialog", 0, QApplication::UnicodeUTF8)); - QualityMapperDialogClass->setToolTip(QApplication::translate("QualityMapperDialogClass", "gne gne gne!", 0, QApplication::UnicodeUTF8)); transferFunctionGroupBox->setTitle(QApplication::translate("QualityMapperDialogClass", "Transfer Function", 0, QApplication::UnicodeUTF8)); transferFunctionEditBox->setTitle(QApplication::translate("QualityMapperDialogClass", "Transfer Function Edit", 0, QApplication::UnicodeUTF8)); channelBox->setToolTip(QApplication::translate("QualityMapperDialogClass", "Choose the channel to edit", 0, QApplication::UnicodeUTF8));