|
5 | 5 | #include <MeshGenerator.h> |
6 | 6 | #include <vtkTransform.h> |
7 | 7 | #include <vtkTransformPolyDataFilter.h> |
| 8 | +#include <limits> |
8 | 9 |
|
9 | 10 | MeshGenerator::MeshGenerator(Preferences& prefs) : prefs_(prefs) |
10 | 11 | { |
@@ -72,21 +73,19 @@ vtkSmartPointer<vtkPolyData> MeshGenerator::transform_back( |
72 | 73 | vtkSmartPointer<vtkPolyData> pd) |
73 | 74 | { |
74 | 75 | double pt_bounds[6]; |
75 | | - pt->GetBounds(pt_bounds); |
76 | | - double centerP[3] = {pt_bounds[1] - pt_bounds[0],pt_bounds[3] - pt_bounds[2],pt_bounds[5] - pt_bounds[4]}; |
77 | | - |
78 | 76 | double pd_bounds[6]; |
| 77 | + pt->GetBounds(pt_bounds); |
79 | 78 | pd->GetBounds(pd_bounds); |
80 | | - double centerD[3] = {pd_bounds[1] - pd_bounds[0],pd_bounds[3] - pd_bounds[2],pd_bounds[5] - pd_bounds[4]}; |
81 | 79 |
|
82 | 80 | double scaleX = (pt_bounds[1] - pt_bounds[0])/(pd_bounds[1] - pd_bounds[0]); |
83 | 81 | double scaleY = (pt_bounds[3] - pt_bounds[2])/(pd_bounds[3] - pd_bounds[2]); |
84 | 82 | double scaleZ = (pt_bounds[5] - pt_bounds[4])/(pd_bounds[5] - pd_bounds[4]); |
85 | 83 |
|
86 | 84 | vtkSmartPointer<vtkTransform> transp = vtkSmartPointer<vtkTransform>::New(); |
87 | | - transp->Translate(centerP[0],centerP[1],centerP[2]); |
| 85 | + |
| 86 | + transp->Translate(pt_bounds[0], pt_bounds[2], pt_bounds[4]); |
88 | 87 | transp->Scale(scaleX, scaleY, scaleZ); |
89 | | - transp->Translate(-centerD[0],-centerD[1],-centerD[2]); |
| 88 | + transp->Translate(- pd_bounds[0], - pd_bounds[2], - pd_bounds[4]); |
90 | 89 |
|
91 | 90 | vtkSmartPointer<vtkTransformPolyDataFilter> tpd = |
92 | 91 | vtkSmartPointer<vtkTransformPolyDataFilter>::New(); |
|
0 commit comments