Python vtk.vtkArrowSource() Examples
The following are 6
code examples of vtk.vtkArrowSource().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
vtk
, or try the search function
.
Example #1
Source File: DisplayNormals.py From pcloudpy with BSD 3-Clause "New" or "Revised" License | 6 votes |
def update(self): # Source for the glyph filter arrow = vtkArrowSource() arrow.SetTipResolution(8) arrow.SetTipLength(0.3) arrow.SetTipRadius(0.1) glyph = vtkGlyph3D() glyph.SetSourceConnection(arrow.GetOutputPort()) glyph.SetInput(self.input_) glyph.SetVectorModeToUseNormal() glyph.SetScaleFactor(0.1) #glyph.SetColorModeToColorByVector() #glyph.SetScaleModeToScaleByVector() glyph.OrientOn() glyph.Update() self.output_ = glyph.GetOutput()
Example #2
Source File: segmentation.py From director with BSD 3-Clause "New" or "Revised" License | 6 votes |
def applyArrowGlyphs(polyData, computeNormals=True, voxelGridLeafSize=0.03, normalEstimationSearchRadius=0.05, arrowSize=0.02): if computeNormals: polyData = applyVoxelGrid(polyData, leafSize=0.02) voxelData = applyVoxelGrid(polyData, leafSize=voxelGridLeafSize) polyData = normalEstimation(polyData, searchRadius=normalEstimationSearchRadius, searchCloud=voxelData) polyData = removeNonFinitePoints(polyData, 'normals') flipNormalsWithViewDirection(polyData, SegmentationContext.getGlobalInstance().getViewDirection()) assert polyData.GetPointData().GetNormals() arrow = vtk.vtkArrowSource() arrow.Update() glyph = vtk.vtkGlyph3D() glyph.SetScaleFactor(arrowSize) glyph.SetSourceData(arrow.GetOutput()) glyph.SetInputData(polyData) glyph.SetVectorModeToUseNormal() glyph.Update() return shallowCopy(glyph.GetOutput())
Example #3
Source File: vtkVisualization.py From MOTSFusion with MIT License | 5 votes |
def __init__(self, positions: np.ndarray, vectors: np.ndarray): self.num_vectors = 0 # VTK position representation self._positions = vtk.vtkPoints() # VTK vector representation self._vectors = vtk.vtkFloatArray() self._vectors.SetName("Vector Field") self._vectors.SetNumberOfComponents(3) # Visualization Pipeline # - Data source position_data = vtk.vtkPolyData() position_data.SetPoints(self._positions) position_data.GetPointData().AddArray(self._vectors) position_data.GetPointData().SetActiveVectors("Vector Field") # - Add the vector arrays as 3D Glyphs arrow_source = vtk.vtkArrowSource() add_arrows = vtk.vtkGlyph3D() add_arrows.SetInputData(position_data) add_arrows.SetSourceConnection(arrow_source.GetOutputPort()) add_arrows.Update() # - Map the data representation to graphics primitives mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(add_arrows.GetOutputPort()) super().__init__(mapper) self.add_vectors(positions, vectors)
Example #4
Source File: plotting.py From pyvista with MIT License | 5 votes |
def add_arrows(self, cent, direction, mag=1, **kwargs): """Add arrows to plotting object.""" direction = direction.copy() if cent.ndim != 2: cent = cent.reshape((-1, 3)) if direction.ndim != 2: direction = direction.reshape((-1, 3)) direction[:,0] *= mag direction[:,1] *= mag direction[:,2] *= mag pdata = pyvista.vector_poly_data(cent, direction) # Create arrow object arrow = vtk.vtkArrowSource() arrow.Update() glyph3D = vtk.vtkGlyph3D() glyph3D.SetSourceData(arrow.GetOutput()) glyph3D.SetInputData(pdata) glyph3D.SetVectorModeToUseVector() glyph3D.Update() arrows = wrap(glyph3D.GetOutput()) return self.add_mesh(arrows, **kwargs)
Example #5
Source File: geometric_objects.py From pyvista with MIT License | 4 votes |
def Arrow(start=(0.,0.,0.), direction=(1.,0.,0.), tip_length=0.25, tip_radius=0.1, tip_resolution=20, shaft_radius=0.05, shaft_resolution=20, scale=None): """Create a vtk Arrow. Parameters ---------- start : np.ndarray Start location in [x, y, z] direction : list or np.ndarray Direction the arrow points to in [x, y, z] tip_length : float, optional Length of the tip. tip_radius : float, optional Radius of the tip. tip_resolution : int, optional Number of faces around the tip. shaft_radius : float, optional Radius of the shaft. shaft_resolution : int, optional Number of faces around the shaft. scale : float or str, optional Scale factor of the entire object, default is None (i.e. scale of 1). 'auto' scales to length of direction array. Return ------ arrow : pyvista.PolyData Arrow surface. """ # Create arrow object arrow = vtk.vtkArrowSource() arrow.SetTipLength(tip_length) arrow.SetTipRadius(tip_radius) arrow.SetTipResolution(tip_resolution) arrow.SetShaftRadius(shaft_radius) arrow.SetShaftResolution(shaft_resolution) arrow.Update() surf = pyvista.PolyData(arrow.GetOutput()) if scale == 'auto': scale = float(np.linalg.norm(direction)) if isinstance(scale, float) or isinstance(scale, int): surf.points *= scale elif scale is not None: raise TypeError("Scale must be either float, int or 'auto'.") translate(surf, start, direction) return surf
Example #6
Source File: test_code_vasp_01.py From PyChemia with MIT License | 4 votes |
def MakeGlyphs(src, reverseNormals): """ Glyph the normals on the surface. You may need to adjust the parameters for maskPts, arrow and glyph for a nice appearance. :param: src - the surface to glyph. :param: reverseNormals - if True the normals on the surface are reversed. :return: The glyph object. """ # Sometimes the contouring algorithm can create a volume whose gradient # vector and ordering of polygon (using the right hand rule) are # inconsistent. vtkReverseSense cures this problem. reverse = vtk.vtkReverseSense() # Choose a random subset of points. maskPts = vtk.vtkMaskPoints() maskPts.SetOnRatio(5) maskPts.RandomModeOn() if reverseNormals: reverse.SetInputData(src) reverse.ReverseCellsOn() reverse.ReverseNormalsOn() maskPts.SetInputConnection(reverse.GetOutputPort()) else: maskPts.SetInputData(src) # Source for the glyph filter arrow = vtk.vtkArrowSource() arrow.SetTipResolution(16) arrow.SetTipLength(0.3) arrow.SetTipRadius(0.1) glyph = vtk.vtkGlyph3D() glyph.SetSourceConnection(arrow.GetOutputPort()) glyph.SetInputConnection(maskPts.GetOutputPort()) glyph.SetVectorModeToUseNormal() glyph.SetScaleFactor(1) glyph.SetColorModeToColorByVector() glyph.SetScaleModeToScaleByVector() glyph.OrientOn() glyph.Update() return glyph