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
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
|