3#include <wmtk/envelope/Envelope.hpp>
9namespace wmtk::components::topological_offset {
33 : m_members(std::move(members))
36 bool is_outside(
const std::array<Eigen::Vector3d, 3>& tris)
const override
38 for (
const auto& e : m_members) {
39 if (e->is_outside(tris))
return true;
44 bool is_outside(
const Eigen::Vector3d& pts)
const override
46 for (
const auto& e : m_members) {
47 if (e->is_outside(pts))
return true;
52 bool is_outside(
const std::array<Eigen::Vector2d, 2>& edge)
const override
54 for (
const auto& e : m_members) {
55 if (e->is_outside(edge))
return true;
60 bool is_outside(
const Eigen::Vector2d& pts)
const override
62 for (
const auto& e : m_members) {
63 if (e->is_outside(pts))
return true;
68 const std::vector<std::shared_ptr<SampleEnvelope>>& members()
const {
return m_members; }
71 std::vector<std::shared_ptr<SampleEnvelope>> m_members;
80 explicit UnionEnvelope(std::vector<std::shared_ptr<SampleEnvelope>> members)
81 : m_members(std::move(members))
84 bool is_outside(
const std::array<Eigen::Vector3d, 3>& tris)
const override
86 for (
const auto& e : m_members) {
87 if (!e->is_outside(tris))
return false;
92 bool is_outside(
const Eigen::Vector3d& pts)
const override
94 for (
const auto& e : m_members) {
95 if (!e->is_outside(pts))
return false;
100 bool is_outside(
const std::array<Eigen::Vector2d, 2>& edge)
const override
102 for (
const auto& e : m_members) {
103 if (!e->is_outside(edge))
return false;
108 bool is_outside(
const Eigen::Vector2d& pts)
const override
110 for (
const auto& e : m_members) {
111 if (!e->is_outside(pts))
return false;
117 std::vector<std::shared_ptr<SampleEnvelope>> m_members;
Definition Envelope.hpp:52
Definition TagEnvelopes.hpp:30
bool is_outside(const std::array< Eigen::Vector2d, 2 > &edge) const override
Definition TagEnvelopes.hpp:52
Definition TagEnvelopes.hpp:78
bool is_outside(const std::array< Eigen::Vector2d, 2 > &edge) const override
Definition TagEnvelopes.hpp:100