Added comments and minor modifications

This commit is contained in:
Paolo Cignoni cignoni 2008-01-20 13:00:37 +00:00
parent bfd0cd38f3
commit 249bfd0624
6 changed files with 50 additions and 45 deletions

View File

@ -31,11 +31,11 @@ Beginning
#include <QtGui>
#include <limits>
#include <vcg/complex/trimesh/clean.h>
#include <vcg/complex/trimesh/stat.h>
#include <vcg/complex/trimesh/update/flag.h>
// #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 <vcg/space/triangle3.h> //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<CMeshO>::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<float,float> minmax = tri::Stat<CMeshO>::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());

View File

@ -44,11 +44,14 @@ Beginning
//#include <vcg/math/base.h>
//#include <vcg/space/triangle3.h>
#include <vcg/complex/trimesh/update/color.h> //<-- contains VertexQuality method
#include "../../meshlabplugins/meshcolorize/curvature.h" //<--contains Frange
#include "qualitymapperdialog.h"
#include <vcg/math/histogram.h>
#include "transferfunction.h"
#include <vcg/math/histogram.h>
#include <vcg/complex/trimesh/stat.h>
//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

View File

@ -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<int>::min();
int maxY = 0;
int minY = std::numeric_limits<int>::max();
/*std::vector<float>::iterator it;
for (it= h->R.begin(); it != h->R.end(); it++)*/
//processing minX, maxX, minY and maxY values
for (int i=0; i<h.n; i++)
{
@ -155,7 +132,7 @@ void QualityMapperDialog::initEqualizerHistogram( Histogramf& h )
//drawing chart basics
drawCartesianChartBasics( _equalizerScene, ui.equalizerGraphicsView );
QSizeF valuesStringSize;
//QSizeF valuesStringSize;
//Font f = new Font("Verdana", valuesLabelSize);

View File

@ -22,6 +22,8 @@ using namespace vcg;
//questa clsse l'hai creata tu? (??) MAL
//l'ho ripresa da meshcolorize perché mi serviva per utilizzare altro codice copiato. ;-) Dobbiamo valutare se mantenerla UCCIO
// QualityMapperSettings stores all the settings that should be inserted in QualityMapperDialog fields
class QualityMapperSettings
{
public:
@ -70,7 +72,8 @@ private:
QGraphicsScene _equalizerScene; //questo equivale a graphics di .NET. O ne conserviamo una sola e la utilizziamo per disegnare tutto, o ne creiamo una ogni volta che dobbiamo disegnare qualcosa. forse sbaglio in pieno(??) indagare MAL
QGraphicsScene _transferFunctionScene;
//questi parametri variano a seconda del grafico che si sta disegnando
//questi parametri variano a seconda del grafico che si sta disegnando MAL
//in effetti si, a parte forse border, leftBorder, rightBorder, upperBorder che potrebbero essere gli stessi UCCIO
int border;
int chartRectangleThickness;
int leftBorder;

View File

@ -27,9 +27,6 @@
<property name="windowIcon" >
<iconset resource="qualitymapper.qrc" >:/images/qualitymapper.png</iconset>
</property>
<property name="toolTip" >
<string>gne gne gne!</string>
</property>
<layout class="QVBoxLayout" >
<item>
<widget class="QGroupBox" name="transferFunctionGroupBox" >
@ -312,7 +309,14 @@
<item row="1" column="0" >
<layout class="QHBoxLayout" >
<item>
<widget class="QDoubleSpinBox" name="minSpinBox" />
<widget class="QDoubleSpinBox" name="minSpinBox" >
<property name="minimum" >
<double>-999.990000000000009</double>
</property>
<property name="maximum" >
<double>999.990000000000009</double>
</property>
</widget>
</item>
<item>
<spacer>
@ -328,7 +332,14 @@
</spacer>
</item>
<item>
<widget class="QDoubleSpinBox" name="midSpinBox" />
<widget class="QDoubleSpinBox" name="midSpinBox" >
<property name="minimum" >
<double>-999.990000000000009</double>
</property>
<property name="maximum" >
<double>999.990000000000009</double>
</property>
</widget>
</item>
<item>
<spacer>
@ -344,7 +355,14 @@
</spacer>
</item>
<item>
<widget class="QDoubleSpinBox" name="maxSpinBox" />
<widget class="QDoubleSpinBox" name="maxSpinBox" >
<property name="minimum" >
<double>-999.990000000000009</double>
</property>
<property name="maximum" >
<double>999.990000000000009</double>
</property>
</widget>
</item>
</layout>
</item>

View File

@ -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));