From 287656aa4e60efb7063cab8b48de7a0bf6d339e4 Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 14:00:19 +0800 Subject: [PATCH 01/16] Add 2 new functions(get camera view/proj matrix) to Camera Class --- python/taichi/ui/camera.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/python/taichi/ui/camera.py b/python/taichi/ui/camera.py index d0f23f72d3631..5ca838681f3dc 100644 --- a/python/taichi/ui/camera.py +++ b/python/taichi/ui/camera.py @@ -174,6 +174,28 @@ def z_far(self, z_far): >>> camera.left(1000.0) """ self.ptr.z_far(z_far) + + def get_view_mat(self): + """Get the view matrix of the camera. + + Example:: + + >>> np.asarray(camera.view()) + """ + return self.ptr.get_view_mat() + + def get_proj_mat(self, aspect): + """Get the projection matrix of the camera. + + Args: + aspect (:mod:`taichi.types.primitive_types`): \ + aspect ratio of the camera + + Example:: + + >>> np.asarray(camera.proj(1080/720)) + """ + return self.ptr.get_proj_mat(aspect) def track_user_inputs(self, window, From 3beaa94a469ab76d51da89be6fb41fabc9580b36 Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 14:01:45 +0800 Subject: [PATCH 02/16] expose 2 new functions(get camera view/proj matrix) to PyCamera --- taichi/python/export_ggui.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index e11fd195bce8e..01a333f10a7fe 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -1,6 +1,7 @@ #include #include "pybind11/pybind11.h" +#include #include "pybind11/stl.h" #include "taichi/common/interface.h" @@ -34,6 +35,26 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { return pybind11::make_tuple(v.x, v.y, v.z); } +struct custom_deleter { + glm::mat4 operator()(glm::mat4* m) { + return *m; + } +}; + +// convert 2d-array to numpy array using pybind +// ref:https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions +// ref:https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 +py::array_t mat4_to_nparray(glm::mat4 mat) { + // must explicitly pass args using py::detail::any_container + // ref:https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info + return py::array_t ( + py::detail::any_container({ 4, 4 }), // shape (rows, cols) + py::detail::any_container({ sizeof(float) * 4, sizeof(float) }), // strides in bytes + glm::value_ptr(mat), // buffer pointer + nullptr + ); +} + struct PyGui { GuiBase *gui; // not owned void begin(std::string name, float x, float y, float width, float height) { @@ -99,6 +120,12 @@ struct PyCamera { void z_far(float z_far_) { camera.z_far = z_far_; } + py::array_t get_view_mat() { + return mat4_to_nparray(camera.get_view_matrix()); + } + py::array_t get_proj_mat(float aspect_ratio) { + return mat4_to_nparray(camera.get_projection_matrix(aspect_ratio)); + } }; struct PyScene { @@ -368,7 +395,9 @@ void export_ggui(py::module &m) { .def("top", &PyCamera::top) .def("bottom", &PyCamera::bottom) .def("z_near", &PyCamera::z_near) - .def("z_far", &PyCamera::z_far); + .def("z_far", &PyCamera::z_far) + .def("get_view_mat", &PyCamera::get_view_mat) + .def("get_proj_mat", &PyCamera::get_proj_mat); py::class_(m, "Event") .def_property("key", &Event::get_key, &Event::set_key); From f930551e0406f0ecb40664a2b6566843f55605d0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 06:11:08 +0000 Subject: [PATCH 03/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- python/taichi/ui/camera.py | 2 +- taichi/python/export_ggui.cpp | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/python/taichi/ui/camera.py b/python/taichi/ui/camera.py index 5ca838681f3dc..6f39e2d61d9a8 100644 --- a/python/taichi/ui/camera.py +++ b/python/taichi/ui/camera.py @@ -174,7 +174,7 @@ def z_far(self, z_far): >>> camera.left(1000.0) """ self.ptr.z_far(z_far) - + def get_view_mat(self): """Get the view matrix of the camera. diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 01a333f10a7fe..c33652877febd 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -36,9 +36,9 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { } struct custom_deleter { - glm::mat4 operator()(glm::mat4* m) { - return *m; - } + glm::mat4 operator()(glm::mat4 *m) { + return *m; + } }; // convert 2d-array to numpy array using pybind @@ -47,12 +47,12 @@ struct custom_deleter { py::array_t mat4_to_nparray(glm::mat4 mat) { // must explicitly pass args using py::detail::any_container // ref:https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info - return py::array_t ( - py::detail::any_container({ 4, 4 }), // shape (rows, cols) - py::detail::any_container({ sizeof(float) * 4, sizeof(float) }), // strides in bytes - glm::value_ptr(mat), // buffer pointer - nullptr - ); + return py::array_t( + py::detail::any_container({4, 4}), // shape (rows, cols) + py::detail::any_container( + {sizeof(float) * 4, sizeof(float)}), // strides in bytes + glm::value_ptr(mat), // buffer pointer + nullptr); } struct PyGui { From 06bbc8b73194e430c7d25ec502a9d52aed43139e Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 14:43:14 +0800 Subject: [PATCH 04/16] [gui] Add 2 new functions(get camera view/projection matrix) to Camera Class --- python/taichi/ui/camera.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/python/taichi/ui/camera.py b/python/taichi/ui/camera.py index 5ca838681f3dc..68f4438fe225f 100644 --- a/python/taichi/ui/camera.py +++ b/python/taichi/ui/camera.py @@ -175,17 +175,17 @@ def z_far(self, z_far): """ self.ptr.z_far(z_far) - def get_view_mat(self): - """Get the view matrix of the camera. + def get_view_matrix(self): + """Get the view matrix(in row major) of the camera. Example:: - >>> np.asarray(camera.view()) + >>> camera.get_view_matrix() """ - return self.ptr.get_view_mat() + return self.ptr.get_view_matrix() - def get_proj_mat(self, aspect): - """Get the projection matrix of the camera. + def get_projection_matrix(self, aspect): + """Get the projection matrix(in row major) of the camera. Args: aspect (:mod:`taichi.types.primitive_types`): \ @@ -193,9 +193,9 @@ def get_proj_mat(self, aspect): Example:: - >>> np.asarray(camera.proj(1080/720)) + >>> camera.get_projection_matrix(1080/720) """ - return self.ptr.get_proj_mat(aspect) + return self.ptr.get_projection_matrix(aspect) def track_user_inputs(self, window, From 7515d70567673e6b7881a8021ca55faeb61ed74f Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 14:43:55 +0800 Subject: [PATCH 05/16] [gui] expose 2 new functions(get camera view/projection matrix) of PyCamera Class --- taichi/python/export_ggui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 01a333f10a7fe..c61ad91358c7c 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -120,10 +120,10 @@ struct PyCamera { void z_far(float z_far_) { camera.z_far = z_far_; } - py::array_t get_view_mat() { + py::array_t get_view_matrix() { return mat4_to_nparray(camera.get_view_matrix()); } - py::array_t get_proj_mat(float aspect_ratio) { + py::array_t get_projection_matrix(float aspect_ratio) { return mat4_to_nparray(camera.get_projection_matrix(aspect_ratio)); } }; @@ -396,8 +396,8 @@ void export_ggui(py::module &m) { .def("bottom", &PyCamera::bottom) .def("z_near", &PyCamera::z_near) .def("z_far", &PyCamera::z_far) - .def("get_view_mat", &PyCamera::get_view_mat) - .def("get_proj_mat", &PyCamera::get_proj_mat); + .def("get_view_matrix", &PyCamera::get_view_matrix) + .def("get_projection_matrix", &PyCamera::get_projection_matrix); py::class_(m, "Event") .def_property("key", &Event::get_key, &Event::set_key); From 0fef90fce55d36973aed6a6e3d9aba9d36f69c96 Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 14:53:18 +0800 Subject: [PATCH 06/16] add a test for getting the view/projection matrix of camera --- tests/python/test_ggui.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/python/test_ggui.py b/tests/python/test_ggui.py index a2603d0162658..89259520d1bce 100644 --- a/tests/python/test_ggui.py +++ b/tests/python/test_ggui.py @@ -296,3 +296,20 @@ def render(): @test_utils.test(arch=supported_archs) def test_exit_without_showing(): window = ti.ui.Window("Taichi", (256, 256), show_window=False) + +@test_utils.test(arch=supported_archs) +def test_get_camera_view_and_projection_matrix(): + scene = ti.ui.Scene() + camera = ti.ui.make_camera() + camera.position(0, 0, 3) + camera.lookat(0, 0 ,0) + + scene.set_camera(camera) + + view_matrix = camera.get_view_matrix() + projection_matrix = camera.get_projection_matrix(1080/720) + + for i in range(4): + assert(abs(view_matrix[i, j] - 1) <= 1e-5) + assert(abs(view_matrix[3, 2] + 3) <= 1e-5) + From ea9a45b1d09fea2332c42899ef92de0886f29340 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 06:57:36 +0000 Subject: [PATCH 07/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- python/taichi/ui/camera.py | 2 +- tests/python/test_ggui.py | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/python/taichi/ui/camera.py b/python/taichi/ui/camera.py index 68f4438fe225f..5f883ae211b21 100644 --- a/python/taichi/ui/camera.py +++ b/python/taichi/ui/camera.py @@ -174,7 +174,7 @@ def z_far(self, z_far): >>> camera.left(1000.0) """ self.ptr.z_far(z_far) - + def get_view_matrix(self): """Get the view matrix(in row major) of the camera. diff --git a/tests/python/test_ggui.py b/tests/python/test_ggui.py index 89259520d1bce..bfa054b327a07 100644 --- a/tests/python/test_ggui.py +++ b/tests/python/test_ggui.py @@ -297,19 +297,19 @@ def render(): def test_exit_without_showing(): window = ti.ui.Window("Taichi", (256, 256), show_window=False) + @test_utils.test(arch=supported_archs) def test_get_camera_view_and_projection_matrix(): scene = ti.ui.Scene() camera = ti.ui.make_camera() camera.position(0, 0, 3) - camera.lookat(0, 0 ,0) + camera.lookat(0, 0, 0) scene.set_camera(camera) - + view_matrix = camera.get_view_matrix() - projection_matrix = camera.get_projection_matrix(1080/720) + projection_matrix = camera.get_projection_matrix(1080 / 720) for i in range(4): - assert(abs(view_matrix[i, j] - 1) <= 1e-5) - assert(abs(view_matrix[3, 2] + 3) <= 1e-5) - + assert (abs(view_matrix[i, j] - 1) <= 1e-5) + assert (abs(view_matrix[3, 2] + 3) <= 1e-5) From d1d866ac6a53cd82d409e9665c68f1cd6f42c79f Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 15:02:50 +0800 Subject: [PATCH 08/16] expose 2 new functions(get camera view/proj matrix) to PyCamera --- taichi/python/export_ggui.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 86b86c3f12dd8..aae061a8baa68 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -35,12 +35,6 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { return pybind11::make_tuple(v.x, v.y, v.z); } -struct custom_deleter { - glm::mat4 operator()(glm::mat4 *m) { - return *m; - } -}; - // convert 2d-array to numpy array using pybind // ref:https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions // ref:https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 From b28bb813d9ac29b71276d68c349ffc833ba189a1 Mon Sep 17 00:00:00 2001 From: Mocki <34432001+Morcki@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:11:41 +0800 Subject: [PATCH 09/16] Update taichi/python/export_ggui.cpp Co-authored-by: YuZhang --- taichi/python/export_ggui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index aae061a8baa68..19d39d4842e63 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -36,7 +36,7 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { } // convert 2d-array to numpy array using pybind -// ref:https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions +// https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions // ref:https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { // must explicitly pass args using py::detail::any_container From c2eee888747ade2b8605b3463c87c58ea8e6498a Mon Sep 17 00:00:00 2001 From: Mocki <34432001+Morcki@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:11:52 +0800 Subject: [PATCH 10/16] Update taichi/python/export_ggui.cpp Co-authored-by: YuZhang --- taichi/python/export_ggui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 19d39d4842e63..5182bda75edaa 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -37,7 +37,7 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { // convert 2d-array to numpy array using pybind // https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions -// ref:https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 +// https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { // must explicitly pass args using py::detail::any_container // ref:https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info From 74230fb2e4aff878ac202642684ddb8d04764ef6 Mon Sep 17 00:00:00 2001 From: Mocki <34432001+Morcki@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:11:59 +0800 Subject: [PATCH 11/16] Update taichi/python/export_ggui.cpp Co-authored-by: YuZhang --- taichi/python/export_ggui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 5182bda75edaa..cad9ff7f0dc4f 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -39,7 +39,7 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { // https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions // https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { - // must explicitly pass args using py::detail::any_container +// Here we must explicitly pass args using py::detail::any_container. Refs: // ref:https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info return py::array_t( py::detail::any_container({4, 4}), // shape (rows, cols) From a2965ec9bc5b8c725a35baa5bda6615ea657f0d6 Mon Sep 17 00:00:00 2001 From: Mocki <34432001+Morcki@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:12:07 +0800 Subject: [PATCH 12/16] Update taichi/python/export_ggui.cpp Co-authored-by: YuZhang --- taichi/python/export_ggui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index cad9ff7f0dc4f..3eb8becde20c8 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -40,7 +40,7 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { // https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { // Here we must explicitly pass args using py::detail::any_container. Refs: - // ref:https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info +// https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info return py::array_t( py::detail::any_container({4, 4}), // shape (rows, cols) py::detail::any_container( From eea04db61aeb4a28d2e4d85ef4706128ebc32c4a Mon Sep 17 00:00:00 2001 From: Mocki <34432001+Morcki@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:14:00 +0800 Subject: [PATCH 13/16] Update taichi/python/export_ggui.cpp Co-authored-by: YuZhang --- taichi/python/export_ggui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index 3eb8becde20c8..f2c0add334b68 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -35,7 +35,7 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { return pybind11::make_tuple(v.x, v.y, v.z); } -// convert 2d-array to numpy array using pybind +// Here we convert the 2d-array to numpy array using pybind. Refs: // https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions // https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { From 702eddb086a2a75564f2d2d254ef02115844b335 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 07:15:01 +0000 Subject: [PATCH 14/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- taichi/python/export_ggui.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/taichi/python/export_ggui.cpp b/taichi/python/export_ggui.cpp index f2c0add334b68..e66a7595ac5a3 100644 --- a/taichi/python/export_ggui.cpp +++ b/taichi/python/export_ggui.cpp @@ -39,8 +39,9 @@ pybind11::tuple vec3_to_tuple(glm::vec3 v) { // https://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html?highlight=array_t#vectorizing-functions // https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11 py::array_t mat4_to_nparray(glm::mat4 mat) { -// Here we must explicitly pass args using py::detail::any_container. Refs: -// https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info + // Here we must explicitly pass args using py::detail::any_container. + // Refs: + // https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info return py::array_t( py::detail::any_container({4, 4}), // shape (rows, cols) py::detail::any_container( From ad3dc6f5f6156f46a8390902f7a7ece6fa1e7564 Mon Sep 17 00:00:00 2001 From: Morcki Date: Wed, 6 Jul 2022 15:34:51 +0800 Subject: [PATCH 15/16] add test for get the view/projection matrix of camera --- tests/python/test_ggui.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/python/test_ggui.py b/tests/python/test_ggui.py index bfa054b327a07..3d658974b0508 100644 --- a/tests/python/test_ggui.py +++ b/tests/python/test_ggui.py @@ -311,5 +311,12 @@ def test_get_camera_view_and_projection_matrix(): projection_matrix = camera.get_projection_matrix(1080 / 720) for i in range(4): - assert (abs(view_matrix[i, j] - 1) <= 1e-5) + assert (abs(view_matrix[i, i] - 1) <= 1e-5) assert (abs(view_matrix[3, 2] + 3) <= 1e-5) + + assert (abs(projection_matrix[0, 0] - 1.6094756) <= 1e-5) + assert (abs(projection_matrix[1, 1] - 2.4142134) <= 1e-5) + assert (abs(projection_matrix[2, 2] - 1.0001000e-4) <= 1e-5) + assert (abs(projection_matrix[2, 3] + 1.0000000) <= 1e-5) + assert (abs(projection_matrix[3, 2] - 1.0001000e-1) <= 1e-5) + \ No newline at end of file From b22640bae16e2f7c7ed5cfb1fcd16a4a68ebbf3f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 07:37:13 +0000 Subject: [PATCH 16/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/python/test_ggui.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/python/test_ggui.py b/tests/python/test_ggui.py index 3d658974b0508..eea020a19ca6c 100644 --- a/tests/python/test_ggui.py +++ b/tests/python/test_ggui.py @@ -319,4 +319,3 @@ def test_get_camera_view_and_projection_matrix(): assert (abs(projection_matrix[2, 2] - 1.0001000e-4) <= 1e-5) assert (abs(projection_matrix[2, 3] + 1.0000000) <= 1e-5) assert (abs(projection_matrix[3, 2] - 1.0001000e-1) <= 1e-5) - \ No newline at end of file