def check_depth_peeling(number_of_peels=100, occlusion_ratio=0.0): """Check if depth peeling is available. Attempts to use depth peeling to see if it is available for the current environment. Returns ``True`` if depth peeling is available and has been successfully leveraged, otherwise ``False``. """ # Try Depth Peeling with a basic scene source = _vtk.vtkSphereSource() mapper = _vtk.vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) actor = _vtk.vtkActor() actor.SetMapper(mapper) # requires opacity < 1 actor.GetProperty().SetOpacity(0.5) renderer = _vtk.vtkRenderer() renderWindow = _vtk.vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetOffScreenRendering(True) renderWindow.SetAlphaBitPlanes(True) renderWindow.SetMultiSamples(0) renderer.AddActor(actor) renderer.SetUseDepthPeeling(True) renderer.SetMaximumNumberOfPeels(number_of_peels) renderer.SetOcclusionRatio(occlusion_ratio) renderWindow.Render() return renderer.GetLastRenderingUsedDepthPeeling() == 1
def Sphere(radius=0.5, center=(0, 0, 0), direction=(0, 0, 1), theta_resolution=30, phi_resolution=30, start_theta=0, end_theta=360, start_phi=0, end_phi=180): """Create a vtk Sphere. Parameters ---------- radius : float, optional Sphere radius center : np.ndarray or list, optional Center in [x, y, z] direction : list or tuple or np.ndarray Direction the top of the sphere points to in [x, y, z] theta_resolution: int , optional Set the number of points in the longitude direction (ranging from start_theta to end theta). phi_resolution : int, optional Set the number of points in the latitude direction (ranging from start_phi to end_phi). start_theta : float, optional Starting longitude angle. end_theta : float, optional Ending longitude angle. start_phi : float, optional Starting latitude angle. end_phi : float, optional Ending latitude angle. Returns ------- sphere : pyvista.PolyData Sphere mesh. """ sphere = _vtk.vtkSphereSource() sphere.SetRadius(radius) sphere.SetThetaResolution(theta_resolution) sphere.SetPhiResolution(phi_resolution) sphere.SetStartTheta(start_theta) sphere.SetEndTheta(end_theta) sphere.SetStartPhi(start_phi) sphere.SetEndPhi(end_phi) sphere.Update() surf = pyvista.PolyData(sphere.GetOutput()) surf.rotate_y(-90) translate(surf, center, direction) return surf
def Sphere(radius=0.5, center=(0, 0, 0), direction=(0, 0, 1), theta_resolution=30, phi_resolution=30, start_theta=0, end_theta=360, start_phi=0, end_phi=180): """Create a vtk Sphere. Parameters ---------- radius : float, optional Sphere radius. center : np.ndarray or list, optional Center in ``[x, y, z]``. direction : list or tuple or np.ndarray, optional Direction the top of the sphere points to in ``[x, y, z]``. theta_resolution : int , optional Set the number of points in the longitude direction (ranging from ``start_theta`` to ``end_theta``). phi_resolution : int, optional Set the number of points in the latitude direction (ranging from ``start_phi`` to ``end_phi``). start_theta : float, optional Starting longitude angle. end_theta : float, optional Ending longitude angle. start_phi : float, optional Starting latitude angle. end_phi : float, optional Ending latitude angle. Returns ------- pyvista.PolyData Sphere mesh. Examples -------- Create a sphere using default parameters. >>> import pyvista >>> sphere = pyvista.Sphere() >>> sphere.plot(show_edges=True) Create a quarter sphere by setting ``end_theta``. >>> sphere = pyvista.Sphere(end_theta=90) >>> out = sphere.plot(show_edges=True) """ sphere = _vtk.vtkSphereSource() sphere.SetRadius(radius) sphere.SetThetaResolution(theta_resolution) sphere.SetPhiResolution(phi_resolution) sphere.SetStartTheta(start_theta) sphere.SetEndTheta(end_theta) sphere.SetStartPhi(start_phi) sphere.SetEndPhi(end_phi) sphere.Update() surf = pyvista.wrap(sphere.GetOutput()) surf.rotate_y(-90) translate(surf, center, direction) return surf