def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') boundaryReferenceSystems = vtkvmtk.vtkvmtkBoundaryReferenceSystems() boundaryReferenceSystems.SetInputData(self.Surface) boundaryReferenceSystems.SetBoundaryRadiusArrayName( self.BoundaryRadiusArrayName) boundaryReferenceSystems.SetBoundaryNormalsArrayName( self.BoundaryNormalsArrayName) boundaryReferenceSystems.SetPoint1ArrayName(self.Point1ArrayName) boundaryReferenceSystems.SetPoint2ArrayName(self.Point2ArrayName) boundaryReferenceSystems.Update() self.ReferenceSystems = boundaryReferenceSystems.GetOutput()
def Execute(self): if self.Surface == None: self.PrintError('Error: No input surface.') boundaryReferenceSystems = vtkvmtk.vtkvmtkBoundaryReferenceSystems() boundaryReferenceSystems.SetInput(self.Surface) boundaryReferenceSystems.SetBoundaryRadiusArrayName(self.BoundaryRadiusArrayName) boundaryReferenceSystems.SetBoundaryNormalsArrayName(self.BoundaryNormalsArrayName) boundaryReferenceSystems.SetPoint1ArrayName(self.Point1ArrayName) boundaryReferenceSystems.SetPoint2ArrayName(self.Point2ArrayName) boundaryReferenceSystems.Update() self.ReferenceSystems = boundaryReferenceSystems.GetOutput() if self.ReferenceSystems.GetSource(): self.ReferenceSystems.GetSource().UnRegisterAllOutputs()
def Execute(self): if not self.Mesh: self.PrintError('Error: No input mesh.') return if not self.CellEntityIdsArrayName: self.PrintError('Error: No input CellEntityIdsArrayName.') return if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 threshold = vtk.vtkThreshold() threshold.SetInput(self.Mesh) threshold.ThresholdByUpper(self.VolumeCellEntityId + 0.5) threshold.SetInputArrayToProcess(0, 0, 0, 1, self.CellEntityIdsArrayName) threshold.Update() boundaryMesh = threshold.GetOutput() boundaryMesh.GetCellData().SetActiveScalars( self.CellEntityIdsArrayName) boundaryMapper = vtk.vtkDataSetMapper() boundaryMapper.SetInput(boundaryMesh) boundaryMapper.ScalarVisibilityOn() boundaryMapper.SetScalarModeToUseCellData() boundaryMapper.SetScalarRange( boundaryMesh.GetCellData().GetScalars().GetRange()) boundaryActor = vtk.vtkActor() boundaryActor.SetMapper(boundaryMapper) self.vmtkRenderer.Renderer.AddActor(boundaryActor) wallThreshold = vtk.vtkThreshold() wallThreshold.SetInput(boundaryMesh) wallThreshold.ThresholdByLower(self.WallCellEntityId + 0.5) wallThreshold.SetInputArrayToProcess(0, 0, 0, 1, self.CellEntityIdsArrayName) wallThreshold.Update() wallMeshToSurface = vtk.vtkGeometryFilter() wallMeshToSurface.SetInput(wallThreshold.GetOutput()) wallMeshToSurface.Update() boundaryReferenceSystems = vtkvmtk.vtkvmtkBoundaryReferenceSystems() boundaryReferenceSystems.SetInput(wallMeshToSurface.GetOutput()) boundaryReferenceSystems.SetBoundaryRadiusArrayName("BoundaryRadius") boundaryReferenceSystems.SetBoundaryNormalsArrayName("BoundaryNormals") boundaryReferenceSystems.SetPoint1ArrayName("Point1Array") boundaryReferenceSystems.SetPoint2ArrayName("Point2Array") boundaryReferenceSystems.Update() self.ReferenceSystems = boundaryReferenceSystems.GetOutput() cellEntityIdsArray = vtk.vtkIntArray() cellEntityIdsArray.SetName(self.CellEntityIdsArrayName) cellEntityIdsArray.SetNumberOfTuples( self.ReferenceSystems.GetNumberOfPoints()) self.ReferenceSystems.GetPointData().AddArray(cellEntityIdsArray) wallMeshToSurface = vtk.vtkGeometryFilter() wallMeshToSurface.SetInput(boundaryMesh) wallMeshToSurface.Update() boundarySurface = wallMeshToSurface.GetOutput() pointCells = vtk.vtkIdList() surfaceCellEntityIdsArray = vtk.vtkIntArray() surfaceCellEntityIdsArray.DeepCopy( boundarySurface.GetCellData().GetArray( self.CellEntityIdsArrayName)) self.PrintLog('') for i in range(self.ReferenceSystems.GetNumberOfPoints()): pointId = boundarySurface.FindPoint( self.ReferenceSystems.GetPoint(i)) boundarySurface.GetPointCells(pointId, pointCells) cellId = pointCells.GetId(0) cellEntityId = surfaceCellEntityIdsArray.GetValue(cellId) cellEntityIdsArray.SetValue(i, cellEntityId) origin = self.ReferenceSystems.GetPoint(i) normal = self.ReferenceSystems.GetPointData().GetArray( "BoundaryNormals").GetTuple3(i) radius = self.ReferenceSystems.GetPointData().GetArray( "BoundaryRadius").GetTuple1(i) logLine = 'CellEntityId: %d\n' % cellEntityId logLine += ' Origin: %f, %f, %f\n' % (origin[0], origin[1], origin[2]) logLine += ' Normal: %f, %f, %f\n' % (normal[0], normal[1], normal[2]) logLine += ' Radius: %f\n' % radius self.PrintLog(logLine) self.ReferenceSystems.GetPointData().SetActiveScalars( self.CellEntityIdsArrayName) labelsMapper = vtk.vtkLabeledDataMapper() labelsMapper.SetInput(self.ReferenceSystems) labelsMapper.SetLabelModeToLabelScalars() labelsActor = vtk.vtkActor2D() labelsActor.SetMapper(labelsMapper) self.vmtkRenderer.Renderer.AddActor(labelsActor) self.vmtkRenderer.Render() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if not self.Mesh: self.PrintError('Error: No input mesh.') return if not self.CellEntityIdsArrayName: self.PrintError('Error: No input CellEntityIdsArrayName.') return if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) threshold = vtk.vtkThreshold() threshold.SetInput(self.Mesh) threshold.ThresholdByUpper(self.VolumeCellEntityId+0.5) threshold.SetInputArrayToProcess(0,0,0,1,self.CellEntityIdsArrayName) threshold.Update() boundaryMesh = threshold.GetOutput() boundaryMesh.GetCellData().SetActiveScalars(self.CellEntityIdsArrayName) boundaryMapper = vtk.vtkDataSetMapper() boundaryMapper.SetInput(boundaryMesh) boundaryMapper.ScalarVisibilityOn() boundaryMapper.SetScalarModeToUseCellData() boundaryMapper.SetScalarRange(boundaryMesh.GetCellData().GetScalars().GetRange()) boundaryActor = vtk.vtkActor() boundaryActor.SetMapper(boundaryMapper) self.vmtkRenderer.Renderer.AddActor(boundaryActor) wallThreshold = vtk.vtkThreshold() wallThreshold.SetInput(boundaryMesh) wallThreshold.ThresholdByLower(self.WallCellEntityId+0.5) wallThreshold.SetInputArrayToProcess(0,0,0,1,self.CellEntityIdsArrayName) wallThreshold.Update() wallMeshToSurface = vtk.vtkGeometryFilter() wallMeshToSurface.SetInput(wallThreshold.GetOutput()) wallMeshToSurface.Update() boundaryReferenceSystems = vtkvmtk.vtkvmtkBoundaryReferenceSystems() boundaryReferenceSystems.SetInput(wallMeshToSurface.GetOutput()) boundaryReferenceSystems.SetBoundaryRadiusArrayName("BoundaryRadius") boundaryReferenceSystems.SetBoundaryNormalsArrayName("BoundaryNormals") boundaryReferenceSystems.SetPoint1ArrayName("Point1Array") boundaryReferenceSystems.SetPoint2ArrayName("Point2Array") boundaryReferenceSystems.Update() self.ReferenceSystems = boundaryReferenceSystems.GetOutput() cellEntityIdsArray = vtk.vtkIntArray() cellEntityIdsArray.SetName(self.CellEntityIdsArrayName) cellEntityIdsArray.SetNumberOfTuples(self.ReferenceSystems.GetNumberOfPoints()) self.ReferenceSystems.GetPointData().AddArray(cellEntityIdsArray) wallMeshToSurface = vtk.vtkGeometryFilter() wallMeshToSurface.SetInput(boundaryMesh) wallMeshToSurface.Update() boundarySurface = wallMeshToSurface.GetOutput() pointCells = vtk.vtkIdList() surfaceCellEntityIdsArray = vtk.vtkIntArray() surfaceCellEntityIdsArray.DeepCopy(boundarySurface.GetCellData().GetArray(self.CellEntityIdsArrayName)) self.PrintLog('') for i in range(self.ReferenceSystems.GetNumberOfPoints()): pointId = boundarySurface.FindPoint(self.ReferenceSystems.GetPoint(i)) boundarySurface.GetPointCells(pointId,pointCells) cellId = pointCells.GetId(0) cellEntityId = surfaceCellEntityIdsArray.GetValue(cellId) cellEntityIdsArray.SetValue(i,cellEntityId) origin = self.ReferenceSystems.GetPoint(i) normal = self.ReferenceSystems.GetPointData().GetArray("BoundaryNormals").GetTuple3(i) radius = self.ReferenceSystems.GetPointData().GetArray("BoundaryRadius").GetTuple1(i) logLine = 'CellEntityId: %d\n' % cellEntityId logLine += ' Origin: %f, %f, %f\n' % (origin[0],origin[1],origin[2]) logLine += ' Normal: %f, %f, %f\n' % (normal[0],normal[1],normal[2]) logLine += ' Radius: %f\n' % radius self.PrintLog(logLine) self.ReferenceSystems.GetPointData().SetActiveScalars(self.CellEntityIdsArrayName) labelsMapper = vtk.vtkLabeledDataMapper(); labelsMapper.SetInput(self.ReferenceSystems) labelsMapper.SetLabelModeToLabelScalars() labelsActor = vtk.vtkActor2D() labelsActor.SetMapper(labelsMapper) self.vmtkRenderer.Renderer.AddActor(labelsActor) self.vmtkRenderer.Render() if self.OwnRenderer: self.vmtkRenderer.Deallocate()