2020-10-21 17:24:01 +02:00

122 lines
3.5 KiB
C++

/****************************************************************************
* MeshLab o o *
* An extendible mesh processor o o *
* _ O _ *
* Copyright(C) 2005, 2009 \/)\/ *
* Visual Computing Lab /\/| *
* ISTI - Italian National Research Council | *
* \ *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
* for more details. *
* *
****************************************************************************/
#include "slicedialog.h"
dialogslice::dialogslice(QWidget *parent)
: QDockWidget(parent)
{
ui.setupUi(this);
this->setWidget(ui.frame);
numPlane=1; //number of plans
distance=1;
//defaultTrackball=false;
restoreDefalut=false;
QPoint p=parent->mapToGlobal(QPoint(0,0));
this->setGeometry(p.x()+(parent->width()-width()),p.y()+40,width(),height() );
this->setFloating(true);
multi_sigleExportFile=false; //Multi/Single file choose
}
dialogslice::~dialogslice(){
}
void dialogslice::on_DefultButton_clicked()
{
emit Update_glArea();
emit RestoreDefault();
numPlane=1;
distance=1;
ui.SliderPlaneDistance->setValue(1);
ui.spinBox->setValue(1);
}
void dialogslice::on_ExportButton_clicked()
{
emit exportMesh();
}
void dialogslice::on_SliderPlaneDistance_sliderMoved(int x)
{
distanceDefault=false;
distance=x;
QString c;
ui.DistanceEdit->setText(c.setNum(distance*distanceRange));
emit Update_glArea();
}
void dialogslice::on_Exporter_singleFile_clicked()
{
this->multi_sigleExportFile=true;
}
void dialogslice::on_Exporter_MultiFile_clicked()
{
this->multi_sigleExportFile=false;
}
void dialogslice::on_DistanceEdit_returnPressed()
{
distanceDefault=false;
bool ok;
float val=this->ui.DistanceEdit->text().toFloat(&ok);
if (ok)
{
this->ui.SliderPlaneDistance->setValue(val/distanceRange);
distance=val/distanceRange;
QString c;
}
else
this->ui.SliderPlaneDistance->setValue(1);
emit Update_glArea();
}
void dialogslice::on_spinBox_valueChanged(int x)
{numPlane=x;
if(x>1){
ui.DistanceEdit->setEnabled(true);
ui.SliderPlaneDistance->setEnabled(true);
ui.SliderPlaneDistance->setValue(defaultdistance/distanceRange);
}
else
{
ui.DistanceEdit->setEnabled(false);
ui.SliderPlaneDistance->setEnabled(false);
}
emit Update_glArea();
}