def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') if self.Centerlines == None: self.PrintError('Error: No input centerlines.') if self.UseCombinedDistance == 1: if self.RadiusArrayName == '': self.PrintError('Error: CenterlineRadiusArrayName not set.') distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines( ) distanceToCenterlinesFilter.SetInputData(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation(1) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius(1) distanceToCenterlinesFilter.SetProjectPointArrays( self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName( self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName( self.RadiusArrayName) distanceToCenterlinesFilter.Update() surface = distanceToCenterlinesFilter.GetOutput() centerlineArray = surface.GetPointData().GetArray( self.DistanceToCenterlinesArrayName) radiusArray = surface.GetPointData().GetArray(self.RadiusArrayName) for i in range(surface.GetNumberOfPoints()): centerlineval = centerlineArray.GetComponent(i, 0) radius = radiusArray.GetComponent(i, 0) if centerlineval > 1.4 * radius: centerlineArray.SetTuple1(i, 1.4 * radius) elif centerlineval < 0.9 * radius: centerlineArray.SetTuple1(i, radius) self.Surface = surface else: distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines( ) distanceToCenterlinesFilter.SetInputData(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation( self.UseRadiusInformation) distanceToCenterlinesFilter.SetEvaluateTubeFunction( self.EvaluateTubeFunction) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius( self.EvaluateCenterlineRadius) distanceToCenterlinesFilter.SetProjectPointArrays( self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName( self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName( self.RadiusArrayName) distanceToCenterlinesFilter.Update() self.Surface = distanceToCenterlinesFilter.GetOutput()
def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') if self.Centerlines == None: self.PrintError('Error: No input centerlines.') if self.UseCombinedDistance == 1: if self.RadiusArrayName == '': self.PrintError('Error: CenterlineRadiusArrayName not set.') distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines() distanceToCenterlinesFilter.SetInput(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation(1) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius(1) distanceToCenterlinesFilter.SetProjectPointArrays(self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName(self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName(self.RadiusArrayName) distanceToCenterlinesFilter.Update() surface = distanceToCenterlinesFilter.GetOutput() centerlineArray = surface.GetPointData().GetArray(self.DistanceToCenterlinesArrayName) radiusArray = surface.GetPointData().GetArray(self.RadiusArrayName) for i in range (surface.GetNumberOfPoints()): centerlineval = centerlineArray.GetComponent(i,0) radius = radiusArray.GetComponent(i,0) if centerlineval > 1.4 * radius: centerlineArray.SetTuple1(i,1.4 * radius) elif centerlineval < 0.9 * radius: centerlineArray.SetTuple1(i,radius) self.Surface = surface else: distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines() distanceToCenterlinesFilter.SetInput(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation(self.UseRadiusInformation) distanceToCenterlinesFilter.SetEvaluateTubeFunction(self.EvaluateTubeFunction) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius(self.EvaluateCenterlineRadius) distanceToCenterlinesFilter.SetProjectPointArrays(self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName(self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName(self.RadiusArrayName) distanceToCenterlinesFilter.Update() self.Surface = distanceToCenterlinesFilter.GetOutput() if self.Surface.GetSource(): self.Surface.GetSource().UnRegisterAllOutputs()
def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') if self.Centerlines == None: self.PrintError('Error: No input centerlines.') distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines( ) distanceToCenterlinesFilter.SetInput(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation( self.UseRadiusInformation) distanceToCenterlinesFilter.SetEvaluateTubeFunction( self.EvaluateTubeFunction) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius( self.EvaluateCenterlineRadius) distanceToCenterlinesFilter.SetProjectPointArrays( self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName( self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName( self.RadiusArrayName) distanceToCenterlinesFilter.Update() self.Surface = distanceToCenterlinesFilter.GetOutput() if self.Surface.GetSource(): self.Surface.GetSource().UnRegisterAllOutputs()
def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') if self.Centerlines == None: self.PrintError('Error: No input centerlines.') distanceToCenterlinesFilter = vtkvmtk.vtkvmtkPolyDataDistanceToCenterlines() distanceToCenterlinesFilter.SetInput(self.Surface) distanceToCenterlinesFilter.SetCenterlines(self.Centerlines) distanceToCenterlinesFilter.SetUseRadiusInformation(self.UseRadiusInformation) distanceToCenterlinesFilter.SetEvaluateTubeFunction(self.EvaluateTubeFunction) distanceToCenterlinesFilter.SetEvaluateCenterlineRadius(self.EvaluateCenterlineRadius) distanceToCenterlinesFilter.SetProjectPointArrays(self.ProjectPointArrays) distanceToCenterlinesFilter.SetDistanceToCenterlinesArrayName(self.DistanceToCenterlinesArrayName) distanceToCenterlinesFilter.SetCenterlineRadiusArrayName(self.RadiusArrayName) distanceToCenterlinesFilter.Update() self.Surface = distanceToCenterlinesFilter.GetOutput() if self.Surface.GetSource(): self.Surface.GetSource().UnRegisterAllOutputs()