mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-20 11:26:11 +00:00
Added comments and minor modifications
This commit is contained in:
parent
bfd0cd38f3
commit
249bfd0624
@ -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());
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user