diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-03-11 15:59:52 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-03-11 15:59:52 (GMT) |
commit | 4e2965ac17e4e8c64df327b3988bb0a4006f4357 (patch) | |
tree | d12bb37d0833963bbf6e13989a7cb224383fb768 /src/CGAL_Nef_polyhedron_DxfData.cc | |
parent | 5559ae9a6af459021c5b7ab4a823f491dce822a0 (diff) |
fix crashbug 2d resize. add 2d tests. print offscreen warning better.
Diffstat (limited to 'src/CGAL_Nef_polyhedron_DxfData.cc')
-rw-r--r-- | src/CGAL_Nef_polyhedron_DxfData.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/CGAL_Nef_polyhedron_DxfData.cc b/src/CGAL_Nef_polyhedron_DxfData.cc index 50a9952..8539e0e 100644 --- a/src/CGAL_Nef_polyhedron_DxfData.cc +++ b/src/CGAL_Nef_polyhedron_DxfData.cc @@ -96,17 +96,21 @@ std::string CGAL_Nef_polyhedron::dump() const void CGAL_Nef_polyhedron::transform( const Transform3d &matrix ) { + std::cout << matrix(0,0) << "," << matrix(1,0) << "," << matrix(2,0) << "," << matrix(3,0) << "\n"; + std::cout << matrix(0,1) << "," << matrix(1,1) << "," << matrix(2,1) << "," << matrix(3,1) << "\n"; + std::cout << matrix(0,2) << "," << matrix(1,2) << "," << matrix(2,2) << "," << matrix(3,2) << "\n"; + std::cout << matrix(0,3) << "," << matrix(1,3) << "," << matrix(2,3) << "," << matrix(3,3) << "\n"; if (!this->isNull()) { if (this->dim == 2) { // Unfortunately CGAL provides no transform method for CGAL_Nef_polyhedron2 // objects. So we convert in to our internal 2d data format, transform it, // tesselate it and create a new CGAL_Nef_polyhedron2 from it.. What a hack! - Eigen::Matrix2f testmat; testmat << matrix(0,0), matrix(0,1), matrix(1,0), matrix(1,1); if (testmat.determinant() == 0) { PRINT("Warning: Scaling a 2D object with 0 - removing object"); this->reset(); + return; } else { CGAL_Aff_transformation2 t( @@ -128,8 +132,7 @@ void CGAL_Nef_polyhedron::transform( const Transform3d &matrix ) Tree nulltree; CGALEvaluator tmpeval(nulltree); CGAL_Nef_polyhedron N = tmpeval.evaluateCGALMesh(ps); - this->p2.reset(); - *(this->p2) = *(N.p2); + this->p2.reset( new CGAL_Nef_polyhedron2( *N.p2 ) ); delete dd; } } |