Skip to content

Commit

Permalink
Merged master into vis-refactor. (#2099)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
11 people committed Jul 23, 2020
1 parent bb5fbf8 commit 5c2cd72
Show file tree
Hide file tree
Showing 294 changed files with 7,149 additions and 3,092 deletions.
7 changes: 0 additions & 7 deletions .appveyor.yml

This file was deleted.

57 changes: 57 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: macOS CI

on:
push:
branches:
- master
pull_request:
types: [opened, reopened, synchronize] # Rebuild on new pushes to PR

jobs:
macos:
runs-on: macos-10.15
strategy:
fail-fast: false
matrix:
BUILD_ML_OPS: [ON, OFF]
env:
SHARED: OFF
NPROC: 2
BUILD_DEPENDENCY_FROM_SOURCE: OFF
BUILD_CUDA_MODULE: OFF
BUILD_TENSORFLOW_OPS: ${{ matrix.BUILD_ML_OPS }}
BUILD_PYTORCH_OPS: ${{ matrix.BUILD_ML_OPS }}
LOW_MEM_USAGE: ON
steps:
- name: Checkout source code
uses: actions/checkout@v2
with:
submodules: true
- name: Setup cache
uses: actions/cache@v2
with:
# Ref: https://github.com/apache/incubator-mxnet/pull/18459/files
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
key: ${{ runner.os }}-ccache-${{ github.sha }}
# Restore any ccache cache entry, if none for
# ${{ runner.os }}-ccache-${{ github.sha }} exists.
# Common prefix will be used so that ccache can be used across commits.
restore-keys: |
${{ runner.os }}-ccache
- name: Set up Python version
uses: actions/setup-python@v2
with:
python-version: 3.6
- name: Install dependencies
run: |
./util/scripts/install-deps-osx.sh skip-upgrade
brew install ccache
ccache -M 2G # GitHub's total cache limit is 5GB for all OSes.
- name: Config and build
run: |
PATH=/usr/local/var/homebrew/linked/ccache/libexec:$PATH
ccache -s
./util/scripts/run-ci.sh
ccache -s
20 changes: 19 additions & 1 deletion .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,32 @@ jobs:
uses: actions/checkout@v2
with:
submodules: true
- name: Setup cache
uses: actions/cache@v2
with:
# Ref: https://github.com/apache/incubator-mxnet/pull/18459/files
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
key: ${{ runner.os }}-ccache-${{ github.sha }}
# Restore any ccache cache entry, if none for
# ${{ runner.os }}-ccache-${{ github.sha }} exists.
# Common prefix will be used so that ccache can be used across commits.
restore-keys: |
${{ runner.os }}-ccache
- name: Set up Python version
uses: actions/setup-python@v2
with:
python-version: 3.5
# Pre-installed 18.04 packages: https://git.io/JfHmW
- name: Install dependencies
run: |
./util/scripts/setup-linux.sh
./util/scripts/install-deps-ubuntu.sh assume-yes
sudo apt-get --yes install ccache
ccache -M 2G # GitHub's total cache limit is 5GB for all OSes.
- name: Config and build
run: |
PATH=/usr/lib/ccache:$PATH
ccache -s
./util/scripts/run-ci.sh
ccache -s
36 changes: 4 additions & 32 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ matrix:
- cmake
- clang-7
- clang-format-5.0
install: ./util/scripts/setup-linux.sh
install:
- ./util/scripts/install-deps-ubuntu.sh assume-yes
script:
- mkdir build
- cd build
- cmake ..
- pip install -U yapf==0.28.0
- pip install -U yapf==0.28.0 nbformat
- make check-style

# Build headless and docs
Expand All @@ -57,7 +58,7 @@ matrix:
- libosmesa6-dev
install:
# Install ubuntu dependencies
- ./util/scripts/setup-linux.sh
- ./util/scripts/install-deps-ubuntu.sh assume-yes
# Install Kinect k4a package
- curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- sudo apt-add-repository --yes https://packages.microsoft.com/ubuntu/18.04/prod
Expand Down Expand Up @@ -97,35 +98,6 @@ matrix:
- ./util/scripts/make-documentation.sh
- ./.travis/deploy_docs.sh

- os: osx
osx_image: xcode11
env: BUILD_TENSORFLOW_OPS=ON BUILD_PYTORCH_OPS=ON LOW_MEM_USAGE=ON
install:
- echo "Travis processors:"
- nproc
- brew update
- brew upgrade python || true
#python@3 on Travis is 3.7
- /usr/local/opt/python@3/bin/pip3 install virtualenv
- /usr/local/opt/python@3/bin/python3 -m venv ~/py3env
- source ~/py3env/bin/activate
- ./util/scripts/install-deps-osx.sh
script: ./util/scripts/run-ci.sh

- os: osx
osx_image: xcode11.5
env: BUILD_TENSORFLOW_OPS=OFF BUILD_PYTORCH_OPS=OFF LOW_MEM_USAGE=ON
install:
- echo "Travis processors:"
- nproc
- brew update
- brew upgrade python || true
- /usr/local/opt/python@3.8/bin/pip3 install virtualenv
- /usr/local/opt/python@3.8/bin/python3 -m venv ~/py3env
- source ~/py3env/bin/activate
- ./util/scripts/install-deps-osx.sh
script: ./util/scripts/run-ci.sh

# - env: DOCKER=YES UBUNTU=16.04 BUNDLE=deps ENV=py3 LINK=STATIC
# script: ./util/docker/open3d-test/tools/test.sh $UBUNTU $BUNDLE $ENV $LINK
# install: sudo apt-get update && sudo apt-get install -y realpath
Expand Down
13 changes: 13 additions & 0 deletions 3rdparty/CMake/FindPytorch.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,22 @@ if(NOT Pytorch_FOUND)
get_target_property( iface_link_libs torch INTERFACE_LINK_LIBRARIES )
string( REPLACE "/usr/local/cuda" "${CUDA_TOOLKIT_ROOT_DIR}" iface_link_libs "${iface_link_libs}" )
set_target_properties( torch PROPERTIES INTERFACE_LINK_LIBRARIES "${iface_link_libs}" )
if( BUILD_CUDA_MODULE )
get_target_property( iface_link_libs torch_cuda INTERFACE_LINK_LIBRARIES )
string( REPLACE "/usr/local/cuda" "${CUDA_TOOLKIT_ROOT_DIR}" iface_link_libs "${iface_link_libs}" )
set_target_properties( torch_cuda PROPERTIES INTERFACE_LINK_LIBRARIES "${iface_link_libs}" )
endif()
# if successful everything works :)
# if unsuccessful CMake will complain that there are no rules to make the targets with the hardcoded paths

if( BUILD_CUDA_MODULE )
# remove flags that nvcc does not understand
get_target_property( iface_compile_options torch INTERFACE_COMPILE_OPTIONS )
set_target_properties( torch PROPERTIES INTERFACE_COMPILE_OPTIONS "" )
set_target_properties( torch_cuda PROPERTIES INTERFACE_COMPILE_OPTIONS "" )
set_target_properties( torch_cpu PROPERTIES INTERFACE_COMPILE_OPTIONS "" )
endif()

# Get Pytorch_CXX11_ABI: True/False
execute_process(
COMMAND
Expand Down
10 changes: 9 additions & 1 deletion 3rdparty/CMake/FindTensorflow.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ if(NOT Tensorflow_FOUND)

message(STATUS "Getting Tensorflow properties ...")

# Get Tensorflow_VERSION
execute_process(
COMMAND
${PYTHON_EXECUTABLE} "-c"
"import tensorflow as tf; print(tf.__version__, end='')"
OUTPUT_VARIABLE Tensorflow_VERSION)

# Get Tensorflow_INCLUDE_DIR
execute_process(
COMMAND
Expand Down Expand Up @@ -52,7 +59,8 @@ if(NOT Tensorflow_FOUND)
)
endif()

message(STATUS "Tensorflow include dir: ${Tensorflow_INCLUDE_DIR}")
message(STATUS "Tensorflow version: ${Tensorflow_VERSION}")
message(STATUS " include dir: ${Tensorflow_INCLUDE_DIR}")
message(STATUS " library dir: ${Tensorflow_LIB_DIR}")
message(STATUS " framework lib: ${Tensorflow_FRAMEWORK_LIB}")
message(STATUS " definitions: ${Tensorflow_DEFINITIONS}")
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/Eigen
Submodule Eigen updated from d41dc4 to 714298
58 changes: 27 additions & 31 deletions 3rdparty/filament/filament_download.cmake
Original file line number Diff line number Diff line change
@@ -1,46 +1,42 @@
include(FetchContent)

if (FILAMENT_PRECOMPILED_ROOT)
if (EXISTS "${FILAMENT_PRECOMPILED_ROOT}")
set(FILAMENT_ROOT "${FILAMENT_PRECOMPILED_ROOT}")
else()
message(FATAL_ERROR "Filament binaries not found in ${FILAMENT_PRECOMPILED_ROOT}")
endif()
else()
set(FILAMENT_ROOT ${CMAKE_BINARY_DIR}/downloads/filament)
# Setup download links
if(WIN32)
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200127-windows.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-windows.tgz")
elseif(APPLE)
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200127-mac-10.14-resizefix2.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-mac.tgz")
else()
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200220-linux.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-linux.tgz")
endif()

if (USE_VULKAN AND (ANDROID OR WIN32 OR WEBGL OR IOS))
MESSAGE(FATAL_ERROR "Downloadable version of Filament supports vulkan only on Linux and Apple")
endif()

if (NOT EXISTS ${FILAMENT_ROOT}/README.md)
set(DOWNLOAD_PATH ${CMAKE_BINARY_DIR}/downloads)
set(TAR_PWD ${DOWNLOAD_PATH})

if (NOT EXISTS ${ARCHIVE_FILE})
set(ARCHIVE_FILE ${CMAKE_BINARY_DIR}/downloads/filament.tgz)

# Setup download links ============================================================================
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200220-linux.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-linux.tgz")

if (WIN32)
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200127-windows.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-windows.tgz")

file(MAKE_DIRECTORY ${FILAMENT_ROOT})
set(TAR_PWD ${FILAMENT_ROOT})
elseif (APPLE)
set(DOWNLOAD_URL_PRIMARY "https://storage.googleapis.com/isl-datasets/open3d-dev/filament-20200127-mac-10.14-resizefix2.tgz")
set(DOWNLOAD_URL_FALLBACK "https://github.com/google/filament/releases/download/v1.4.5/filament-20200127-mac.tgz")
endif()
# =================================================================================================

file(DOWNLOAD ${DOWNLOAD_URL_PRIMARY} ${ARCHIVE_FILE} SHOW_PROGRESS STATUS DOWNLOAD_RESULT)
if (NOT DOWNLOAD_RESULT EQUAL 0)
file(DOWNLOAD ${DOWNLOAD_URL_FALLBACK} ${ARCHIVE_FILE} SHOW_PROGRESS STATUS DOWNLOAD_RESULT)
endif()
endif()

execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${ARCHIVE_FILE} WORKING_DIRECTORY ${TAR_PWD})
FetchContent_Declare(
fetch_filament
URL ${DOWNLOAD_URL_PRIMARY} ${DOWNLOAD_URL_FALLBACK}
)

# FetchContent happends at config time.
FetchContent_GetProperties(fetch_filament)
if(NOT fetch_filament_POPULATED)
message(STATUS "Downloading Filament...")
FetchContent_Populate(fetch_filament)
# We use the default download and unpack directories for FetchContent.
message(STATUS "Filament has been downloaded to ${fetch_filament_DOWNLOADED_FILE}.")
message(STATUS "Filament has been extracted to ${fetch_filament_SOURCE_DIR}.")
set(FILAMENT_ROOT "${fetch_filament_SOURCE_DIR}")
endif()
endif()

Expand Down
Loading

0 comments on commit 5c2cd72

Please sign in to comment.