@@ -710,14 +710,15 @@ def _add_nurbs_curve(self, curve: NURBSCurveTuple, color=(1.0, 1.0, 1.0, 1.0),*a
710710 return tuple (self .add (to_homogeneous_1d (bezier .control_points , bezier .weights ), rational = True , color = color ,* args ,** kwargs ) for bezier in beziers )
711711 def add_nurbs_curve (self , curve : NURBSCurveTuple , color = (1.0 , 1.0 , 1.0 , 1.0 ),* args ,** kwargs ):
712712 return self ._add_nurbs_curve (curve , color , * args , ** kwargs )
713- def add_nurbs_surface (self , surface :NURBSSurfaceTuple , color = (1.0 , 1.0 , 1.0 , 1.0 ),surface_color = (0.5 , 0.5 , 0.9 , 0.05 ),u_count = 1 ,v_count = 1 ,* args ,** kwargs ):
713+ def add_nurbs_surface (self , surface :NURBSSurfaceTuple , color = (1.0 , 1.0 , 1.0 , 1.0 ),surface_color = (0.5 , 0.5 , 0.9 , 0.05 ),u_count = 1 ,v_count = 1 ,show_edges : bool = True , show_isocurves : bool = True , * args ,** kwargs ):
714714 shade = kwargs .pop ("shade" , True )
715715 surface_color = surface_color
716716
717717 surface_tol = kwargs .pop ("surface_tol" , 0.01 )
718+ meshes = []
718719 if shade :
719720
720- self ._add_surface_mesh (surface , color = surface_color , tol = surface_tol )
721+ meshes . append ( self ._add_surface_mesh (surface , color = surface_color , tol = surface_tol ) )
721722 (u0 ,u1 ),(v0 ,v1 ) = surface .interval ()
722723 umid ,vmid = (u1 - u0 )* 0.5 + u0 , (v1 - v0 )* 0.5 + v0
723724 us = np .linspace (u0 ,u1 ,u_count + 2 )[1 :][:- 1 ]
@@ -727,13 +728,16 @@ def add_nurbs_surface(self, surface:NURBSSurfaceTuple, color=(1.0, 1.0, 1.0, 1.0
727728 color [2 ]* 0.5 ,
728729 color [3 ])
729730 isolines = []
730-
731- for crv in [extract_isocurve (surface , u ,'u' ) for u in us ]+ [extract_isocurve (surface , v ,'v' ) for v in vs ]:
732- isolines .append (self ._add_nurbs_curve (crv ,iso_color ,* args ,** kwargs ))
731+ if show_isocurves :
732+ for crv in [extract_isocurve (surface , u ,'u' ) for u in us ]+ [extract_isocurve (surface , v ,'v' ) for v in vs ]:
733+ isolines .append (self ._add_nurbs_curve (crv ,iso_color ,* args ,** kwargs ))
733734 bnds = []
734- for bnd in extract_surface_boundaries (surface ):
735- bnds .append (self ._add_nurbs_curve (bnd ,color ,* args ,** kwargs ))
736- return tuple (bnds )+ tuple (isolines )
735+ if show_edges :
736+ for bnd in extract_surface_boundaries (surface ):
737+
738+ bnds .append (self ._add_nurbs_curve (bnd ,color ,* args ,** kwargs ))
739+ return tuple (meshes )+ tuple (bnds )+ tuple (isolines )
740+
737741
738742 def _upload_matrices (self , P_row : np .ndarray , V_row : np .ndarray , M_row : np .ndarray ):
739743 """
0 commit comments