Wildmeshing Toolkit
Loading...
Searching...
No Matches
EdgeMeshOperationExecutor.hpp
Go to the documentation of this file.
1#pragma once
4#include "EdgeMesh.hpp"
5#include "Tuple.hpp"
6namespace wmtk {
8{
9public:
10 EdgeMeshOperationExecutor(EdgeMesh& m, const Tuple& operating_tuple);
11 void delete_simplices();
12
13 std::array<attribute::FlagAccessor<EdgeMesh>, 2> flag_accessors;
17
25 static const std::array<std::vector<int64_t>, 2> get_split_simplices_to_delete(
26 const Tuple& tuple,
27 const EdgeMesh& m);
28
36 static const std::array<std::vector<int64_t>, 2> get_collapse_simplices_to_delete(
37 const Tuple& tuple,
38 const EdgeMesh& m);
39
40 const std::array<int64_t, 2>& incident_vids() const { return m_spine_vids; }
41
42 int64_t operating_edge_id() const { return m_operating_edge_id; }
43
44 void split_edge();
45 void collapse_edge();
48
49 std::vector<int64_t> request_simplex_indices(const PrimitiveType type, int64_t count);
50
52
53
54private:
55};
56} // namespace wmtk
std::array< attribute::FlagAccessor< EdgeMesh >, 2 > flag_accessors
const std::array< int64_t, 2 > & incident_vids() const
attribute::Accessor< int64_t, EdgeMesh > ee_accessor
std::vector< int64_t > request_simplex_indices(const PrimitiveType type, int64_t count)
static const std::array< std::vector< int64_t >, 2 > get_split_simplices_to_delete(const Tuple &tuple, const EdgeMesh &m)
gather all simplices that are deleted in a split
attribute::Accessor< int64_t, EdgeMesh > ev_accessor
static const std::array< std::vector< int64_t >, 2 > get_collapse_simplices_to_delete(const Tuple &tuple, const EdgeMesh &m)
gather all simplices that are deleted in a collapse
attribute::Accessor< int64_t, EdgeMesh > ve_accessor
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
An Accessor that uses tuples for accessing attributes instead of indices.
Definition Accessor.hpp:44