Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visualization refactor: Open3DViewer and rendering::Scene #2125

Merged
merged 16 commits into from
Aug 3, 2020

Conversation

prewettg
Copy link
Contributor

@prewettg prewettg commented Jul 31, 2020

This change is Reviewable

prewettg and others added 9 commits June 25, 2020 00:43
* Refactor: added Open3DScene, refactored SceneWidget and GuiVisualizer to use it

* Removed now-unnecessary visualization:: qualification in SceneWidget

* Fixed model rotation not working

* Remove unused variable that GCC complains about

* Fixed include path

* Fixed another include path

* Include path fix
* Updated Info.plist file for app to claim it edits and is the default type for the file associations. Also adds .pcd as a supported file type. (#2001)

* fix obb rotate and scale (#1999)

* python-based parallel style check for py/cpp/jupyter (#2003)

* python-based parallel style check for py/cpp/jupyter

* intentially introduce style error

* remove redundant `pass`

* reorder code

* fix clang-format finder

* require py36, hand-coded version parsing

* fix intentional style errors

* do not use system jsoncpp (#2005)

* Reorg: Added namespace 'rendering' for visualization/rendering (#2002)

* Reorg: Added namespace 'rendering' for visualization/rendering

* Reorg: modify unit test to use new 'rendering' namespace

* overload draw_geometries (#1997)

* std::min of extent in visualizer (#2008)

* remove voxel_pooling namespace (#2014)

* ml namespaces reorg (#2017)

* rename shape_checking -> op_util

* rename detail -> impl

* adapt includes in ml

* fix namespace in shapechecking unit test

* fix paths in CMakeLists for tensorflow and pytorch ops

* reorg: remove hash_* namespaces (#2025)

* reorg: hash_*::hash to hash_* (remove hash_* namespaces)

* reorg: apply-style

* Rename GLHelper namespace (#2024)

* Reorg: change namespace GLHelper to gl_util

* Style fixes

* Reorg: remove texture_loading namespace

* Removed visualization::gui::util namespace (#2013)

* Removed visualization::gui::util namespace

* Style fixes

* add make check-cpp-style, apply-cpp-style (#2016)

* move dlpack (#2009)

* move dlpack

* move dlpack tests

* add license header

* move Open3DDLManagedTensor constructor

* more license

* DLManagedTensor:Create

* update Eigen to use the GitLab commit id (#2030)

* Update PointCloud.h (#2032)

Changed Incorrect interchanged description for variable points_ and colors_

* Update CHANGELOG.md (#2033)

As required by guidelines with respect to Pull request #2032

* fix coord frame origin bug (#2034)

* Added comment explaining why Util.h only has one function in it (#2028)

* expose poisson rec threads param (#2035)

* remove clean up

* fix path (#2048)

* Adds menu option on macOS to make Open3D viewer default for file types (#2031)

* Adds menu option on macOS to make Open3D viewer default for file types we load. Also makes macOS menu more Mac-like, and fixes problems with auto-centering windows.

* Linux fixes

* Applied style

* Get rid of some magic numbers

* Use GitHub actions again for macOS CI (#2045)

* enable macos github actions, disable macos travis

* use ccache

* skip brew upgrade

* torch op nvcc bugfix and impl namespace (#2044)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* use full include paths

* disable CreateFromPointCloudPoisson test for macos (#2054)

* disable CreateFromPointCloudPoisson test for macos

* set macos threads=1

* ml op test code and torch reduce_subarrays_sum op (#2050)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* -updated and cleaned up code for testing across ml frameworks

* added reduce_subarrays_sum op for torch

* rename dir with ml op tests to ml_ops

* fix include paths

* -fix missing entry in _build_config.py
-fix bug not running the tests on the gpu
-fix problems detected by pylint

* add more information to open3d._build_config

* fix another pytorch problem

* catch ImportError for compatibility with python 3.5

* add missing import statement

* rename mltest.parameterize -> mltest.parametrize

* CUDA header as system header for CMake 3.16 (#2058)

* update CI badges, remove appveyor (#2059)

* Docs updated for build with CUDA (#2055)

* Add building with CUDA

* fix style

* fixes

* remove space

* Remove space

* TensorList refactoring and comparison tensor ops (#2066)

* refactor TensorList, add Tensor comp ops

* fix msvc error

* fix utility::LogXX {} escape problem (#2072)

* fix LogXX {} escape problem

* fix a typo

* specifying utf-8 encoding to open nb_path (#1935)

* Release Python GIL for fast multithreaded IO (#1936)

* ClassIO Python bindings now release GIL
This allows multithreaded loading of PCD files, etc.

* Update CHANGELOG.md as requested

* Incorrect list-item indent: add 2 spaces

* clang-format class_io.cpp

Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* Fix window showing buffer from last resize when a window is moved on macOS (#2076)

* lower case "open3d/3rdparty" intall dir (#2083)

* fix bug in import_3rdparty_library for paths without trailing '/' (#2084)

* -fix bug in import_3rdparty_library for paths without trailing '/' and allow to pass multiple include dirs

* improved doc for import_3rdparty_library and build_3rdparty_library

* fetch Filament with CMake FetchContent (#2085)

* Implements python bindings for gui namespace (#2042)

* no message

* Added pybinds for TabControl and FileDialog

* Add C++ function to initialize with a resource path, updated python package to include resources and update pybind to get resource path from module path

* Added pybinds for Menu.

* Refactored to gui pybinds to export properties wherever feasible

* Fix height used for auto-sizing windows to be less than the monitor size to account for window titles and global menu/toolbar

* Added python GUI example

* Style changes

* Merge branch 'master' into prewettg/pybind-gui

* Don't include GUI pybinds if ENABLE_GUI=OFF

* Fixed dynamic link error when importing open3d and ENABLE_GUI=OFF

* Add python example of Open3DViewer UI, added some float->int bindings, and added a Window.set_on_layout() function to implement a layout callback.

* Fix macOS sometimes not issuing draw event when UI is run through Python

* Added documentation to gui pybinds

* Style fixes

* Added open3d.visualization.gui to the documentation, improved docstrings.

* Style fix

* Made GUI examples more like a framework of a simple app, rather than just functions that use the API. Also fixed crash when macOS file dialog has no filters, and a bug with dialogs sometimes not displaying until a mouse move.

* Style fixes

* Updated some copyright dates

* Removed unused function

* Moved nested callback functions to be top-level methods in GUI python examples

* Fixed documentation failing when built with ENABLE_GUI=OFF

* Style fixes

* scalar support to more binary ops (#2093)

* scalar support for more binary ops

* fix boolean advanced indexing

* Added gui::TreeView widget (#2081)

* Build: exclude refactored Gui related classes when ENABLE_GUI=OFF

* Build: Make sure refactored files are exluded from build when ENABLE_GUI=OFF

Co-authored-by: prewettg <prewettg@gmail.com>
Co-authored-by: Gernot <gernotriegler@gmail.com>
Co-authored-by: Yixing Lao <yixing.lao@gmail.com>
Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>
Co-authored-by: pvarvak <60749825+pvarvak@users.noreply.github.com>
Co-authored-by: Pranay Mathur <37473401+Matnay@users.noreply.github.com>
Co-authored-by: Sanskar Agrawal <sanskaragrawal107@gmail.com>
Co-authored-by: johnbomidi <37553132+johnbomidi@users.noreply.github.com>
Co-authored-by: sammo2828 <sammo2828@gmail.com>
Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>
* Updated Info.plist file for app to claim it edits and is the default type for the file associations. Also adds .pcd as a supported file type. (#2001)

* fix obb rotate and scale (#1999)

* python-based parallel style check for py/cpp/jupyter (#2003)

* python-based parallel style check for py/cpp/jupyter

* intentially introduce style error

* remove redundant `pass`

* reorder code

* fix clang-format finder

* require py36, hand-coded version parsing

* fix intentional style errors

* do not use system jsoncpp (#2005)

* Reorg: Added namespace 'rendering' for visualization/rendering (#2002)

* Reorg: Added namespace 'rendering' for visualization/rendering

* Reorg: modify unit test to use new 'rendering' namespace

* overload draw_geometries (#1997)

* std::min of extent in visualizer (#2008)

* remove voxel_pooling namespace (#2014)

* ml namespaces reorg (#2017)

* rename shape_checking -> op_util

* rename detail -> impl

* adapt includes in ml

* fix namespace in shapechecking unit test

* fix paths in CMakeLists for tensorflow and pytorch ops

* reorg: remove hash_* namespaces (#2025)

* reorg: hash_*::hash to hash_* (remove hash_* namespaces)

* reorg: apply-style

* Rename GLHelper namespace (#2024)

* Reorg: change namespace GLHelper to gl_util

* Style fixes

* Reorg: remove texture_loading namespace

* Removed visualization::gui::util namespace (#2013)

* Removed visualization::gui::util namespace

* Style fixes

* add make check-cpp-style, apply-cpp-style (#2016)

* move dlpack (#2009)

* move dlpack

* move dlpack tests

* add license header

* move Open3DDLManagedTensor constructor

* more license

* DLManagedTensor:Create

* update Eigen to use the GitLab commit id (#2030)

* Update PointCloud.h (#2032)

Changed Incorrect interchanged description for variable points_ and colors_

* Update CHANGELOG.md (#2033)

As required by guidelines with respect to Pull request #2032

* fix coord frame origin bug (#2034)

* Added comment explaining why Util.h only has one function in it (#2028)

* expose poisson rec threads param (#2035)

* remove clean up

* fix path (#2048)

* Adds menu option on macOS to make Open3D viewer default for file types (#2031)

* Adds menu option on macOS to make Open3D viewer default for file types we load. Also makes macOS menu more Mac-like, and fixes problems with auto-centering windows.

* Linux fixes

* Applied style

* Get rid of some magic numbers

* Use GitHub actions again for macOS CI (#2045)

* enable macos github actions, disable macos travis

* use ccache

* skip brew upgrade

* torch op nvcc bugfix and impl namespace (#2044)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* use full include paths

* disable CreateFromPointCloudPoisson test for macos (#2054)

* disable CreateFromPointCloudPoisson test for macos

* set macos threads=1

* ml op test code and torch reduce_subarrays_sum op (#2050)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* -updated and cleaned up code for testing across ml frameworks

* added reduce_subarrays_sum op for torch

* rename dir with ml op tests to ml_ops

* fix include paths

* -fix missing entry in _build_config.py
-fix bug not running the tests on the gpu
-fix problems detected by pylint

* add more information to open3d._build_config

* fix another pytorch problem

* catch ImportError for compatibility with python 3.5

* add missing import statement

* rename mltest.parameterize -> mltest.parametrize

* CUDA header as system header for CMake 3.16 (#2058)

* update CI badges, remove appveyor (#2059)

* Docs updated for build with CUDA (#2055)

* Add building with CUDA

* fix style

* fixes

* remove space

* Remove space

* TensorList refactoring and comparison tensor ops (#2066)

* refactor TensorList, add Tensor comp ops

* fix msvc error

* fix utility::LogXX {} escape problem (#2072)

* fix LogXX {} escape problem

* fix a typo

* specifying utf-8 encoding to open nb_path (#1935)

* Release Python GIL for fast multithreaded IO (#1936)

* ClassIO Python bindings now release GIL
This allows multithreaded loading of PCD files, etc.

* Update CHANGELOG.md as requested

* Incorrect list-item indent: add 2 spaces

* clang-format class_io.cpp

Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* Fix window showing buffer from last resize when a window is moved on macOS (#2076)

* lower case "open3d/3rdparty" intall dir (#2083)

* fix bug in import_3rdparty_library for paths without trailing '/' (#2084)

* -fix bug in import_3rdparty_library for paths without trailing '/' and allow to pass multiple include dirs

* improved doc for import_3rdparty_library and build_3rdparty_library

* fetch Filament with CMake FetchContent (#2085)

* Implements python bindings for gui namespace (#2042)

* no message

* Added pybinds for TabControl and FileDialog

* Add C++ function to initialize with a resource path, updated python package to include resources and update pybind to get resource path from module path

* Added pybinds for Menu.

* Refactored to gui pybinds to export properties wherever feasible

* Fix height used for auto-sizing windows to be less than the monitor size to account for window titles and global menu/toolbar

* Added python GUI example

* Style changes

* Merge branch 'master' into prewettg/pybind-gui

* Don't include GUI pybinds if ENABLE_GUI=OFF

* Fixed dynamic link error when importing open3d and ENABLE_GUI=OFF

* Add python example of Open3DViewer UI, added some float->int bindings, and added a Window.set_on_layout() function to implement a layout callback.

* Fix macOS sometimes not issuing draw event when UI is run through Python

* Added documentation to gui pybinds

* Style fixes

* Added open3d.visualization.gui to the documentation, improved docstrings.

* Style fix

* Made GUI examples more like a framework of a simple app, rather than just functions that use the API. Also fixed crash when macOS file dialog has no filters, and a bug with dialogs sometimes not displaying until a mouse move.

* Style fixes

* Updated some copyright dates

* Removed unused function

* Moved nested callback functions to be top-level methods in GUI python examples

* Fixed documentation failing when built with ENABLE_GUI=OFF

* Style fixes

* scalar support to more binary ops (#2093)

* scalar support for more binary ops

* fix boolean advanced indexing

* Added gui::TreeView widget (#2081)

* Build: exclude refactored Gui related classes when ENABLE_GUI=OFF

* Build: Make sure refactored files are exluded from build when ENABLE_GUI=OFF

* Refactor: Initial working version of Scene interface

* Update Open3DViewer and associated files to use new Scene interfaces (+ style changes)

* Fix spurious warnings

* Fix material switching to work with new Scene interface

Co-authored-by: prewettg <prewettg@gmail.com>
Co-authored-by: Gernot <gernotriegler@gmail.com>
Co-authored-by: Yixing Lao <yixing.lao@gmail.com>
Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>
Co-authored-by: pvarvak <60749825+pvarvak@users.noreply.github.com>
Co-authored-by: Pranay Mathur <37473401+Matnay@users.noreply.github.com>
Co-authored-by: Sanskar Agrawal <sanskaragrawal107@gmail.com>
Co-authored-by: johnbomidi <37553132+johnbomidi@users.noreply.github.com>
Co-authored-by: sammo2828 <sammo2828@gmail.com>
Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>
# Conflicts:
#	cpp/open3d/core/Tensor.cpp
#	cpp/open3d/core/Tensor.h
#	cpp/open3d/core/TensorList.h
#	cpp/open3d/core/dlpack/DLPackConverter.h
#	cpp/open3d/visualization/gui/SceneWidget.cpp
#	cpp/open3d/visualization/gui/SceneWidget.h
#	cpp/open3d/visualization/gui/TreeView.cpp
#	cpp/open3d/visualization/gui/TreeView.h
#	cpp/open3d/visualization/gui/Window.cpp
#	cpp/open3d/visualization/rendering/IBLRotationInteractorLogic.cpp
#	cpp/open3d/visualization/rendering/IBLRotationInteractorLogic.h
#	cpp/open3d/visualization/rendering/filament/FilamentScene.cpp
#	cpp/open3d/visualization/visualizer/GuiVisualizer.cpp
#	cpp/pybind/make_python_package.cmake
#	cpp/pybind/visualization/gui/gui.cpp
#	cpp/pybind/visualization/gui/gui.h
#	cpp/pybind/visualization/rendering/rendering.h
#	cpp/pybind/visualization/visualization.cpp
#	examples/python/GUI/all-widgets.py
#	examples/python/GUI/vis-gui.py
#	python/setup.py
@prewettg prewettg requested a review from errissa July 31, 2020 00:10
@update-docs
Copy link

update-docs bot commented Jul 31, 2020

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

Copy link
Collaborator

@errissa errissa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 5 of 17 files at r1, 79 of 297 files at r2, 21 of 34 files at r3, 1 of 1 files at r4.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved

Copy link
Collaborator

@yxlao yxlao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 of 297 files at r2.
Reviewable status: 38 of 44 files reviewed, all discussions resolved (waiting on @errissa)

Copy link
Collaborator

@yxlao yxlao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 5 of 17 files at r1, 93 of 297 files at r2, 25 of 34 files at r3, 1 of 1 files at r4, 5 of 5 files at r5, 1 of 1 files at r6.
Reviewable status: all files reviewed, 10 unresolved discussions (waiting on @prewettg)


cpp/open3d/visualization/gui/Application.cpp, line 242 at r2 (raw file):

        utility::LogError(
                ("Can't find resource directory: " + impl_->resource_path_)
                        .c_str());

do we need .c_str()?


cpp/open3d/visualization/gui/Application.cpp, line 249 at r2 (raw file):

                ("Resource directory does not have Open3D resources: " +
                 impl_->resource_path_)
                        .c_str());

do we need .c_str()?


cpp/open3d/visualization/rendering/Material.h, line 51 at r6 (raw file):

    float point_size = 3.f;

    std::shared_ptr<open3d::geometry::Image> albedo_img;

remove open3d::?


cpp/open3d/visualization/rendering/Material.h, line 63 at r6 (raw file):

    // Generic material properties
    std::unordered_map<std::string, Eigen::Vector4f> generic_params;
    std::unordered_map<std::string, open3d::geometry::Image> generic_imgs;

remove open3d::?


cpp/open3d/visualization/rendering/ModelInteractorLogic.cpp, line 78 at r6 (raw file):

                                       Eigen::Vector3f(1, 1, 1));
        t.translate(-center_of_rotation_);
        // scene_->SetEntityTransform(o, t);

remove commented code? same for the rest of this file


cpp/open3d/visualization/rendering/filament/FilamentScene.h, line 29 at r6 (raw file):

#pragma once

#include <filament/LightManager.h>

Is FilamentScene.h is ultimately included in Open3D.h? Can we avoid filament headers in our headers e.g. by forward declarationx?
Otherwise, we'll have to install filament headers together with Open3D installation, which is undesirable.


cpp/open3d/visualization/visualizer/GuiWidgets.h, line 43 at r6 (raw file):

};

//----

is the comment necessary?


cpp/open3d/visualization/visualizer/GuiWidgets.cpp, line 42 at r6 (raw file):

}

//----

is the comment necessary?


cpp/pybind/visualization/rendering/rendering.cpp, line 134 at r6 (raw file):

                         Scene::AddGeometry,
                 "Adds a Geometry with a material to the scene")
            //        .def("add_geometry",

remove commented code?


examples/python/GUI/vis-gui.py, line 1 at r6 (raw file):

#!/usr/bin/env python3

if we call ./vis-guil.py without python in front, will this work inside virtualenv?xxxnn

Copy link
Collaborator

@errissa errissa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 10 unresolved discussions (waiting on @prewettg and @yxlao)


cpp/open3d/visualization/rendering/ModelInteractorLogic.cpp, line 78 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

remove commented code? same for the rest of this file

I would like to keep the commented code because I may need to make changes to this file to fix a bug which I plan to do as soon as this PR is merged. I'll be removing (or reviving) the commented code at that point.

Copy link
Contributor Author

@prewettg prewettg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 10 unresolved discussions (waiting on @yxlao)


cpp/open3d/visualization/gui/Application.cpp, line 242 at r2 (raw file):

Previously, yxlao (Yixing Lao) wrote…

do we need .c_str()?

Yes, LogError is LogError(const char *fmt, ...)


cpp/open3d/visualization/gui/Application.cpp, line 249 at r2 (raw file):

Previously, yxlao (Yixing Lao) wrote…

do we need .c_str()?

Yes, same as above


cpp/open3d/visualization/rendering/Material.h, line 51 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

remove open3d::?

Done


cpp/open3d/visualization/rendering/Material.h, line 63 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

remove open3d::?

Done


cpp/open3d/visualization/rendering/filament/FilamentScene.h, line 29 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

Is FilamentScene.h is ultimately included in Open3D.h? Can we avoid filament headers in our headers e.g. by forward declarationx?
Otherwise, we'll have to install filament headers together with Open3D installation, which is undesirable.

No, the Filament*.h files are only included by Filament*.cpp files, and implement the abstract class Scene. The gui files include Scene.h, etc. The Renderer class acts as a factory to produce Scene pointers.


cpp/open3d/visualization/visualizer/GuiWidgets.h, line 43 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

is the comment necessary?

Nope, it is a vestigial comment from before the GuiVisualizer refactor. Removed


cpp/open3d/visualization/visualizer/GuiWidgets.cpp, line 42 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

is the comment necessary?

Vestigial, removed


cpp/pybind/visualization/rendering/rendering.cpp, line 134 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

remove commented code?

Done


examples/python/GUI/vis-gui.py, line 1 at r6 (raw file):

Previously, yxlao (Yixing Lao) wrote…

if we call ./vis-guil.py without python in front, will this work inside virtualenv?xxxnn

Yes, except that vis-gui.py doesn't have execute permissions. Is your concern the /usr/bin/env part (which I believe is the accepted shebang for python scripts) or the python3 part? The virtual environments I have been using all have a python3 symlink in venv/bin. But if that's not necessarily the case, I could change it to be python.

@germanros1987
Copy link
Contributor

Codacy Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 14
           

Complexity increasing per file
==============================
- examples/python/GUI/vis-gui.py  6
         

Clones added
============
- cpp/open3d/visualization/visualizer/GuiSettingsModel.cpp  2
- cpp/open3d/visualization/rendering/Open3DScene.cpp  5
         

Clones removed
==============
+ cpp/open3d/visualization/visualizer/GuiVisualizer.cpp  -5
+ cpp/open3d/visualization/rendering/filament/FilamentScene.cpp  -9
         

See the complete overview on Codacy

Copy link
Collaborator

@yxlao yxlao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 6 of 6 files at r7.
Reviewable status: all files reviewed, 10 unresolved discussions (waiting on @yxlao)

@germanros1987 germanros1987 merged commit 125458a into master Aug 3, 2020
@prewettg prewettg deleted the vis-refactor branch August 3, 2020 22:28
sammo2828 added a commit to sammo2828/Open3D that referenced this pull request Aug 25, 2020
* Refactor: added Open3DScene (isl-org#1992)

* Refactor: added Open3DScene, refactored SceneWidget and GuiVisualizer to use it

* Removed now-unnecessary visualization:: qualification in SceneWidget

* Fixed model rotation not working

* Remove unused variable that GCC complains about

* Fixed include path

* Fixed another include path

* Include path fix

* Refactored GuiVisualizer so that the view settings are more independent and more MVC-like

* Merged master into vis-refactor. (isl-org#2099)

* Updated Info.plist file for app to claim it edits and is the default type for the file associations. Also adds .pcd as a supported file type. (isl-org#2001)

* fix obb rotate and scale (isl-org#1999)

* python-based parallel style check for py/cpp/jupyter (isl-org#2003)

* python-based parallel style check for py/cpp/jupyter

* intentially introduce style error

* remove redundant `pass`

* reorder code

* fix clang-format finder

* require py36, hand-coded version parsing

* fix intentional style errors

* do not use system jsoncpp (isl-org#2005)

* Reorg: Added namespace 'rendering' for visualization/rendering (isl-org#2002)

* Reorg: Added namespace 'rendering' for visualization/rendering

* Reorg: modify unit test to use new 'rendering' namespace

* overload draw_geometries (isl-org#1997)

* std::min of extent in visualizer (isl-org#2008)

* remove voxel_pooling namespace (isl-org#2014)

* ml namespaces reorg (isl-org#2017)

* rename shape_checking -> op_util

* rename detail -> impl

* adapt includes in ml

* fix namespace in shapechecking unit test

* fix paths in CMakeLists for tensorflow and pytorch ops

* reorg: remove hash_* namespaces (isl-org#2025)

* reorg: hash_*::hash to hash_* (remove hash_* namespaces)

* reorg: apply-style

* Rename GLHelper namespace (isl-org#2024)

* Reorg: change namespace GLHelper to gl_util

* Style fixes

* Reorg: remove texture_loading namespace

* Removed visualization::gui::util namespace (isl-org#2013)

* Removed visualization::gui::util namespace

* Style fixes

* add make check-cpp-style, apply-cpp-style (isl-org#2016)

* move dlpack (isl-org#2009)

* move dlpack

* move dlpack tests

* add license header

* move Open3DDLManagedTensor constructor

* more license

* DLManagedTensor:Create

* update Eigen to use the GitLab commit id (isl-org#2030)

* Update PointCloud.h (isl-org#2032)

Changed Incorrect interchanged description for variable points_ and colors_

* Update CHANGELOG.md (isl-org#2033)

As required by guidelines with respect to Pull request isl-org#2032

* fix coord frame origin bug (isl-org#2034)

* Added comment explaining why Util.h only has one function in it (isl-org#2028)

* expose poisson rec threads param (isl-org#2035)

* remove clean up

* fix path (isl-org#2048)

* Adds menu option on macOS to make Open3D viewer default for file types (isl-org#2031)

* Adds menu option on macOS to make Open3D viewer default for file types we load. Also makes macOS menu more Mac-like, and fixes problems with auto-centering windows.

* Linux fixes

* Applied style

* Get rid of some magic numbers

* Use GitHub actions again for macOS CI (isl-org#2045)

* enable macos github actions, disable macos travis

* use ccache

* skip brew upgrade

* torch op nvcc bugfix and impl namespace (isl-org#2044)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* use full include paths

* disable CreateFromPointCloudPoisson test for macos (isl-org#2054)

* disable CreateFromPointCloudPoisson test for macos

* set macos threads=1

* ml op test code and torch reduce_subarrays_sum op (isl-org#2050)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* -updated and cleaned up code for testing across ml frameworks

* added reduce_subarrays_sum op for torch

* rename dir with ml op tests to ml_ops

* fix include paths

* -fix missing entry in _build_config.py
-fix bug not running the tests on the gpu
-fix problems detected by pylint

* add more information to open3d._build_config

* fix another pytorch problem

* catch ImportError for compatibility with python 3.5

* add missing import statement

* rename mltest.parameterize -> mltest.parametrize

* CUDA header as system header for CMake 3.16 (isl-org#2058)

* update CI badges, remove appveyor (isl-org#2059)

* Docs updated for build with CUDA (isl-org#2055)

* Add building with CUDA

* fix style

* fixes

* remove space

* Remove space

* TensorList refactoring and comparison tensor ops (isl-org#2066)

* refactor TensorList, add Tensor comp ops

* fix msvc error

* fix utility::LogXX {} escape problem (isl-org#2072)

* fix LogXX {} escape problem

* fix a typo

* specifying utf-8 encoding to open nb_path (isl-org#1935)

* Release Python GIL for fast multithreaded IO (isl-org#1936)

* ClassIO Python bindings now release GIL
This allows multithreaded loading of PCD files, etc.

* Update CHANGELOG.md as requested

* Incorrect list-item indent: add 2 spaces

* clang-format class_io.cpp

Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* Fix window showing buffer from last resize when a window is moved on macOS (isl-org#2076)

* lower case "open3d/3rdparty" intall dir (isl-org#2083)

* fix bug in import_3rdparty_library for paths without trailing '/' (isl-org#2084)

* -fix bug in import_3rdparty_library for paths without trailing '/' and allow to pass multiple include dirs

* improved doc for import_3rdparty_library and build_3rdparty_library

* fetch Filament with CMake FetchContent (isl-org#2085)

* Implements python bindings for gui namespace (isl-org#2042)

* no message

* Added pybinds for TabControl and FileDialog

* Add C++ function to initialize with a resource path, updated python package to include resources and update pybind to get resource path from module path

* Added pybinds for Menu.

* Refactored to gui pybinds to export properties wherever feasible

* Fix height used for auto-sizing windows to be less than the monitor size to account for window titles and global menu/toolbar

* Added python GUI example

* Style changes

* Merge branch 'master' into prewettg/pybind-gui

* Don't include GUI pybinds if ENABLE_GUI=OFF

* Fixed dynamic link error when importing open3d and ENABLE_GUI=OFF

* Add python example of Open3DViewer UI, added some float->int bindings, and added a Window.set_on_layout() function to implement a layout callback.

* Fix macOS sometimes not issuing draw event when UI is run through Python

* Added documentation to gui pybinds

* Style fixes

* Added open3d.visualization.gui to the documentation, improved docstrings.

* Style fix

* Made GUI examples more like a framework of a simple app, rather than just functions that use the API. Also fixed crash when macOS file dialog has no filters, and a bug with dialogs sometimes not displaying until a mouse move.

* Style fixes

* Updated some copyright dates

* Removed unused function

* Moved nested callback functions to be top-level methods in GUI python examples

* Fixed documentation failing when built with ENABLE_GUI=OFF

* Style fixes

* scalar support to more binary ops (isl-org#2093)

* scalar support for more binary ops

* fix boolean advanced indexing

* Added gui::TreeView widget (isl-org#2081)

* Build: exclude refactored Gui related classes when ENABLE_GUI=OFF

* Build: Make sure refactored files are exluded from build when ENABLE_GUI=OFF

Co-authored-by: prewettg <prewettg@gmail.com>
Co-authored-by: Gernot <gernotriegler@gmail.com>
Co-authored-by: Yixing Lao <yixing.lao@gmail.com>
Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>
Co-authored-by: pvarvak <60749825+pvarvak@users.noreply.github.com>
Co-authored-by: Pranay Mathur <37473401+Matnay@users.noreply.github.com>
Co-authored-by: Sanskar Agrawal <sanskaragrawal107@gmail.com>
Co-authored-by: johnbomidi <37553132+johnbomidi@users.noreply.github.com>
Co-authored-by: sammo2828 <sammo2828@gmail.com>
Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* New Scene Interface [not ready for master] (isl-org#2102)

* Updated Info.plist file for app to claim it edits and is the default type for the file associations. Also adds .pcd as a supported file type. (isl-org#2001)

* fix obb rotate and scale (isl-org#1999)

* python-based parallel style check for py/cpp/jupyter (isl-org#2003)

* python-based parallel style check for py/cpp/jupyter

* intentially introduce style error

* remove redundant `pass`

* reorder code

* fix clang-format finder

* require py36, hand-coded version parsing

* fix intentional style errors

* do not use system jsoncpp (isl-org#2005)

* Reorg: Added namespace 'rendering' for visualization/rendering (isl-org#2002)

* Reorg: Added namespace 'rendering' for visualization/rendering

* Reorg: modify unit test to use new 'rendering' namespace

* overload draw_geometries (isl-org#1997)

* std::min of extent in visualizer (isl-org#2008)

* remove voxel_pooling namespace (isl-org#2014)

* ml namespaces reorg (isl-org#2017)

* rename shape_checking -> op_util

* rename detail -> impl

* adapt includes in ml

* fix namespace in shapechecking unit test

* fix paths in CMakeLists for tensorflow and pytorch ops

* reorg: remove hash_* namespaces (isl-org#2025)

* reorg: hash_*::hash to hash_* (remove hash_* namespaces)

* reorg: apply-style

* Rename GLHelper namespace (isl-org#2024)

* Reorg: change namespace GLHelper to gl_util

* Style fixes

* Reorg: remove texture_loading namespace

* Removed visualization::gui::util namespace (isl-org#2013)

* Removed visualization::gui::util namespace

* Style fixes

* add make check-cpp-style, apply-cpp-style (isl-org#2016)

* move dlpack (isl-org#2009)

* move dlpack

* move dlpack tests

* add license header

* move Open3DDLManagedTensor constructor

* more license

* DLManagedTensor:Create

* update Eigen to use the GitLab commit id (isl-org#2030)

* Update PointCloud.h (isl-org#2032)

Changed Incorrect interchanged description for variable points_ and colors_

* Update CHANGELOG.md (isl-org#2033)

As required by guidelines with respect to Pull request isl-org#2032

* fix coord frame origin bug (isl-org#2034)

* Added comment explaining why Util.h only has one function in it (isl-org#2028)

* expose poisson rec threads param (isl-org#2035)

* remove clean up

* fix path (isl-org#2048)

* Adds menu option on macOS to make Open3D viewer default for file types (isl-org#2031)

* Adds menu option on macOS to make Open3D viewer default for file types we load. Also makes macOS menu more Mac-like, and fixes problems with auto-centering windows.

* Linux fixes

* Applied style

* Get rid of some magic numbers

* Use GitHub actions again for macOS CI (isl-org#2045)

* enable macos github actions, disable macos travis

* use ccache

* skip brew upgrade

* torch op nvcc bugfix and impl namespace (isl-org#2044)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* use full include paths

* disable CreateFromPointCloudPoisson test for macos (isl-org#2054)

* disable CreateFromPointCloudPoisson test for macos

* set macos threads=1

* ml op test code and torch reduce_subarrays_sum op (isl-org#2050)

* fix deprecated warning with torch 1.5

* fix problems with compile options and nvcc

* add shape checking code for pytorch op

* namespace rename open3d::ml::detail -> open3d::ml::impl

* only modify torch_cuda when building with cuda

* -updated and cleaned up code for testing across ml frameworks

* added reduce_subarrays_sum op for torch

* rename dir with ml op tests to ml_ops

* fix include paths

* -fix missing entry in _build_config.py
-fix bug not running the tests on the gpu
-fix problems detected by pylint

* add more information to open3d._build_config

* fix another pytorch problem

* catch ImportError for compatibility with python 3.5

* add missing import statement

* rename mltest.parameterize -> mltest.parametrize

* CUDA header as system header for CMake 3.16 (isl-org#2058)

* update CI badges, remove appveyor (isl-org#2059)

* Docs updated for build with CUDA (isl-org#2055)

* Add building with CUDA

* fix style

* fixes

* remove space

* Remove space

* TensorList refactoring and comparison tensor ops (isl-org#2066)

* refactor TensorList, add Tensor comp ops

* fix msvc error

* fix utility::LogXX {} escape problem (isl-org#2072)

* fix LogXX {} escape problem

* fix a typo

* specifying utf-8 encoding to open nb_path (isl-org#1935)

* Release Python GIL for fast multithreaded IO (isl-org#1936)

* ClassIO Python bindings now release GIL
This allows multithreaded loading of PCD files, etc.

* Update CHANGELOG.md as requested

* Incorrect list-item indent: add 2 spaces

* clang-format class_io.cpp

Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* Fix window showing buffer from last resize when a window is moved on macOS (isl-org#2076)

* lower case "open3d/3rdparty" intall dir (isl-org#2083)

* fix bug in import_3rdparty_library for paths without trailing '/' (isl-org#2084)

* -fix bug in import_3rdparty_library for paths without trailing '/' and allow to pass multiple include dirs

* improved doc for import_3rdparty_library and build_3rdparty_library

* fetch Filament with CMake FetchContent (isl-org#2085)

* Implements python bindings for gui namespace (isl-org#2042)

* no message

* Added pybinds for TabControl and FileDialog

* Add C++ function to initialize with a resource path, updated python package to include resources and update pybind to get resource path from module path

* Added pybinds for Menu.

* Refactored to gui pybinds to export properties wherever feasible

* Fix height used for auto-sizing windows to be less than the monitor size to account for window titles and global menu/toolbar

* Added python GUI example

* Style changes

* Merge branch 'master' into prewettg/pybind-gui

* Don't include GUI pybinds if ENABLE_GUI=OFF

* Fixed dynamic link error when importing open3d and ENABLE_GUI=OFF

* Add python example of Open3DViewer UI, added some float->int bindings, and added a Window.set_on_layout() function to implement a layout callback.

* Fix macOS sometimes not issuing draw event when UI is run through Python

* Added documentation to gui pybinds

* Style fixes

* Added open3d.visualization.gui to the documentation, improved docstrings.

* Style fix

* Made GUI examples more like a framework of a simple app, rather than just functions that use the API. Also fixed crash when macOS file dialog has no filters, and a bug with dialogs sometimes not displaying until a mouse move.

* Style fixes

* Updated some copyright dates

* Removed unused function

* Moved nested callback functions to be top-level methods in GUI python examples

* Fixed documentation failing when built with ENABLE_GUI=OFF

* Style fixes

* scalar support to more binary ops (isl-org#2093)

* scalar support for more binary ops

* fix boolean advanced indexing

* Added gui::TreeView widget (isl-org#2081)

* Build: exclude refactored Gui related classes when ENABLE_GUI=OFF

* Build: Make sure refactored files are exluded from build when ENABLE_GUI=OFF

* Refactor: Initial working version of Scene interface

* Update Open3DViewer and associated files to use new Scene interfaces (+ style changes)

* Fix spurious warnings

* Fix material switching to work with new Scene interface

Co-authored-by: prewettg <prewettg@gmail.com>
Co-authored-by: Gernot <gernotriegler@gmail.com>
Co-authored-by: Yixing Lao <yixing.lao@gmail.com>
Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>
Co-authored-by: pvarvak <60749825+pvarvak@users.noreply.github.com>
Co-authored-by: Pranay Mathur <37473401+Matnay@users.noreply.github.com>
Co-authored-by: Sanskar Agrawal <sanskaragrawal107@gmail.com>
Co-authored-by: johnbomidi <37553132+johnbomidi@users.noreply.github.com>
Co-authored-by: sammo2828 <sammo2828@gmail.com>
Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>

* Bug fixes for refactor (isl-org#2114)

* Added pybinds open3d::visualization::rendering and implement Python equivalent of vis app (isl-org#2113)

* Fix compile warnings

* Axes shouldn't cast or receive shadows

* Removed code marked as unnecessary

* Fix Windows error

* Style fix and Windows fix

* Don't include rendering pybinds if ENABLE_GUI=OFF

* Code review changes

* Removed unused member variable

* Removed warning if attempting to remove non-existent geometry from the Scene

Co-authored-by: Rene <errissa@gmail.com>
Co-authored-by: Gernot <gernotriegler@gmail.com>
Co-authored-by: Yixing Lao <yixing.lao@gmail.com>
Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>
Co-authored-by: pvarvak <60749825+pvarvak@users.noreply.github.com>
Co-authored-by: Pranay Mathur <37473401+Matnay@users.noreply.github.com>
Co-authored-by: Sanskar Agrawal <sanskaragrawal107@gmail.com>
Co-authored-by: johnbomidi <37553132+johnbomidi@users.noreply.github.com>
Co-authored-by: sammo2828 <sammo2828@gmail.com>
Co-authored-by: Samson Lee <samson.lee@visionarymachines.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants