From 030e1ff9d571eb32c57d0f9dbc090e950fccda05 Mon Sep 17 00:00:00 2001 From: Guido Ranzuglia granzuglia Date: Thu, 13 Dec 2007 23:43:35 +0000 Subject: [PATCH] added tga file format converter --- src/meshlabplugins/u3d_io/u3d_gui.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/meshlabplugins/u3d_io/u3d_gui.cpp b/src/meshlabplugins/u3d_io/u3d_gui.cpp index 0be0e81b6..e58bed196 100644 --- a/src/meshlabplugins/u3d_io/u3d_gui.cpp +++ b/src/meshlabplugins/u3d_io/u3d_gui.cpp @@ -1,4 +1,17 @@ #include "u3d_gui.h" +#include + +float avoidExponentialNotation(const float n,const float bboxdiag) +{ + float val_min = std::min(1000.0f,floor(bboxdiag) * 1000.0f); + return val_min * floor(n) / val_min; +} + +vcg::Point3f avoidExponentialNotation(const vcg::Point3f& p,const float bboxdiag) +{ + float val_min = std::min(1000.0f,floor(bboxdiag) * 1000.0f); + return vcg::Point3f(val_min * floor(p.X()) / val_min,val_min * floor(p.Y()) / val_min,val_min * floor(p.Z()) / val_min); +} U3D_GUI::U3D_GUI(vcg::tri::io::u3dparametersclasses::Movie15Parameters& param,QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags),_param(param) @@ -20,8 +33,9 @@ void U3D_GUI::saveParameters() ui.tary_lab->text().toFloat() - ui.posy_lnedt->text().toFloat(), ui.tarz_lab->text().toFloat() - ui.posz_lnedt->text().toFloat()); vcg::tri::io::u3dparametersclasses::Movie15Parameters::CameraParameters* sw = _param._campar; + vcg::Point3f p = avoidExponentialNotation(sw->_obj_pos,_param._campar->_obj_bbox_diag); _param._campar = new vcg::tri::io::u3dparametersclasses::Movie15Parameters::CameraParameters( - (float) ui.fov_spn->value(),0.0f,from_target_to_camera,from_target_to_camera.Norm(),sw->_obj_pos); + (float) ui.fov_spn->value(),0.0f,from_target_to_camera,from_target_to_camera.Norm(),sw->_obj_bbox_diag,p); delete sw; } @@ -39,15 +53,17 @@ void U3D_GUI::on_buttonBox_rejected() void U3D_GUI::defaultParameters() { QString tmp; - tmp.setNum(_param._campar->_obj_pos.X()); + vcg::Point3f pos = avoidExponentialNotation(_param._campar->_obj_pos,_param._campar->_obj_bbox_diag); + + tmp.setNum(pos.X()); ui.tarx_lnedt->setText(tmp); - tmp.setNum(_param._campar->_obj_pos.Y()); + tmp.setNum(pos.Y()); ui.tary_lnedt->setText( tmp); - tmp.setNum(_param._campar->_obj_pos.Z()); + tmp.setNum(pos.Z()); ui.tarz_lnedt->setText(tmp); tmp.setNum(0.0); ui.posx_lnedt->setText(tmp); ui.posy_lnedt->setText(tmp); - tmp.setNum(-1.0f * _param._campar->_obj_bbox_diag); + tmp.setNum(avoidExponentialNotation(-1.0f * _param._campar->_obj_bbox_diag,_param._campar->_obj_bbox_diag)); ui.posz_lnedt->setText(tmp); } \ No newline at end of file