You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hash_value is currently calculated individually for each parametric_shape by specifying each parameter individually. This needs to be changed so that the get_hash method calculates the hash_value by automatically detecting the class parameters
The text was updated successfully, but these errors were encountered:
UPDATE: hash_value can be calculated using self._dict_.values(). Note - _solid and _hash_value must not be calculated as part of the hash to prevent constant reconstruction.
This works well for parametric_shapes but there is a BUG when this propagates to parametric_components.
EXPECTED:
On first call of shape.solid, create_solid() should be called.
On second call of shape.solid, create_solid() should NOT be called IF no parameters have changed.
ACTUAL:
On first call of shape.solid, create_solid() is called. (EXPECTED)
On second call of shape.solid, create_solid() called again, despite no parameters being changed. (UNEXPECTED)
On third call of shape.solid, create_solid() is not called. (EXPECTED)
REASON:
shape.points = None upon class initialization/construction
First call of shape.solid doesn't seem to update shape.points correctly for the hash calculation
Therefore, second call of shape.solid compares new calculated points to None.
I.e. the point at which points is calculated in the solid construction chain and the point where the hash is calculated causes this issue.
FIX: Move hash_value calculation to AFTER solid construction. This allows shape.points to be populated correctly before the hash_value for the new solid is calculated.
hash_value is currently calculated individually for each parametric_shape by specifying each parameter individually. This needs to be changed so that the get_hash method calculates the hash_value by automatically detecting the class parameters
The text was updated successfully, but these errors were encountered: