def plotBsplineSurface(self, pts, corsequences, lsagsequences=[], rsagsequences=[], degree=3, visualization_type=-1, side=2): # side = 0 (Left) | side = 1 (Right) if side == 0: lsurface = self.createBsplineSurface(pts=pts, corsequences=corsequences, sagsequences=lsagsequences) # Set visualization component if visualization_type == 0: lsurface.delta = 0.01 vis_comp = VisMPL.VisSurfScatter() elif visualization_type == 1: vis_comp = VisMPL.VisSurface() elif visualization_type == 2: vis_comp = VisMPL.VisSurfWireframe() else: vis_comp = VisMPL.VisSurfTriangle() lsurface.vis = vis_comp # Render the surface lsurface.render() else: rsurface = self.createBsplineSurface(pts=pts, corsequences=corsequences, sagsequences=rsagsequences) # Set visualization component if visualization_type == 0: rsurface.delta = 0.01 vis_comp = VisMPL.VisSurfScatter() elif visualization_type == 1: vis_comp = VisMPL.VisSurface() elif visualization_type == 2: vis_comp = VisMPL.VisSurfWireframe() else: vis_comp = VisMPL.VisSurfTriangle() rsurface.vis = vis_comp # Render the surface rsurface.render()
def plotNURBSSurfaces(self, left_pts, right_pts, corsequences, lsagsequences, rsagsequences, degree=3, visualization_type=-1): left_surface = self.createNURBSSurface(pts=left_pts, corsequences=corsequences, sagsequences=lsagsequences) right_surface = self.createNURBSSurface(pts=right_pts, corsequences=corsequences, sagsequences=rsagsequences) # Create a MultiSurface surfaces = Multi.MultiSurface() surfaces.add(left_surface) surfaces.add(right_surface) # Set visualization component if visualization_type == 0: surfaces.delta = 0.01 vis_comp = VisMPL.VisSurfScatter() elif visualization_type == 1: vis_comp = VisMPL.VisSurface() elif visualization_type == 2: vis_comp = VisMPL.VisSurfWireframe() else: vis_comp = VisMPL.VisSurfTriangle() surfaces.vis = vis_comp # Render the surface surfaces.render()
def test_surf_multi_fig_nowindow(bspline_surface): conf = VisMPL.VisConfig() vis = VisMPL.VisSurfScatter(config=conf) fname = conf.figure_image_filename multi = operations.decompose_surface(bspline_surface) multi.vis = vis multi.render(plot=False) assert os.path.isfile(fname) assert os.path.getsize(fname) > 0 # Clean up temporary file if exists if os.path.isfile(conf.figure_image_filename): os.remove(conf.figure_image_filename)
# Set evaluation delta surf.delta = 0.025 # Set up surface surf.read_ctrlpts_from_txt("ex_surface02.cpt") surf.degree_u = 3 surf.degree_v = 3 surf.knotvector_u = utilities.generate_knot_vector(surf.degree_u, 6) surf.knotvector_v = utilities.generate_knot_vector(surf.degree_v, 6) # Evaluate surface surf.evaluate() # Draw the control point grid and the evaluated surface if render_surf: vis_comp = VisMPL.VisSurfScatter() surf.vis = vis_comp surf.render() # Save control points and evaluated curve points surf.save_surfpts_to_csv("surfpts02_orig.csv", mode='linear') surf.save_ctrlpts_to_csv("ctrlpts02_orig.csv", mode='wireframe') # Evaluate 1st order surface derivative at the given u and v u = 0.2 v = 0.9 surftan = surf.tangent(u, v) print("* Surface point at u = %.2f and v = %.2f is (%.2f, %.2f, %.2f)" % (u, v, surftan[0][0], surftan[0][1], surftan[0][2])) print("* First derivative w.r.t. u is (%.2f, %.2f, %.2f)" % (surftan[1][0], surftan[1][1], surftan[1][2]))
def plotBsplineSurfaces(self, left_pts, right_pts, corsequences, lsagsequences, rsagsequences, degree=3, visualization_type=-1): """ Create B-spline surface Parameters ---------- left_pts: list List of tuples with 3D points that represents the left diaphragmatic surface right_pts: list List of tuples with 3D points that represents the right diaphragmatic surface corsequences: list List of int with the coronal sequences available lsagsequences: list List of int with the sagittal sequences available from the left lung rsagsequences: list List of int with the sagittal sequences available from the right lung degree: int B-spline surface's Degree (Default = 2) visualization_type: int -1: (Default) Wireframe plot for the control points and triangulated plot for the surface points 0: Wireframe plot for the control points and scatter plot for the surface points 1: Triangular mesh plot for the surface and wireframe plot for the control points grid 2: Scatter plot for the control points and wireframe for the surface points """ left_surface = self.createBsplineSurface(pts=left_pts, corsequences=corsequences, sagsequences=lsagsequences) right_surface = self.createBsplineSurface(pts=right_pts, corsequences=corsequences, sagsequences=rsagsequences) # Create a MultiSurface surfaces = Multi.MultiSurface() surfaces.add(left_surface) surfaces.add(right_surface) # Set visualization component if visualization_type == 0: surfaces.delta = 0.01 vis_comp = VisMPL.VisSurfScatter() elif visualization_type == 1: vis_comp = VisMPL.VisSurface() elif visualization_type == 2: vis_comp = VisMPL.VisSurfWireframe() else: vis_comp = VisMPL.VisSurfTriangle() surfaces.vis = vis_comp # Render the surface surfaces.render()