extract explicit mesh with topology information from implicit surfaces with boolean operations, and do surface/volume integrating on them.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
935 B

#pragma once
#include <base/subface.hpp>
#include <primitive_descriptor.h>
#include <primitive/axis/extrude_axis.hpp>
#include <primitive/pattern/pattern.hpp>
namespace internal
{
// u: the param of pattern
// v: the param of extrude axis
struct extrude_side_face_t final : subface {
};
} // namespace internal
namespace detail
{
template <>
struct hasher<internal::extrude_side_face_t> {
size_t operator()(const internal::extrude_side_face_t& subface) const { return XXH3_64bits(&subface, sizeof(subface)); }
};
template <>
struct eq_compare<internal::extrude_side_face_t> {
bool operator()(const internal::extrude_side_face_t& lhs, const internal::extrude_side_face_t& rhs) const
{
return eq_funcs(lhs.local_to_world, rhs.local_to_world) && lhs.additional_structure[0] == rhs.additional_structure[0]
&& lhs.additional_structure[1] == rhs.additional_structure[1];
}
};
} // namespace detail