Files

13 lines
1.1 KiB
C++
Raw Permalink Normal View History

#include <gtest/gtest.h>
#include "vde/mesh/parallel_mc.h"
#include "vde/core/aabb.h"
#include <cmath>
using namespace vde::mesh;
using vde::core::AABB3D;
static double sphere_sdf(double x, double y, double z) { return std::sqrt(x*x+y*y+z*z)-1.0; }
TEST(ParallelMCTest, SphereBasic) { AABB3D b({-2,-2,-2},{2,2,2}); ParallelMCConfig c{32}; auto m=parallel_marching_cubes(sphere_sdf,b,c); EXPECT_GT(m.num_vertices(),0u); }
TEST(ParallelMCTest, SphereHighRes) { AABB3D b({-2,-2,-2},{2,2,2}); auto m=parallel_marching_cubes(sphere_sdf,b,{64}); EXPECT_GT(m.num_faces(),0u); }
TEST(ParallelMCTest, EmptySpace) { AABB3D b({5,5,5},{6,6,6}); auto m=parallel_marching_cubes(sphere_sdf,b,{16}); EXPECT_EQ(m.num_faces(),0u); }
TEST(ParallelMCTest, AdaptiveSphere) { AABB3D b({-2,-2,-2},{2,2,2}); ParallelMCConfig c{32,0,true,0.05,3}; auto m=parallel_adaptive_mc(sphere_sdf,b,c); EXPECT_GT(m.num_vertices(),0u); }
TEST(ParallelMCTest, CustomThreads) { AABB3D b({-1.5,-1.5,-1.5},{1.5,1.5,1.5}); ParallelMCConfig c{32,2}; auto m=parallel_marching_cubes(sphere_sdf,b,c); EXPECT_GT(m.num_faces(),0u); }