diff --git a/Tests/UnitTests/Core/Utilities/BoundingBoxTest.cpp b/Tests/UnitTests/Core/Utilities/BoundingBoxTest.cpp index 675d7d49320..b65d533acfa 100644 --- a/Tests/UnitTests/Core/Utilities/BoundingBoxTest.cpp +++ b/Tests/UnitTests/Core/Utilities/BoundingBoxTest.cpp @@ -37,13 +37,11 @@ namespace Acts::Test { struct Object {}; -using BoundingBoxScalar = ActsScalar; +using ObjectBBox = Acts::AxisAlignedBoundingBox<Object, double, 3>; -using ObjectBBox = Acts::AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - -using Vector2F = Eigen::Matrix<BoundingBoxScalar, 2, 1>; -using Vector3F = Eigen::Matrix<BoundingBoxScalar, 3, 1>; -using AngleAxis3F = Eigen::AngleAxis<BoundingBoxScalar>; +using Vector2F = Eigen::Matrix<double, 2, 1>; +using Vector3F = Eigen::Matrix<double, 3, 1>; +using AngleAxis3F = Eigen::AngleAxis<double>; std::filesystem::path tmp_path = []() { auto tmpPath = std::filesystem::temp_directory_path() / "acts_unit_tests"; @@ -59,11 +57,11 @@ std::ofstream tmp(const std::string& path) { BOOST_AUTO_TEST_CASE(box_construction) { BOOST_TEST_CONTEXT("2D") { Object o; - using Box = Acts::AxisAlignedBoundingBox<Object, BoundingBoxScalar, 2>; + using Box = Acts::AxisAlignedBoundingBox<Object, double, 2>; Box bb(&o, {-1, -1}, {2, 2}); typename Box::transform_type rot; - rot = Eigen::Rotation2D<BoundingBoxScalar>(std::numbers::pi / 7.); + rot = Eigen::Rotation2D<double>(std::numbers::pi / 7.); Box bb_rot = bb.transformed(rot); CHECK_CLOSE_ABS(bb_rot.min(), Vector2F(-1.76874, -1.33485), 1e-4); @@ -72,7 +70,7 @@ BOOST_AUTO_TEST_CASE(box_construction) { BOOST_TEST_CONTEXT("3D") { Object o; - using Box = Acts::AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; + using Box = Acts::AxisAlignedBoundingBox<Object, double, 3>; Box bb(&o, {-1, -1, -1}, {2, 2, 2}); typename Box::transform_type rot; @@ -141,14 +139,14 @@ BOOST_AUTO_TEST_CASE(intersect_points) { BOOST_AUTO_TEST_CASE(intersect_rays) { BOOST_TEST_CONTEXT("2D") { - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 2>; + using Box = AxisAlignedBoundingBox<Object, double, 2>; Object o; Box bb(&o, {-1, -1}, {1, 1}); // ray in positive x direction - Ray<BoundingBoxScalar, 2> ray({-2, 0}, {1, 0}); + Ray<double, 2> ray({-2, 0}, {1, 0}); BOOST_CHECK(bb.intersect(ray)); ray = {{-2, 2}, {1, 0}}; @@ -273,10 +271,10 @@ BOOST_AUTO_TEST_CASE(intersect_rays) { // let's make sure it also works in 3d ObjectBBox bb3(&o, {-1, -1, -1}, {1, 1, 1}); - Ray<BoundingBoxScalar, 3> ray3({0, 0, -2}, {0, 0, 1}); + Ray<double, 3> ray3({0, 0, -2}, {0, 0, 1}); BOOST_CHECK(bb3.intersect(ray3)); - PlyVisualization3D<BoundingBoxScalar> ply; + PlyVisualization3D<double> ply; ray3.draw(ply); auto os = tmp("ray3d.ply"); @@ -290,7 +288,7 @@ BOOST_AUTO_TEST_CASE(intersect_rays) { // let's make sure it also works in 3d ObjectBBox bb3(&o, {-1, -1, -1}, {1, 1, 1}); - Ray<BoundingBoxScalar, 3> ray3({0, 0, -2}, {0, 0, 1}); + Ray<double, 3> ray3({0, 0, -2}, {0, 0, 1}); BOOST_CHECK(bb3.intersect(ray3)); // facing away from box @@ -451,7 +449,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { return os; }; - using Frustum2 = Frustum<BoundingBoxScalar, 2, 2>; + using Frustum2 = Frustum<double, 2, 2>; std::ofstream os; @@ -460,19 +458,18 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { const std::size_t nSteps = 10; // Visualise the parameters - const BoundingBoxScalar min = -20; - const BoundingBoxScalar max = 20; + const double min = -20; + const double max = 20; os = make_svg("frust2d_parameters.svg", svgWidth, svgHeight); - const BoundingBoxScalar step = (max - min) / nSteps; + const double step = (max - min) / nSteps; for (std::size_t i = 0; i <= nSteps; i++) { for (std::size_t j = 0; j <= nSteps; j++) { Vector2F dir(1, 0); Vector2F origin(min + step * i, min + step * j); origin.x() *= 1.10; - Eigen::Rotation2D<BoundingBoxScalar> rot(2 * std::numbers::pi / nSteps * - i); - BoundingBoxScalar angle = std::numbers::pi / 2. / nSteps * j; + Eigen::Rotation2D<double> rot(2 * std::numbers::pi / nSteps * i); + double angle = std::numbers::pi / 2. / nSteps * j; Frustum2 fr(origin, rot * dir, angle); fr.svg(os, svgWidth, svgHeight, 2); } @@ -481,18 +478,18 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { os << "</svg>"; os.close(); - const BoundingBoxScalar unit = 20; + const double unit = 20.; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 2>; + using Box = AxisAlignedBoundingBox<Object, double, 2>; Object o; - Box::Size size(Eigen::Matrix<BoundingBoxScalar, 2, 1>(2, 2)); + Box::Size size(Eigen::Matrix<double, 2, 1>(2, 2)); - const BoundingBoxScalar minX = -20; - const BoundingBoxScalar minY = -20; - const BoundingBoxScalar maxX = 20; - const BoundingBoxScalar maxY = 20; - const BoundingBoxScalar stepX = (maxX - minX) / nSteps; - const BoundingBoxScalar stepY = (maxY - minY) / nSteps; + const double minX = -20.; + const double minY = -20.; + const double maxX = 20.; + const double maxY = 20.; + const double stepX = (maxX - minX) / nSteps; + const double stepY = (maxY - minY) / nSteps; std::set<std::size_t> idxsAct; @@ -579,10 +576,10 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { boxes.reserve((nSteps + 1) * (nSteps + 1)); for (std::size_t i = 0; i <= nSteps; i++) { for (std::size_t j = 0; j <= nSteps; j++) { - boxes.emplace_back(&o, - Eigen::Matrix<BoundingBoxScalar, 2, 1>{ - minX + i * stepX, minY + j * stepY}, - size); + boxes.emplace_back( + &o, + Eigen::Matrix<double, 2, 1>{minX + i * stepX, minY + j * stepY}, + size); std::stringstream st; st << boxes.size() - 1; @@ -605,9 +602,9 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { } } - PlyVisualization3D<BoundingBoxScalar> helper; + PlyVisualization3D<double> helper; BOOST_TEST_CONTEXT("3D - 3 Sides") { - using Frustum3 = Frustum<BoundingBoxScalar, 3, 3>; + using Frustum3 = Frustum<double, 3, 3>; std::ofstream os; std::size_t n = 10; const std::size_t nSteps = 5; @@ -619,7 +616,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { auto make = [&](double angle, const Vector3F& origin, std::ofstream& osTmp) { helper.clear(); - BoundingBoxScalar far = 1; + double far = 1.; Frustum3 fr(origin, {0, 0, 1}, angle); fr.draw(helper, far); fr = Frustum3(origin, {0, 0, -1}, angle); @@ -655,7 +652,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { for (std::size_t i = 0; i <= n; i++) { Vector3F origin(i * 4, 0, 0); AngleAxis3F rot(std::numbers::pi / n * i, Vector3F::UnitY()); - BoundingBoxScalar angle = (std::numbers::pi / 2.) / n * (1 + i); + double angle = (std::numbers::pi / 2.) / n * (1 + i); Vector3F dir(1, 0, 0); Frustum3 fr(origin, rot * dir, angle); fr.draw(helper, 2); @@ -850,16 +847,16 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { step = (max - min) / n; Object o; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - Box::Size size(Eigen::Matrix<BoundingBoxScalar, 3, 1>(2, 2, 2)); + using Box = AxisAlignedBoundingBox<Object, double, 3>; + Box::Size size(Eigen::Matrix<double, 3, 1>(2, 2, 2)); std::size_t idx = 0; for (std::size_t i = 0; i <= n; i++) { for (std::size_t j = 0; j <= n; j++) { for (std::size_t k = 0; k <= n; k++) { - Eigen::Matrix<BoundingBoxScalar, 3, 1> pos( - min + i * step, min + j * step, min + k * step); + Eigen::Matrix<double, 3, 1> pos(min + i * step, min + j * step, + min + k * step); Box bb(&o, pos, size); Color color = {255, 0, 0}; @@ -883,7 +880,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { } BOOST_TEST_CONTEXT("3D - 4 Sides") { - using Frustum34 = Frustum<BoundingBoxScalar, 3, 4>; + using Frustum34 = Frustum<double, 3, 4>; const std::size_t n = 10; double min = -10; double max = 10; @@ -902,7 +899,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { Vector3F origin(min + i * step, min + j * step, min + k * step); Vector3F dir(1, 0, 0); - BoundingBoxScalar piOverS = std::numbers::pi_v<BoundingBoxScalar> / s; + double piOverS = std::numbers::pi / s; AngleAxis3F rot; rot = AngleAxis3F(piOverS * i, Vector3F::UnitX()) * AngleAxis3F(piOverS * j, Vector3F::UnitY()) * @@ -1104,15 +1101,15 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { fr.draw(helper, 50); Object o; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - Box::Size size(Eigen::Matrix<BoundingBoxScalar, 3, 1>(2, 2, 2)); + using Box = AxisAlignedBoundingBox<Object, double, 3>; + Box::Size size(Eigen::Matrix<double, 3, 1>(2, 2, 2)); std::size_t idx = 0; for (std::size_t i = 0; i <= n; i++) { for (std::size_t j = 0; j <= n; j++) { for (std::size_t k = 0; k <= n; k++) { - Eigen::Matrix<BoundingBoxScalar, 3, 1> pos( - min + i * step, min + j * step, min + k * step); + Eigen::Matrix<double, 3, 1> pos(min + i * step, min + j * step, + min + k * step); Box bb(&o, pos, size); Color color = {255, 0, 0}; @@ -1136,13 +1133,13 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { } BOOST_TEST_CONTEXT("3D - 5 Sides") { - using Frustum = Frustum<BoundingBoxScalar, 3, 5>; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - Box::Size size(Eigen::Matrix<BoundingBoxScalar, 3, 1>(2, 2, 2)); + using Frustum = Frustum<double, 3, 5>; + using Box = AxisAlignedBoundingBox<Object, double, 3>; + Box::Size size(Acts::Vector3(2, 2, 2)); Object o; - PlyVisualization3D<BoundingBoxScalar> ply; + PlyVisualization3D<double> ply; Frustum fr({0, 0, 0}, {0, 0, 1}, std::numbers::pi / 8.); fr.draw(ply, 10); @@ -1158,17 +1155,16 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { } BOOST_TEST_CONTEXT("3D - 10 Sides") { - using Frustum = Frustum<BoundingBoxScalar, 3, 10>; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - using vec3 = Eigen::Matrix<BoundingBoxScalar, 3, 1>; - Box::Size size(vec3(2, 2, 2)); + using Frustum = Frustum<double, 3, 10>; + using Box = AxisAlignedBoundingBox<Object, double, 3>; + Box::Size size(Acts::Vector3(2, 2, 2)); Object o; - PlyVisualization3D<BoundingBoxScalar> ply; + PlyVisualization3D<double> ply; - vec3 pos = {-12.4205, 29.3578, 44.6207}; - vec3 dir = {-0.656862, 0.48138, 0.58035}; + Acts::Vector3 pos = {-12.4205, 29.3578, 44.6207}; + Acts::Vector3 dir = {-0.656862, 0.48138, 0.58035}; Frustum fr(pos, dir, 0.972419); fr.draw(ply, 10); @@ -1183,20 +1179,19 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { } BOOST_TEST_CONTEXT("3D - 4 Sides - Big box") { - using Frustum = Frustum<BoundingBoxScalar, 3, 4>; - using Box = AxisAlignedBoundingBox<Object, BoundingBoxScalar, 3>; - using vec3 = Eigen::Matrix<BoundingBoxScalar, 3, 1>; + using Frustum = Frustum<double, 3, 4>; + using Box = AxisAlignedBoundingBox<Object, double, 3>; Object o; - PlyVisualization3D<BoundingBoxScalar> ply; + PlyVisualization3D<double> ply; - vec3 pos = {0, 0, 0}; - vec3 dir = {0, 0, 1}; + Acts::Vector3 pos = {0, 0, 0}; + Acts::Vector3 dir = {0, 0, 1}; Frustum fr(pos, dir, 0.972419); fr.draw(ply, 10); - Box::Size size(vec3(100, 100, 2)); + Box::Size size(Acts::Vector3(100, 100, 2)); Box bb(&o, pos + dir * 7, size); bb.draw(ply); @@ -1210,7 +1205,7 @@ BOOST_AUTO_TEST_CASE(frustum_intersect) { BOOST_AUTO_TEST_CASE(ostream_operator) { Object o; - using Box = Acts::AxisAlignedBoundingBox<Object, BoundingBoxScalar, 2>; + using Box = Acts::AxisAlignedBoundingBox<Object, double, 2>; Box bb(&o, {-1, -1}, {2, 2}); std::stringstream ss;