68 int m_vtu_counter = 0;
69 int m_surfvtu_counter = 0;
70 std::array<size_t, 4> init_counts = {{0, 0, 0, 0}};
71 bool m_boundary_input_vert_found =
false;
77 std::map<std::string, int64_t> m_tag_name_to_id;
78 std::map<int64_t, std::string> m_tag_id_to_name;
79 std::set<int64_t> m_in_tag_ids;
80 std::set<int64_t> m_replace_tag_ids;
83 bool m_has_envelope =
false;
84 MatrixXd m_V_envelope;
85 MatrixXi m_F_envelope;
99 NUM_THREADS = _num_threads;
100 p_vertex_attrs = &m_vertex_attribute;
101 p_edge_attrs = &m_edge_attribute;
102 p_face_attrs = &m_face_attribute;
103 p_tet_attrs = &m_tet_attribute;
115 bool invariants(
const std::vector<Tuple>& t)
override;
128 std::map<size_t, EdgeAttributes> internal_e;
129 std::map<simplex::Edge, EdgeAttributes> external_e;
130 std::map<simplex::Edge, EdgeAttributes> link_e;
131 std::map<size_t, FaceAttributes> split_f;
132 std::map<simplex::Edge, FaceAttributes> internal_f;
133 std::map<std::pair<simplex::Edge, size_t>,
FaceAttributes> external_f;
134 std::map<simplex::Edge, TetAttributes> tets;
136 tbb::enumerable_thread_specific<EdgeSplitCache> edge_split_cache;
147 std::map<simplex::Edge, EdgeAttributes> existing_e;
148 std::map<simplex::Face, FaceAttributes> existing_f;
150 std::map<size_t, TetAttributes> tets;
152 tbb::enumerable_thread_specific<FaceSplitCache> face_split_cache;
160 std::array<size_t, 4> v_ids;
161 std::map<simplex::Edge, EdgeAttributes> existing_e;
162 std::map<simplex::Face, FaceAttributes> existing_f;
165 tbb::enumerable_thread_specific<TetSplitCache> tet_split_cache;
174 const MatrixSi& T_tags,
175 const MatrixXd& V_env,
176 const MatrixXi& F_env,
177 const std::vector<std::string>& tag_names);
213 std::set<size_t>& visited_tids,
216 const std::vector<simplex::Face>& b_out_faces)
const;
319 for (
const int64_t& i : tag1) {
320 if (tag2.find(i) != tag2.end()) {