diff --git a/gcc/CMakeLists.txt b/gcc/CMakeLists.txt index 5b0025d..9b10168 100644 --- a/gcc/CMakeLists.txt +++ b/gcc/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(octree) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") +find_package(TBB REQUIRED COMPONENTS tbb) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTBB_ENABLE_IPO=off -std=c++20") include_directories(../) add_executable(octree main.cpp) +target_link_libraries(octree tbb) \ No newline at end of file diff --git a/octree.h b/octree.h index d7f514d..cbb3825 100644 --- a/octree.h +++ b/octree.h @@ -862,7 +862,7 @@ namespace OrthoTree struct BoxDistance : ItemDistance { MortonNodeID NodeKey; - Node const& Node; + Node const& NodeReference; }; template @@ -1836,11 +1836,11 @@ namespace OrthoTree using Node = typename Base::Node; - using TGeometry = typename TGeometry_; - using TVector = typename TVector_; - using TBox = typename TBox_; - using TRay = typename TRay_; - using TPlane = typename TPlane_; + using TGeometry = TGeometry_; + using TVector = TVector_; + using TBox = TBox_; + using TRay = TRay_; + using TPlane = TPlane_; static constexpr std::size_t DEFAULT_MAX_ELEMENT = 21; @@ -2182,7 +2182,7 @@ namespace OrthoTree if (neighborNo <= n && rLatestNodeDist < nodeDist.Distance) break; - createEntityDistance(nodeDist.Node, searchPoint, points, neighborEntities); + createEntityDistance(nodeDist.NodeReference, searchPoint, points, neighborEntities); rLatestNodeDist = getFarestDistance(neighborEntities, neighborNo); } } @@ -2223,11 +2223,11 @@ namespace OrthoTree using Node = typename Base::Node; - using TGeometry = typename TGeometry_; - using TVector = typename TVector_; - using TBox = typename TBox_; - using TRay = typename TRay_; - using TPlane = typename TPlane_; + using TGeometry = TGeometry_; + using TVector = TVector_; + using TBox = TBox_; + using TRay = TRay_; + using TPlane = TPlane_; static constexpr std::size_t DEFAULT_MAX_ELEMENT = 21; @@ -3249,7 +3249,7 @@ namespace OrthoTree } for (autoc& nodeDistance : nodeDistances) - getRayIntersectedFirst(nodeDistance.Node, boxes, rayBasePoint, rayHeading, tolerance, foundEntities); + getRayIntersectedFirst(nodeDistance.NodeReference, boxes, rayBasePoint, rayHeading, tolerance, foundEntities); }