Python vtk.vtkDelaunay2D() Examples
The following are 5
code examples of vtk.vtkDelaunay2D().
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: Delaunay2D.py From pcloudpy with BSD 3-Clause "New" or "Revised" License | 5 votes |
def update(self): delaunay = vtkDelaunay2D() delaunay.SetInput(self.input_) delaunay.SetTolerance(self.tolerance) delaunay.SetAlpha(self.alpha) delaunay.Update() self.output_ = delaunay.GetOutput()
Example #2
Source File: vtk_helpers.py From NURBS-Python with MIT License | 4 votes |
def create_actor_delaunay(pts, color, **kwargs): """ Creates a VTK actor for rendering triangulated plots using Delaunay triangulation. Keyword Arguments: * ``d3d``: flag to choose between Delaunay2D (``False``) and Delaunay3D (``True``). *Default: False* :param pts: points :type pts: vtkFloatArray :param color: actor color :type color: list :return: a VTK actor :rtype: vtkActor """ # Keyword arguments array_name = kwargs.get('name', "") array_index = kwargs.get('index', 0) use_delaunay3d = kwargs.get("d3d", False) # Create points points = vtk.vtkPoints() points.SetData(pts) # Create a PolyData object and add points polydata = vtk.vtkPolyData() polydata.SetPoints(points) # Apply Delaunay triangulation on the poly data object triangulation = vtk.vtkDelaunay3D() if use_delaunay3d else vtk.vtkDelaunay2D() triangulation.SetInputData(polydata) # Map triangulated surface to the graphics primitives mapper = vtk.vtkDataSetMapper() mapper.SetInputConnection(triangulation.GetOutputPort()) mapper.SetArrayName(array_name) mapper.SetArrayId(array_index) # Create an actor and set its properties actor = vtk.vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(*color) # Return the actor return actor
Example #3
Source File: filters.py From pyvista with MIT License | 4 votes |
def delaunay_2d(poly_data, tol=1e-05, alpha=0.0, offset=1.0, bound=False, inplace=False, edge_source=None, progress_bar=False): """Apply a delaunay 2D filter along the best fitting plane. Parameters ---------- tol : float Specify a tolerance to control discarding of closely spaced points. This tolerance is specified as a fraction of the diagonal length of the bounding box of the points. alpha : float Specify alpha (or distance) value to control output of this filter. For a non-zero alpha value, only edges or triangles contained within a sphere centered at mesh vertices will be output. Otherwise, only triangles will be output. offset : float Specify a multiplier to control the size of the initial, bounding Delaunay triangulation. bound : bool Boolean controls whether bounding triangulation points (and associated triangles) are included in the output. (These are introduced as an initial triangulation to begin the triangulation process. This feature is nice for debugging output.) inplace : bool If True, overwrite this mesh with the triangulated mesh. edge_source : pyvista.PolyData, optional Specify the source object used to specify constrained edges and loops. (This is optional.) If set, and lines/polygons are defined, a constrained triangulation is created. The lines/polygons are assumed to reference points in the input point set (i.e. point ids are identical in the input and source). Note that this method does not connect the pipeline. See SetSourceConnection for connecting the pipeline. progress_bar : bool, optional Display a progress bar to indicate progress. """ alg = vtk.vtkDelaunay2D() alg.SetProjectionPlaneMode(vtk.VTK_BEST_FITTING_PLANE) alg.SetInputDataObject(poly_data) alg.SetTolerance(tol) alg.SetAlpha(alpha) alg.SetOffset(offset) alg.SetBoundingTriangulation(bound) if edge_source is not None: alg.SetSourceData(edge_source) _update_alg(alg, progress_bar, 'Computing 2D Triangulation') # Sometimes lines are given in the output. The `.triangulate()` filter cleans those mesh = _get_output(alg).triangulate() if inplace: poly_data.overwrite(mesh) else: return mesh
Example #4
Source File: plot_cosipy_fields_vtk.py From cosipy with GNU General Public License v3.0 | 4 votes |
def createDEM_v1(): ds = xr.open_dataset('../data/output/Peru_20160601-20180530_comp4.nc') points = vtk.vtkPoints() numPoints = ds.south_north.size*ds.west_east.size print('Write points \n') for i,j in product(ds.south_north.values,ds.west_east.values): points.InsertNextPoint(ds.lat.isel(south_north=i,west_east=j), ds.lon.isel(south_north=i,west_east=j), ds.HGT.isel(south_north=i,west_east=j).values/6370000.0) print('Create unstructured grid \n') polydata = vtk.vtkPolyData() polydata.SetPoints(points) delaunay = vtk.vtkDelaunay2D() delaunay.SetInputData(polydata) delaunay.Update() # subdivision = vtk.vtkButterflySubdivisionFilter() # subdivision.SetInputConnection(delaunay.GetOutputPort()) # subdivision.Update() #smoother = vtk.vtkWindowedSincPolyDataFilter() #smoother.SetInputConnection(delaunay.GetOutputPort()) #smoother.SetNumberOfIterations(5) #smoother.BoundarySmoothingOff() #smoother.FeatureEdgeSmoothingOff() #smoother.SetFeatureAngle(120.0) #smoother.SetPassBand(.001) #smoother.NonManifoldSmoothingOff() #smoother.NormalizeCoordinatesOff() #smoother.Update() appendFilter = vtk.vtkAppendFilter() appendFilter.AddInputData(delaunay.GetOutput()) appendFilter.Update() unstructuredGrid = vtk.vtkUnstructuredGrid() unstructuredGrid.ShallowCopy(appendFilter.GetOutput()) writer = vtk.vtkXMLUnstructuredGridWriter() writer.SetFileName('cosipy.vtu') writer.SetInputData(unstructuredGrid) writer.Write()
Example #5
Source File: visualization_3d.py From gempy with GNU Lesser General Public License v3.0 | 4 votes |
def set_topography(self): # Create points on an XY grid with random Z coordinate vertices = copy.copy(self.geo_model._grid.topography.values) points = vtk.vtkPoints() # for v in vertices: # v[-1] = v[-1] # points.InsertNextPoint(v) if self.ve !=1: vertices[:, 2]= vertices[:, 2]*self.ve points.SetData(numpy_to_vtk(vertices)) # Add the grid points to a polydata object polydata = vtk.vtkPolyData() polydata.SetPoints(points) # # glyphFilter = vtk.vtkVertexGlyphFilter() # glyphFilter.SetInputData(polydata) # glyphFilter.Update() # # # Create a mapper and actor # pointsMapper = vtk.vtkPolyDataMapper() # pointsMapper.SetInputConnection(glyphFilter.GetOutputPort()) # # pointsActor = vtk.vtkActor() # pointsActor.SetMapper(pointsMapper) # pointsActor.GetProperty().SetPointSize(3) # pointsActor.GetProperty().SetColor(colors.GetColor3d("Red")) # Triangulate the grid points delaunay = vtk.vtkDelaunay2D() delaunay.SetInputData(polydata) delaunay.Update() # Create a mapper and actor triangulatedMapper = vtk.vtkPolyDataMapper() triangulatedMapper.SetInputConnection(delaunay.GetOutputPort()) triangulatedActor = vtk.vtkActor() triangulatedActor.SetMapper(triangulatedMapper) self.topography_surface = triangulatedActor self._topography_polydata = polydata self._topography_delauny = delaunay self.ren_list[0].AddActor(triangulatedActor) self.ren_list[1].AddActor(triangulatedActor) self.ren_list[2].AddActor(triangulatedActor) self.ren_list[3].AddActor(triangulatedActor) try: if self.geo_model.solutions.geological_map is not None: self.set_geological_map() except AttributeError as ae: warnings.warn(str(ae))