@@ -138,15 +138,18 @@ def sample_size(self, value):
138138 if self ._knot_vector is None or len (self ._knot_vector ) == 0 :
139139 warn ("Cannot determine the delta value. Please set knot vector before setting the sample size." )
140140 return
141- # Set global variable
142- self ._sample_size = value
143-
144141 # To make it operate like linspace, we have to know the starting and ending points.
145142 start = self ._knot_vector [self ._degree ]
146143 stop = self ._knot_vector [- (self ._degree + 1 )]
147144
145+ # Clean up the curve points list, if necessary
146+ self ._reset_evalpts ()
147+
148148 # Set delta value
149- self .delta = (stop - start ) / float (value - 1 )
149+ self ._delta = (stop - start ) / float (value - 1 )
150+
151+ # Set sample size
152+ self ._sample_size = value
150153
151154 @property
152155 def delta (self ):
@@ -525,18 +528,22 @@ def sample_size(self, value):
525528 (self ._knot_vector_v is None or len (self ._knot_vector_v ) == 0 ):
526529 warn ("Cannot determine the delta value. Please set knot vectors before setting the sample size." )
527530 return
528- # Set global variable
529- self ._sample_size = value
530531
531532 # To make it operate like linspace, we have to know the starting and ending points.
532533 start_u = self ._knot_vector_u [self ._degree_u ]
533534 stop_u = self ._knot_vector_u [- (self ._degree_u + 1 )]
534535 start_v = self ._knot_vector_v [self ._degree_v ]
535536 stop_v = self ._knot_vector_v [- (self ._degree_v + 1 )]
536537
538+ # Clean up the surface points lists, if necessary
539+ self ._reset_evalpts ()
540+
537541 # Set delta values
538- self .delta_u = (stop_u - start_u ) / float (value - 1 )
539- self .delta_v = (stop_v - start_v ) / float (value - 1 )
542+ self ._delta_u = (stop_u - start_u ) / float (value - 1 )
543+ self ._delta_v = (stop_v - start_v ) / float (value - 1 )
544+
545+ # Set sample size
546+ self ._sample_size = value
540547
541548 @property
542549 def delta_u (self ):
@@ -613,12 +620,16 @@ def delta(self):
613620 @delta .setter
614621 def delta (self , value ):
615622 if isinstance (value , float ):
616- self .delta_u = value
617- self .delta_v = value
623+ if float (value ) <= 0 or float (value ) >= 1 :
624+ raise ValueError ("Surface evaluation delta should be between 0.0 and 1.0" )
625+ self ._delta_u = value
626+ self ._delta_v = value
618627 elif isinstance (value , (list , tuple )):
619628 if len (value ) == 2 :
620- self .delta_u = value [0 ]
621- self .delta_v = value [1 ]
629+ if float (value [0 ]) <= 0 or float (value [0 ]) >= 1 or float (value [1 ]) <= 0 or float (value [1 ]) >= 1 :
630+ raise ValueError ("Surface evaluation delta should be between 0.0 and 1.0" )
631+ self ._delta_u = value [0 ]
632+ self ._delta_v = value [1 ]
622633 else :
623634 raise ValueError ("Surface requires 2 delta values" )
624635 else :
0 commit comments