Commit 36496681901d50a8dc0886a5ed74da040f8cf0c5
1 parent
92f6a9bf
Exists in
master
and in
5 other branches
Testing with quadric decimation
Showing
1 changed file
with
27 additions
and
0 deletions
Show diff stats
invesalius/data/surface_process.py
... | ... | @@ -76,6 +76,19 @@ class SurfaceProcess(multiprocessing.Process): |
76 | 76 | mcubes.ComputeNormalsOn() |
77 | 77 | polydata = mcubes.GetOutput() |
78 | 78 | |
79 | + | |
80 | + triangle = vtk.vtkTriangleFilter() | |
81 | + triangle.SetInput(polydata) | |
82 | + triangle.Update() | |
83 | + polydata = triangle.GetOutput() | |
84 | + | |
85 | + bounds = polydata.GetBounds() | |
86 | + origin = ((bounds[1] + bounds[0]) / 2.0, (bounds[3] + bounds[2])/2.0, | |
87 | + (bounds[5] + bounds[4]) / 2.0) | |
88 | + | |
89 | + print "Bounds is", bounds | |
90 | + print "origin is", origin | |
91 | + | |
79 | 92 | #print "Decimating" |
80 | 93 | #if self.decimate_reduction: |
81 | 94 | #decimation = vtk.vtkDecimatePro() |
... | ... | @@ -85,6 +98,20 @@ class SurfaceProcess(multiprocessing.Process): |
85 | 98 | #decimation.SplittingOff() |
86 | 99 | #polydata = decimation.GetOutput() |
87 | 100 | |
101 | + decimation = vtk.vtkQuadricClustering() | |
102 | + decimation.SetInput(polydata) | |
103 | + decimation.AutoAdjustNumberOfDivisionsOff() | |
104 | + decimation.SetDivisionOrigin(0, 0, 0) | |
105 | + decimation.SetDivisionSpacing(self.spacing) | |
106 | + decimation.SetFeaturePointsAngle(80) | |
107 | + decimation.UseFeaturePointsOn() | |
108 | + decimation.UseFeatureEdgesOn() | |
109 | + decimation.CopyCellDataOn() | |
110 | + | |
111 | + print "Division", decimation.GetNumberOfDivisions() | |
112 | + | |
113 | + polydata = decimation.GetOutput() | |
114 | + | |
88 | 115 | #if self.smooth_iterations and self.smooth_relaxation_factor: |
89 | 116 | #print "Smoothing" |
90 | 117 | #smoother = vtk.vtkWindowedSincPolyDataFilter() | ... | ... |