diff --git a/src/fgt/edit_quality/common/util.h b/src/fgt/edit_quality/common/util.h index b36bbc02a..9c5a86cac 100644 --- a/src/fgt/edit_quality/common/util.h +++ b/src/fgt/edit_quality/common/util.h @@ -67,7 +67,12 @@ struct CHART_INFO CHART_INFO( int view_width=0, int view_height=0, float min_X=0.0f, float max_X=0.0f, float min_Y=0.0f, float max_Y=0.0f ) { - //assert(num_of_items != 0); + this->updateChartInfo(view_width, view_height, min_X, max_X, min_Y, max_Y); + } + + void updateChartInfo( int view_width=0, int view_height=0, float min_X=0.0f, float max_X=0.0f, float min_Y=0.0f, float max_Y=0.0f ) + { + assert(numOfItems != 0); leftBorder = CANVAS_BORDER_DISTANCE; rightBorder = view_width - CANVAS_BORDER_DISTANCE; diff --git a/src/fgt/edit_quality/qualitymapperdialog.cpp b/src/fgt/edit_quality/qualitymapperdialog.cpp index 07656cfd5..ffe227927 100644 --- a/src/fgt/edit_quality/qualitymapperdialog.cpp +++ b/src/fgt/edit_quality/qualitymapperdialog.cpp @@ -82,6 +82,7 @@ QualityMapperDialog::QualityMapperDialog(QWidget *parent, MeshModel& m, GLArea * // toggling Trackball button connect(this, SIGNAL(suspendEditToggle()),gla,SLOT(suspendEditToggle()) ); + suspendEditToggle(); } @@ -368,7 +369,7 @@ bool QualityMapperDialog::initEqualizerHistogram() connect(_equalizerHandles[MID_HANDLE], SIGNAL(handleReleased()), this, SLOT(meshColorPreview())); connect(_equalizerHandles[RIGHT_HANDLE], SIGNAL(handleReleased()), this, SLOT(meshColorPreview())); connect(ui.brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(meshColorPreview())); - connect(ui.brightessSpinBox, SIGNAL(valueChanged(double)), this, SLOT(meshColorPreview())); + connect(ui.brightessSpinBox, SIGNAL(valueChanged(double)), this, SLOT(meshColorPreview())); connect(ui.minSpinBox, SIGNAL(editingFinished()), this, SLOT(on_previewButton_clicked())); connect(ui.midSpinBox, SIGNAL(editingFinished()), this, SLOT(on_previewButton_clicked())); connect(ui.maxSpinBox, SIGNAL(editingFinished()), this, SLOT(on_previewButton_clicked())); @@ -434,13 +435,14 @@ bool QualityMapperDialog::drawEqualizerHistogram(bool leftHandleIsInsideHistogra QMessageBox::warning(this, tr("Quality Mapper"), tr("The model has no vertex quality"), QMessageBox::Ok); return false; } - //building histogram chart informations - int maxY = computeEqualizerMaxY(_equalizer_histogram, _equalizer_histogram->MinV(), _equalizer_histogram->MaxV()); - _histogram_info = new CHART_INFO( ui.equalizerGraphicsView->width(), ui.equalizerGraphicsView->height(), _equalizer_histogram->MinV(), _equalizer_histogram->MaxV(), 0, maxY); + _histogram_info = new CHART_INFO( ui.equalizerGraphicsView->width(), ui.equalizerGraphicsView->height(), _equalizer_histogram->MinV(), _equalizer_histogram->MaxV(), 0, computeEqualizerMaxY(_equalizer_histogram, _equalizer_histogram->MinV(), _equalizer_histogram->MaxV()) ); } else { + //added by MAL 23/04/08 + _transferFunction_info->updateChartInfo( ui.equalizerGraphicsView->width(), ui.equalizerGraphicsView->height(), _equalizer_histogram->MinV(), _equalizer_histogram->MaxV(), 0, computeEqualizerMaxY(_equalizer_histogram, _equalizer_histogram->MinV(), _equalizer_histogram->MaxV()) ); + // if histogram doesn't need to be redrawn, return if ( (leftHandleIsInsideHistogram && _leftHandleWasInsideHistogram) && (rightHandleIsInsideHistogram && _rightHandleWasInsideHistogram) ) return true; @@ -665,6 +667,9 @@ void QualityMapperDialog::drawTransferFunction() //building transfer function chart informations if ( _transferFunction_info == 0 ) _transferFunction_info = new CHART_INFO( ui.transferFunctionView->width(), ui.transferFunctionView->height(), /* _transferFunction->size(),*/ 0.0f, 1.0f, 0.0f, 1.0f ); + else + // added by MAL 23/04/08 + _transferFunction_info->updateChartInfo( ui.transferFunctionView->width(), ui.transferFunctionView->height(), /* _transferFunction->size(),*/ 0.0f, 1.0f, 0.0f, 1.0f ); //is necessary, initialize TF if ( !_isTransferFunctionInitialized ) @@ -714,7 +719,7 @@ void QualityMapperDialog::drawTransferFunction() //fetching positions of handles pos1 = handle1->scenePos(); pos2 = handle2->scenePos(); - //hilighting line if it touches the currently selected handle + //highlighting line if it touches the currently selected handle if (( handle1 == _currentTfHandle ) || (handle2 == _currentTfHandle) ) drawingPen.setColor( channelColor.lighter() ); else @@ -1410,4 +1415,4 @@ void QualityMapperDialog::on_midPercentageLine_editingFinished() ui.midSpinBox->blockSignals( false ); _signalDir = UNKNOWN_DIRECTION; -} \ No newline at end of file +} diff --git a/src/fgt/edit_quality/qualitymapperdialog.h b/src/fgt/edit_quality/qualitymapperdialog.h index afa81ae0d..ef9bcbbcd 100644 --- a/src/fgt/edit_quality/qualitymapperdialog.h +++ b/src/fgt/edit_quality/qualitymapperdialog.h @@ -219,6 +219,7 @@ private slots: void drawGammaCorrection(void); }; + bool TfHandleCompare(TFHandle*h1, TFHandle*h2); #endif // QUALITYMAPPERDIALOG_H