diff --git a/scripts/uberenv b/scripts/uberenv index 08476b7f58..e7dd3d924a 160000 --- a/scripts/uberenv +++ b/scripts/uberenv @@ -1 +1 @@ -Subproject commit 08476b7f58cf7a6ac171241351ac6b09b16b9111 +Subproject commit e7dd3d924acc515f46c25bb8caf76c698bb5891d diff --git a/src/axom/quest/CMakeLists.txt b/src/axom/quest/CMakeLists.txt index 26d05bd87f..c7c63590ed 100644 --- a/src/axom/quest/CMakeLists.txt +++ b/src/axom/quest/CMakeLists.txt @@ -38,9 +38,6 @@ set( quest_headers detail/inout/InOutOctreeStats.hpp detail/inout/InOutOctreeValidator.hpp - ## Marching cubes - detail/MarchingCubesImpl.hpp - # Mesh tester MeshTester.hpp detail/MeshTester_detail.hpp @@ -110,7 +107,7 @@ endif() blt_list_append( TO quest_headers - ELEMENTS MarchingCubes.hpp + ELEMENTS MarchingCubes.hpp detail/MarchingCubesImpl.hpp IF CONDUIT_FOUND ) diff --git a/src/axom/quest/MarchingCubes.cpp b/src/axom/quest/MarchingCubes.cpp index 2deb015383..528778d0c3 100644 --- a/src/axom/quest/MarchingCubes.cpp +++ b/src/axom/quest/MarchingCubes.cpp @@ -197,7 +197,7 @@ void MarchingCubesSingleDomain::computeIsocontour(double contourVal) m_impl->setContourValue(contourVal); m_impl->markCrossings(); m_impl->scanCrossings(); - m_impl->computeContpur(); + m_impl->computeContour(); } void MarchingCubesSingleDomain::allocateImpl() diff --git a/src/axom/quest/MarchingCubes.hpp b/src/axom/quest/MarchingCubes.hpp index 5ddfa593f9..94950c4aed 100644 --- a/src/axom/quest/MarchingCubes.hpp +++ b/src/axom/quest/MarchingCubes.hpp @@ -75,6 +75,9 @@ class MarchingCubesSingleDomain; * \@brief Class implementing marching cubes to compute a contour * mesh from a scalar function on an input mesh. * + * This implementation is for the original algorithm of Lorensen and + * Cline, 1987. + * * Implementation is for 2D (marching squares) and 3D (marching * cubes). * @@ -335,7 +338,7 @@ class MarchingCubesSingleDomain //!@brief Precompute some metadata for contour mesh. virtual void scanCrossings() = 0; //!@brief Generate the contour mesh in internal data format. - virtual void computeContpur() = 0; + virtual void computeContour() = 0; //!@brief Get the number of contour mesh cells generated. //@} virtual axom::IndexType getContourCellCount() const = 0; diff --git a/src/axom/quest/detail/MarchingCubesImpl.hpp b/src/axom/quest/detail/MarchingCubesImpl.hpp index 9fef061c78..45f2f18471 100644 --- a/src/axom/quest/detail/MarchingCubesImpl.hpp +++ b/src/axom/quest/detail/MarchingCubesImpl.hpp @@ -7,18 +7,11 @@ #include "axom/quest/MarchingCubes.hpp" #include "axom/quest/detail/marching_cubes_lookup.hpp" #include "axom/primal/geometry/Point.hpp" +#include "axom/primal/constants.hpp" #include "axom/mint/execution/internal/structured_exec.hpp" #include "conduit_blueprint.hpp" #include "axom/fmt.hpp" -#ifndef __WHERE - #define __STRINGIZE(x) __STRINGIZE2(x) - #define __STRINGIZE2(x) #x - //!@brief String literal for code location - #define __WHERE \ - __FILE__ ":" __STRINGIZE(__LINE__) "(" + std::string(__func__) + ") " -#endif - namespace axom { namespace quest @@ -328,7 +321,7 @@ class MarchingCubesImpl : public MarchingCubesSingleDomain::ImplBase num_contour_cells(m_crossings.back().caseNum); } - void computeContpur() override + void computeContour() override { auto crossingsView = m_crossings.view(); @@ -596,7 +589,7 @@ class MarchingCubesImpl : public MarchingCubesSingleDomain::ImplBase } // STEP 3: point is in between the edge points, interpolate its position - constexpr double ptiny = 1.0e-80; + constexpr double ptiny = axom::primal::PRIMAL_TINY; const double df = f2 - f1 + ptiny; //add ptiny to avoid division by zero const double w = (m_contourVal - f1) / df; for(int d = 0; d < DIM; ++d) @@ -648,7 +641,7 @@ class MarchingCubesImpl : public MarchingCubesSingleDomain::ImplBase } // STEP 3: point is not at corner; interpolate its position - constexpr double ptiny = 1.0e-80; + constexpr double ptiny = axom::primal::PRIMAL_TINY; const double df = f2 - f1 + ptiny; //add ptiny to avoid division by zero const double w = (m_contourVal - f1) / df; for(int d = 0; d < DIM; ++d) diff --git a/src/axom/quest/examples/quest_marching_cubes_example.cpp b/src/axom/quest/examples/quest_marching_cubes_example.cpp index 4ecbba6d89..31d7b8107a 100644 --- a/src/axom/quest/examples/quest_marching_cubes_example.cpp +++ b/src/axom/quest/examples/quest_marching_cubes_example.cpp @@ -45,14 +45,6 @@ #include #include -#ifndef __WHERE - #define __STRINGIZE(x) __STRINGIZE2(x) - #define __STRINGIZE2(x) #x - //!@brief String literal for code location - #define __WHERE \ - __FILE__ ":" __STRINGIZE(__LINE__) "(" + std::string(__func__) + ") " -#endif - namespace quest = axom::quest; namespace slic = axom::slic; namespace mint = axom::mint; @@ -86,7 +78,7 @@ struct Input std::vector inPlane; std::vector perpDir; - size_t ndim {0}; + std::size_t ndim {0}; // TODO: Ensure that fcnCenter, inPlane and perpDir sizes match dimensionality. diff --git a/src/cmake/blt b/src/cmake/blt index 92450b0d4e..5644d546bb 160000 --- a/src/cmake/blt +++ b/src/cmake/blt @@ -1 +1 @@ -Subproject commit 92450b0d4e4ccb534b9f69b6214ab31633cdd9d1 +Subproject commit 5644d546bbc168020e8c6b8e63987ad52ae9a9d1