Wildmeshing Toolkit
Loading...
Searching...
No Matches
ProjectOperation.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <memory>
6
7namespace SimpleBVH {
8class BVH;
9}
10
13{
14public:
16 std::pair<attribute::MeshAttributeHandle, attribute::MeshAttributeHandle>;
17
19 std::shared_ptr<Operation> main_op,
20 const attribute::MeshAttributeHandle& project_to_mesh,
21 attribute::MeshAttributeHandle& child_mesh_coordinates);
22
24 std::shared_ptr<Operation> main_op,
25 const std::vector<MeshConstrainPair>& mesh_constaint_pairs);
26
27 std::vector<simplex::Simplex> execute(const simplex::Simplex& simplex) override;
28 PrimitiveType primitive_type() const override { return m_main_op->primitive_type(); }
29
30
31private:
33 std::pair<attribute::MeshAttributeHandle, std::shared_ptr<SimpleBVH::BVH>>;
34
35 const std::shared_ptr<wmtk::operations::Operation> m_main_op;
36 std::vector<BVHConstrainPair> m_bvh;
37};
38} // namespace wmtk::operations::composite
PrimitiveType primitive_type() const override
std::pair< attribute::MeshAttributeHandle, std::shared_ptr< SimpleBVH::BVH > > BVHConstrainPair
const std::shared_ptr< wmtk::operations::Operation > m_main_op
std::vector< simplex::Simplex > execute(const simplex::Simplex &simplex) override
returns an empty vector in case of failure
std::pair< attribute::MeshAttributeHandle, attribute::MeshAttributeHandle > MeshConstrainPair