Wildmeshing Toolkit
Loading...
Searching...
No Matches
EnvelopeInvariant.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "Invariant.hpp"
4
5
6#include <memory>
9
10namespace fastEnvelope {
11class FastEnvelope;
12}
13namespace SimpleBVH {
14class BVH;
15}
16
17namespace wmtk::invariants {
18
20{
21public:
23 const attribute::MeshAttributeHandle& envelope_mesh_coordinate,
24 double envelope_size,
25 const attribute::MeshAttributeHandle& coordinate);
26
27 bool after(
28 const std::vector<Tuple>& top_dimension_tuples_before,
29 const std::vector<Tuple>& top_dimension_tuples_after) const override;
30
31private:
32 std::shared_ptr<fastEnvelope::FastEnvelope> m_envelope = nullptr;
33 std::shared_ptr<SimpleBVH::BVH> m_bvh = nullptr;
35
36 const double m_envelope_size;
37};
38} // namespace wmtk::invariants
std::shared_ptr< fastEnvelope::FastEnvelope > m_envelope
bool after(const std::vector< Tuple > &top_dimension_tuples_before, const std::vector< Tuple > &top_dimension_tuples_after) const override
std::shared_ptr< SimpleBVH::BVH > m_bvh
const attribute::MeshAttributeHandle m_coordinate_handle