diff --git a/pygem/params.py b/pygem/params.py index 2aee191..73fe642 100644 --- a/pygem/params.py +++ b/pygem/params.py @@ -353,9 +353,7 @@ def _set_box_dimensions(self, min_xyz, max_xyz): the bounding box in XYZ respectively """ dims = [max_xyz[i] - min_xyz[i] for i in range(3)] - self.lenght_box_x = dims[0] - self.lenght_box_y = dims[1] - self.lenght_box_z = dims[2] + self.lenght_box = np.asarray(dims) def _set_position_of_vertices(self): """ @@ -364,21 +362,18 @@ def _set_position_of_vertices(self): parallelepiped -- the second half of the box is created as a mirror reflection of the first four vertices. """ - origin_array = np.array(self.origin_box) - dim = [self.lenght_box_x, self.lenght_box_y, self.lenght_box_z] - self.position_vertex_0 = origin_array - self.position_vertex_1 = origin_array + np.array([dim[0], .0, .0]) - self.position_vertex_2 = origin_array + np.array([.0, dim[1], .0]) - self.position_vertex_3 = origin_array + np.array([.0, .0, dim[2]]) + self.position_vertex_0 = self.origin_box + self.position_vertex_1 = self.origin_box + np.array([self.lenght_box[0], .0, .0]) + self.position_vertex_2 = self.origin_box + np.array([.0, self.lenght_box[1], .0]) + self.position_vertex_3 = self.origin_box + np.array([.0, .0, self.lenght_box[2]]) def _set_mapping(self): """ This method sets mapping from physcial domain to the reference domain (``psi_mapping``) as well as inverse mapping (``inv_psi_mapping``). """ - dim = [self.lenght_box_x, self.lenght_box_y, self.lenght_box_z] - self.psi_mapping = np.diag([1. / dim[i] for i in range(3)]) - self.inv_psi_mapping = np.diag(dim) + self.psi_mapping = np.diag([1. / self.lenght_box[i] for i in range(3)]) + self.inv_psi_mapping = np.diag(self.lenght_box) def _set_transformation_params_to_zero(self): """ diff --git a/tests/test_ffdparams.py b/tests/test_ffdparams.py index 57adc1d..a7ab0bb 100644 --- a/tests/test_ffdparams.py +++ b/tests/test_ffdparams.py @@ -294,20 +294,26 @@ def test_write_parameters(self): self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) os.remove(outfilename) - def test_print_info(self): + def test_print(self): params = ffdp.FFDParameters(n_control_points=[3, 2, 2]) print(params) - def test_build_bounding_box(self): + def test_build_bounding_box_1(self): + origin = np.array([0., 0., 0.]) + tops = np.array([1., 1., 1.]) + cube = BRepPrimAPI_MakeBox(*tops).Shape() + params = ffdp.FFDParameters() + params.build_bounding_box(cube) + + np.testing.assert_array_almost_equal(params.lenght_box, tops, decimal=5) + + def test_build_bounding_box_2(self): origin = np.array([0., 0., 0.]) tops = np.array([1., 1., 1.]) cube = BRepPrimAPI_MakeBox(*tops).Shape() params = ffdp.FFDParameters() params.build_bounding_box(cube) - self.assertAlmostEqual(params.lenght_box_x, tops[0], places=5) - self.assertAlmostEqual(params.lenght_box_y, tops[1], places=5) - self.assertAlmostEqual(params.lenght_box_z, tops[2], places=5) np.testing.assert_almost_equal(params.position_vertex_0, origin, decimal=5) np.testing.assert_almost_equal(params.position_vertex_1, [1., 0., 0.], decimal=5) np.testing.assert_almost_equal(params.position_vertex_2, [0., 1., 0.], decimal=5) @@ -319,9 +325,7 @@ def test_set_box_dimension(self): params = ffdp.FFDParameters() params.origin_box = origin params._set_box_dimensions(origin, tops) - self.assertEqual(params.lenght_box_x, tops[0]) - self.assertEqual(params.lenght_box_y, tops[1]) - self.assertEqual(params.lenght_box_z, tops[2]) + np.testing.assert_array_almost_equal(params.lenght_box, tops) def test_set_position_of_vertices(self): vertex_0 = [0., 0., 0.]