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

Templatize FCL for scalar type #154

Merged
merged 86 commits into from
Aug 15, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
1261d57
Templatize CollisionGeometry/ShapeBase/Box/Capsule/Cone
jslee02 Jul 28, 2016
2651a5e
Templatize Convex/Cylinder/Ellipsoid/Halfspace/Plane/Sphere/TriangleP
jslee02 Jul 29, 2016
7a3ec53
Templatize RNG and samplers
jslee02 Jul 30, 2016
3765dde
Templatize OBB
jslee02 Aug 2, 2016
6e6bd62
Partially templatize RSS
jslee02 Aug 2, 2016
925bc26
Templatize rest of bounding volume classes
jslee02 Aug 2, 2016
813e84c
Templatize BV.h
jslee02 Aug 2, 2016
0572525
Templatize BVH model classes
jslee02 Aug 2, 2016
f648bb5
Partially templatize traversal node classes
jslee02 Aug 2, 2016
e4a0402
Partially templatize traversal node classes -- continue (1)
jslee02 Aug 3, 2016
a50ccdf
finish templatizing traversal node classes
jslee02 Aug 3, 2016
1e85b72
Put collision/distance nodes into separate directories
jslee02 Aug 3, 2016
a4d898a
Templatize broadphase classes
jslee02 Aug 4, 2016
8b77de9
Templatize intersect.h
jslee02 Aug 4, 2016
b76e71f
Templatize narrowphase algorithms
jslee02 Aug 5, 2016
0c35e4c
Templatize ccd classes
jslee02 Aug 5, 2016
c1457ba
Merge remote-tracking branch 'origin/eigen' into templatize
jslee02 Aug 5, 2016
6f5e1c9
Merge remote-tracking branch 'origin/master' into templatize
jslee02 Aug 5, 2016
433921f
Fix build errors on mac
jslee02 Aug 5, 2016
dc9cfe6
Templatize articulated model classes
jslee02 Aug 5, 2016
2e26138
Start templatizing tests
jslee02 Aug 6, 2016
7c633a7
Templatize tests
jslee02 Aug 6, 2016
2f76bec
Polish files in math directories
jslee02 Aug 6, 2016
d4b6c04
Polish files in shape directories
jslee02 Aug 6, 2016
2fb9a96
Polish files in BV directories
jslee02 Aug 7, 2016
467912a
Add basic test with Eigen::AudoDiffScalar
jslee02 Aug 7, 2016
f218bbd
Split narrowphase.h per primitive shape algorithms
jslee02 Aug 7, 2016
215a22d
Use Transform3 intead of (Matrix3, Vector3)
jslee02 Aug 8, 2016
5eb1d73
Fix compiler warnings on mac
jslee02 Aug 8, 2016
58e6b47
Fix more compiler warnings on mac
jslee02 Aug 8, 2016
2401ec1
Use the original eigen function rather than Eigen's one
jslee02 Aug 9, 2016
9670b7c
Minor code optimization in BV_fitter
jslee02 Aug 9, 2016
e791cc9
Remove boost installation in travis test
jslee02 Aug 9, 2016
6c0a51b
Split broadphase test file into 3 test files
jslee02 Aug 9, 2016
1d938cc
Resolve some uninitialized warnings
jslee02 Aug 9, 2016
b09ea51
Resolve another uninitialized warnings
jslee02 Aug 9, 2016
27cad3d
Fix buld errors on mac
jslee02 Aug 9, 2016
b749c03
Use static member function instead of function operator
jslee02 Aug 9, 2016
3693e16
Use emplace_back where applicapable
jslee02 Aug 9, 2016
1848f9d
Resolve uninitialized warnings
jslee02 Aug 9, 2016
cf9b27a
Template implementation structure rather than templating class
jslee02 Aug 9, 2016
741fd9d
Split octomap test file into 3 test files
jslee02 Aug 9, 2016
b6e3923
Fix build errors for VS2015
jslee02 Aug 9, 2016
4defe92
Add /bigobj option for VS2015
jslee02 Aug 9, 2016
617544e
Merge remote-tracking branch 'origin/master' into templatize
jslee02 Aug 9, 2016
37a3352
Fix return type of SamplerSE3Quat_ball
jslee02 Aug 9, 2016
81743a5
Reduce core number of travis build to 2
jslee02 Aug 9, 2016
ccf6200
Add cmake option for profiler
jslee02 Aug 11, 2016
b9584cf
Optimize code for use of Eigen objects -- still need more investigation
jslee02 Aug 11, 2016
e3e3f17
Fix incorrect use of Eigen noalias() in kIOS
jslee02 Aug 11, 2016
4ed4a1f
Fix profiler test
jslee02 Aug 11, 2016
2efdf3c
Optimize bounding volume classes
jslee02 Aug 11, 2016
f680ed0
Use more noalias() to where applicapable
jslee02 Aug 11, 2016
8f54c25
Use consistent template argument names for shape and BV
jslee02 Aug 11, 2016
dd9195a
Change variable name 'S' to different ones
jslee02 Aug 11, 2016
fbd99a6
Rename scalar template type name to 'S'
jslee02 Aug 11, 2016
23fb71f
Include missing standard library header
jslee02 Aug 11, 2016
aac2c34
Install Octomap for CI test on Mac
jslee02 Aug 11, 2016
05b31c2
Add more build mode preprocessors: RelWithDebInfo and MinSizeRel
jslee02 Aug 11, 2016
a32726a
Fix uninitialized Vector3 in gjk.h
jslee02 Aug 11, 2016
973d18c
Apply more noalias() to gjk solvers
jslee02 Aug 11, 2016
9200965
Rename S1 and S2 to Shape1 and Shape2
jslee02 Aug 11, 2016
3e10055
Use shorter expression to extract scalar type from template argument …
jslee02 Aug 12, 2016
8c63223
Enable test on Windows
jslee02 Aug 12, 2016
d505e4c
Remove custom build config macros since it doesn't work for MSVC and …
jslee02 Aug 12, 2016
6e97ef6
Update code style of spatial hashing collision manager
jslee02 Aug 12, 2016
4e76e8a
Add broadphase test to prevent duplicate pair checking
jslee02 Aug 12, 2016
705c7c8
Fix duplicate pair checking of SpatialHashingCollisionManager
jslee02 Aug 12, 2016
591582b
Fix build error on VS2015
jslee02 Aug 13, 2016
af79525
Update changelog
jslee02 Aug 13, 2016
aca1eda
Add more EIGEN_MAKE_ALIGNED_OPERATOR_NEW to objects contain fixed-siz…
jslee02 Aug 13, 2016
75cca21
Enable Win32 build test on Appveyor
jslee02 Aug 13, 2016
d3d370c
Fix CMake generator to be aware of platform (Win32|x64)
jslee02 Aug 13, 2016
9cb6486
Replace NULL with nullptr
jslee02 Aug 13, 2016
8147545
Use generic types
jslee02 Aug 13, 2016
7db4810
Enable sse2 by default
jslee02 Aug 13, 2016
e3cb308
Merge pull request #158 from flexible-collision-library/nullptr
jslee02 Aug 13, 2016
946b71d
Fix path to libccd and Eigen for Appveyor
jslee02 Aug 13, 2016
40d11e2
Fix accidently changed sse macro
jslee02 Aug 13, 2016
2df9ca6
Merge pull request #157 from flexible-collision-library/appveyor_win32
jslee02 Aug 13, 2016
d6f9031
Merge remote-tracking branch 'origin/fix_spatial_hashing' into sse_de…
jslee02 Aug 13, 2016
87acd29
Update changelog
jslee02 Aug 13, 2016
86ea6c8
Merge remote-tracking branch 'origin/templatize' into fix_spatial_has…
jslee02 Aug 13, 2016
6185099
Use emplace_back where applicable
jslee02 Aug 13, 2016
56f1750
Merge pull request #159 from flexible-collision-library/sse_default
jslee02 Aug 13, 2016
bc091ee
Merge pull request #156 from flexible-collision-library/fix_spatial_h…
jslee02 Aug 14, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ os: Visual Studio 2015
clone_folder: C:\projects\fcl
shallow_clone: true

# branches:
# only:
# - master
platform: x64
# build platform, i.e. Win32 (instead of x86), x64, Any CPU. This setting is optional.
platform:
- Win32
- x64

environment:
CTEST_OUTPUT_ON_FAILURE: 1
Expand All @@ -23,11 +23,15 @@ configuration:
- Release

before_build:
- cmd: if "%platform%"=="Win32" set CMAKE_GENERATOR_NAME=Visual Studio 14 2015
- cmd: if "%platform%"=="x64" set CMAKE_GENERATOR_NAME=Visual Studio 14 2015 Win64
- cmd: if "%platform%"=="Win32" set PROGRAM_FILES_PATH=Program Files (x86)
- cmd: if "%platform%"=="x64" set PROGRAM_FILES_PATH=Program Files
- cmd: if not exist C:\"Program Files"\libccd\lib\ccd.lib (
curl -L -o libccd-2.0.tar.gz https://github.com/danfis/libccd/archive/v2.0.tar.gz &&
cmake -E tar zxf libccd-2.0.tar.gz &&
cd libccd-2.0 &&
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=%Configuration% . &&
cmake -G "%CMAKE_GENERATOR_NAME%" -DCMAKE_BUILD_TYPE=%Configuration% . &&
cmake --build . --target install --config %Configuration% &&
cd ..
) else (echo Using cached libccd)
Expand All @@ -37,19 +41,18 @@ before_build:
cd eigen-eigen-dc6cfdf9bcec &&
mkdir build &&
cd build &&
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=%Configuration% .. &&
cmake -G "%CMAKE_GENERATOR_NAME%" -DCMAKE_BUILD_TYPE=%Configuration% .. &&
cmake --build . --target install --config %Configuration% &&
cd ..\..
) else (echo Using cached Eigen3)
- cmd: set
- cmd: mkdir build
- cmd: cd build
- cmd: cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=%Configuration% -DCCD_INCLUDE_DIRS="C:\Program Files\libccd\include" -DCCD_LIBRARY="C:\Program Files\libccd\lib\ccd.lib" -DEIGEN3_INCLUDE_DIR="C:\Program Files\Eigen\include\eigen3" ..
- cmd: cmake -G "%CMAKE_GENERATOR_NAME%" -DCMAKE_BUILD_TYPE=%Configuration% -DCCD_INCLUDE_DIRS="C:\%PROGRAM_FILES_PATH%\libccd\include" -DCCD_LIBRARY="C:\%PROGRAM_FILES_PATH%\libccd\lib\ccd.lib" -DEIGEN3_INCLUDE_DIR="C:\%PROGRAM_FILES_PATH%\Eigen\include\eigen3" ..

build:
project: C:\projects\fcl\build\fcl.sln
parallel: true

# tests seem to hang
# test_script:
# - cmd: ctest -C %Configuration%
test_script:
- cmd: ctest -C %Configuration%
7 changes: 1 addition & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ matrix:
- os: osx
compiler: gcc

addons:
apt:
packages:
- libboost-all-dev

install:
# Install dependencies for FCL
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then 'ci/install_linux.sh' ; fi
Expand All @@ -41,7 +36,7 @@ script:
- cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DFCL_COVERALLS=$COVERALLS ..

# Build
- make -j4
- make -j2
- if [ $COVERALLS = ON ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then make coveralls; fi

# Run unit tests
Expand Down
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

### FCL 0.6.0 (2016-XX-XX)

* Switched to Eigen for math operations: [#150](https://github.com/flexible-collision-library/fcl/pull/150), [#96](https://github.com/flexible-collision-library/fcl/issues/96)
* Added missing copyright headers: [#149](https://github.com/flexible-collision-library/fcl/pull/149)
* Enabled build with SSE option by default: [#159](https://github.com/flexible-collision-library/fcl/pull/159)
* Switched to Eigen for math operations: [#150](https://github.com/flexible-collision-library/fcl/pull/150), [#96](https://github.com/flexible-collision-library/fcl/issues/96)
* Fixed redundant pair checking of SpatialHashingCollisionManager: [#156](https://github.com/flexible-collision-library/fcl/pull/156)
* Removed dependency on boost: [#148](https://github.com/flexible-collision-library/fcl/pull/148), [#147](https://github.com/flexible-collision-library/fcl/pull/147), [#146](https://github.com/flexible-collision-library/fcl/pull/146), [#140](https://github.com/flexible-collision-library/fcl/pull/140)

### FCL 0.5.0 (2016-07-19)
Expand Down
25 changes: 6 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,12 @@ endif()

project(fcl CXX C)

option(FCL_ENABLE_PROFILING "Enable profiling" OFF)
option(FCL_TREAT_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)

# set the default build type
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()

# Set build type variable
set(FCL_BUILD_TYPE_RELEASE FALSE)
set(FCL_BUILD_TYPE_DEBUG FALSE)

string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPERCASE)
if("${CMAKE_BUILD_TYPE_UPPERCASE}" STREQUAL "RELEASE")
set(FCL_BUILD_TYPE_RELEASE TRUE)
elseif("${CMAKE_BUILD_TYPE_UPPERCASE}" STREQUAL "DEBUG")
set(FCL_BUILD_TYPE_DEBUG TRUE)
else()
message(STATUS "CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} unknown. Valid options are: Debug Release")
if (NOT MSVC AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()

# This shouldn't be necessary, but there has been trouble
Expand All @@ -48,14 +36,13 @@ else()
endif()

# Whether to enable SSE
option(FCL_USE_SSE "Whether FCL should SSE instructions" OFF)
set(FCL_HAVE_SSE 0)
option(FCL_USE_SSE "Whether FCL should SSE instructions" ON)
if(FCL_USE_SSE)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(FCL_HAVE_SSE 0) #always disable, for now
add_definitions(-march=native)
elseif(MSVC)
add_definitions(/arch:SSE2)
endif()
# TODO: do something similar for other compilers
endif()

# Coveralls support
Expand Down
4 changes: 2 additions & 2 deletions CMakeModules/CompilerSettings.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# GCC
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=c++11 -W -Wall -g -Wextra -Wno-missing-field-initializers -Wno-unused-parameter)
add_definitions(-std=c++11 -W -Wall -g -Wextra -Wpedantic -Wno-missing-field-initializers -Wno-unused-parameter)
if(FCL_TREAT_WARNINGS_AS_ERRORS)
add_definitions(-Werror)
endif(FCL_TREAT_WARNINGS_AS_ERRORS)
Expand All @@ -16,7 +16,7 @@ endif()

# Visual Studio
if(MSVC OR MSVC90 OR MSVC10)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /MP /W1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /MP /W1 /bigobj")
if(FCL_TREAT_WARNINGS_AS_ERRORS)
add_definitions(/WX)
endif(FCL_TREAT_WARNINGS_AS_ERRORS)
Expand Down
10 changes: 10 additions & 0 deletions ci/install_osx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ brew install git
brew install cmake
brew install eigen
brew install libccd

# Octomap
git clone https://github.com/OctoMap/octomap
cd octomap
git checkout tags/v1.8.0
mkdir build
cd build
cmake ..
make
sudo make install
Loading