Skip to content

Commit 9d77f9e

Browse files
committed
fix: normalise vectors before plotting
1 parent ea1de24 commit 9d77f9e

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

LoopStructural/datatypes/_point.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,15 @@ def to_dict(self):
123123
def from_dict(self, d):
124124
return VectorPoints(d['locations'], d['vectors'], d['name'], d.get('properties', None))
125125

126-
def vtk(self, geom='arrow', scale=1.0, scale_function=None, tolerance=0.05):
126+
def vtk(self, geom='arrow', scale=1.0, scale_function=None, normalise=True, tolerance=0.05):
127127
import pyvista as pv
128128

129129
vectors = np.copy(self.vectors)
130+
if normalise:
131+
norm = np.linalg.norm(vectors, axis=1)
132+
vectors[norm > 0, :] /= norm[norm > 0][:, None]
130133
if scale_function is not None:
131-
vectors /= np.linalg.norm(vectors, axis=1)[:, None]
134+
# vectors /= np.linalg.norm(vectors, axis=1)[:, None]
132135
vectors *= scale_function(self.locations)[:, None]
133136
points = pv.PolyData(self.locations)
134137
points.point_data.set_vectors(vectors, 'vectors')

0 commit comments

Comments
 (0)