Skip to content

Commit dc0f518

Browse files
committed
Removed an additional eval operation from delta and sample_size setters
1 parent 0a92974 commit dc0f518

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

geomdl/Abstract.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)