Skip to content

Commit a444f6f

Browse files
authored
Merge pull request #145 from ndem0/remove_utils
Remove utils module
2 parents 0602482 + 81d4332 commit a444f6f

11 files changed

+86
-328
lines changed

docs/source/_summaries/pygem.params.ffdparams.FFDParameters.save.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pygem.params.ffdparams.FFDParameters.save_points
2+
================================================
3+
4+
.. currentmodule:: pygem.params.ffdparams
5+
6+
.. automethod:: FFDParameters.save_points
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pygem.params.rbfparams.RBFParameters.plot_points
2+
================================================
3+
4+
.. currentmodule:: pygem.params.rbfparams
5+
6+
.. automethod:: RBFParameters.plot_points

docs/source/_summaries/pygem.params.rbfparams.RBFParameters.save.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pygem.params.rbfparams.RBFParameters.save_points
2+
================================================
3+
4+
.. currentmodule:: pygem.params.rbfparams
5+
6+
.. automethod:: RBFParameters.save_points

docs/source/ffdparams.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ FFDParameters
1515
FFDParameters.position_vertices
1616
FFDParameters.read_parameters
1717
FFDParameters.write_parameters
18-
FFDParameters.save
18+
FFDParameters.save_points
1919
FFDParameters.build_bounding_box
2020
FFDParameters.reset_deformation
2121

docs/source/rbfparams.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ RBFParameters
1212
RBFParameters.n_control_points
1313
RBFParameters.read_parameters
1414
RBFParameters.write_parameters
15-
RBFParameters.save
15+
RBFParameters.save_points
16+
RBFParameters.plot_points
1617

1718
.. autoclass:: RBFParameters
1819
:members:

pygem/params/ffdparams.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def __str__(self):
334334
string += '\nposition_vertices = {}\n'.format(self.position_vertices)
335335
return string
336336

337-
def save(self, filename, write_deformed=True):
337+
def save_points(self, filename, write_deformed=True):
338338
"""
339339
Method that writes a vtk file containing the FFD lattice. This method
340340
allows to visualize where the FFD control points are located before the
@@ -354,34 +354,38 @@ def save(self, filename, write_deformed=True):
354354
>>> params.read_parameters(
355355
>>> filename='tests/test_datasets/parameters_test_ffd_sphere.prm')
356356
>>> params.save('tests/test_datasets/box_test_sphere.vtk')
357+
358+
.. note::
359+
In order to visualize the points in Paraview, please select the
360+
**Point Gaussian** representation.
361+
357362
"""
358363
x = np.linspace(0, self.lenght_box[0], self.n_control_points[0])
359364
y = np.linspace(0, self.lenght_box[1], self.n_control_points[1])
360365
z = np.linspace(0, self.lenght_box[2], self.n_control_points[2])
361366

362-
lattice_y_coords, lattice_x_coords, lattice_z_coords = np.meshgrid(
363-
y, x, z)
367+
lattice_y_coords, lattice_x_coords, lattice_z_coords = np.meshgrid(y, x,
368+
z)
364369

365370
if write_deformed:
366371
box_points = np.array([
367-
lattice_x_coords.ravel() +
368-
self.array_mu_x.ravel() * self.lenght_box[0],
369-
lattice_y_coords.ravel() +
372+
lattice_x_coords.ravel() + self.array_mu_x.ravel() *
373+
self.lenght_box[0], lattice_y_coords.ravel() +
370374
self.array_mu_y.ravel() * self.lenght_box[1],
371-
lattice_z_coords.ravel() +
372-
self.array_mu_z.ravel() * self.lenght_box[2]
375+
lattice_z_coords.ravel() + self.array_mu_z.ravel() *
376+
self.lenght_box[2]
373377
])
374378
else:
375379
box_points = np.array([
376-
lattice_x_coords.ravel(),
377-
lattice_y_coords.ravel(),
380+
lattice_x_coords.ravel(), lattice_y_coords.ravel(),
378381
lattice_z_coords.ravel()
379382
])
380383

381384
n_rows = box_points.shape[1]
382385

383-
box_points = np.dot(self.rotation_matrix, box_points) + np.transpose(
384-
np.tile(self.origin_box, (n_rows, 1)))
386+
box_points = np.dot(
387+
self.rotation_matrix,
388+
box_points) + np.transpose(np.tile(self.origin_box, (n_rows, 1)))
385389

386390
points = vtk.vtkPoints()
387391

pygem/params/rbfparams.py

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import os
1010
import numpy as np
1111
import vtk
12+
import matplotlib.pyplot as plt
1213

1314

1415
class RBFParameters(object):
@@ -193,7 +194,7 @@ def __str__(self):
193194
string += '{}\n'.format(self.deformed_control_points)
194195
return string
195196

196-
def save(self, filename, write_deformed=True):
197+
def save_points(self, filename, write_deformed=True):
197198
"""
198199
Method that writes a vtk file containing the control points. This method
199200
allows to visualize where the RBF control points are located before the
@@ -212,7 +213,12 @@ def save(self, filename, write_deformed=True):
212213
>>> params = RBFParameters()
213214
>>> params.read_parameters(
214215
>>> filename='tests/test_datasets/parameters_rbf_cube.prm')
215-
>>> params.save('tests/test_datasets/box_cube.vtk')
216+
>>> params.save_points('tests/test_datasets/box_cube.vtk')
217+
218+
.. note::
219+
In order to visualize the points in Paraview, please select the
220+
**Point Gaussian** representation.
221+
216222
"""
217223
box_points = self.deformed_control_points if write_deformed else self.original_control_points
218224
points = vtk.vtkPoints()
@@ -227,3 +233,44 @@ def save(self, filename, write_deformed=True):
227233
writer.SetFileName(filename)
228234
writer.SetInputData(data)
229235
writer.Write()
236+
237+
238+
def plot_points(self, filename=None):
239+
"""
240+
Method to plot the control points. It is possible to save the resulting
241+
figure.
242+
243+
:param str filename: if None the figure is shown, otherwise it is saved
244+
on the specified `filename`. Default is None.
245+
"""
246+
fig = plt.figure(1)
247+
axes = fig.add_subplot(111, projection='3d')
248+
orig = axes.scatter(
249+
self.original_control_points[:, 0],
250+
self.original_control_points[:, 1],
251+
self.original_control_points[:, 2],
252+
c='blue',
253+
marker='o')
254+
defor = axes.scatter(
255+
self.deformed_control_points[:, 0],
256+
self.deformed_control_points[:, 1],
257+
self.deformed_control_points[:, 2],
258+
c='red',
259+
marker='x')
260+
261+
axes.set_xlabel('X axis')
262+
axes.set_ylabel('Y axis')
263+
axes.set_zlabel('Z axis')
264+
265+
plt.legend(
266+
(orig, defor), ('Original', 'Deformed'),
267+
scatterpoints=1,
268+
loc='lower left',
269+
ncol=2,
270+
fontsize=10)
271+
272+
# Show the plot to the screen
273+
if filename is None:
274+
plt.show()
275+
else:
276+
fig.savefig(filename)

pygem/utils.py

Lines changed: 0 additions & 205 deletions
This file was deleted.

0 commit comments

Comments
 (0)