occ
Loading...
Searching...
No Matches
occ::geometry::mc::impl Namespace Reference

Classes

struct  Edge
struct  EdgeHash
struct  has_batch_evaluate
struct  has_batch_evaluate< T, std::void_t< decltype(std::declval< T >().batch(std::declval< Eigen::Ref< const FMat3N > >(), std::declval< Eigen::Ref< FVec > >()))> >
struct  has_basis_transform
struct  has_basis_transform< T, std::void_t< decltype(std::declval< T >().basis_transform())> >
struct  has_point_evaluate
struct  has_point_evaluate< T, std::void_t< decltype(std::declval< const T & >()(std::declval< const FVec3 & >()))> >
struct  EdgeCrossing

Functions

template<typename E>
void march_cube (const std::array< float, 8 > &values, E &edge_func)
constexpr float get_offset (float a, float b)
template<typename T>
T interpolate (T a, T b, float t)
template<typename S>
float eval_point (const S &source, const FVec3 &p)
template<typename S, typename E>
void refine_and_emit (const S &source, const std::vector< EdgeCrossing > &crossings, float isovalue, int steps, E &extract_fn)

Variables

const size_t CUBE_REMAP [8] = {2, 3, 1, 0, 6, 7, 5, 4}
constexpr float sqrt_3 = 1.73205080757

Function Documentation

◆ eval_point()

template<typename S>
float occ::geometry::mc::impl::eval_point ( const S & source,
const FVec3 & p )
inline

◆ get_offset()

float occ::geometry::mc::impl::get_offset ( float a,
float b )
inlineconstexpr

◆ interpolate()

template<typename T>
T occ::geometry::mc::impl::interpolate ( T a,
T b,
float t )

◆ march_cube()

template<typename E>
void occ::geometry::mc::impl::march_cube ( const std::array< float, 8 > & values,
E & edge_func )

◆ refine_and_emit()

template<typename S, typename E>
void occ::geometry::mc::impl::refine_and_emit ( const S & source,
const std::vector< EdgeCrossing > & crossings,
float isovalue,
int steps,
E & extract_fn )

Variable Documentation

◆ CUBE_REMAP

const size_t occ::geometry::mc::impl::CUBE_REMAP[8] = {2, 3, 1, 0, 6, 7, 5, 4}

◆ sqrt_3

float occ::geometry::mc::impl::sqrt_3 = 1.73205080757
constexpr