Wildmeshing Toolkit
Loading...
Searching...
No Matches
TriVTUWriter.hpp
1#pragma once
2
3#include <wmtk/TriMesh.h>
4#include <filesystem>
5#include <functional>
6#include <map>
7#include <wmtk/Types.hpp>
8
9namespace wmtk::io {
10
12{
13private:
14 using Tuple = typename TriMesh::Tuple;
15
16public:
29 TriVTUWriter(const TriMesh& mesh);
30
38 void add_vertex_positions(const std::function<VectorXd(const size_t)>& f);
39
54 const std::string& name,
55 const std::function<VectorXd(const size_t)>& f);
57 const std::string& name,
58 const std::function<double(const size_t)>& f);
65 const std::string& name,
66 const std::function<VectorXd(const size_t)>& f);
67 void add_edge_attribute(const std::string& name, const std::function<double(const size_t)>& f);
68
75 const std::string& name,
76 const std::function<VectorXd(const size_t)>& f);
78 const std::string& name,
79 const std::function<double(const size_t)>& f);
80
86 bool write_triangles(const std::filesystem::path& filename);
87
93 bool write_edges(const std::filesystem::path& filename);
94
95private:
96 const TriMesh& m_mesh;
97
98 MatrixXd m_V; // vertex positions
99 MatrixXi m_E; // edge - vids
100 MatrixXi m_F; // face - vids
101
102 std::map<std::string, MatrixXd> m_V_attributes;
103 std::map<std::string, MatrixXd> m_E_attributes;
104 std::map<std::string, MatrixXd> m_F_attributes;
105};
106
107} // namespace wmtk::io
Definition TriMesh.h:32
Definition TriMesh.h:28
Definition TriVTUWriter.hpp:12
bool write_edges(const std::filesystem::path &filename)
Write the edge mesh with edge and vertex attributes.
Definition TriVTUWriter.cpp:61
void add_vertex_positions(const std::function< VectorXd(const size_t)> &f)
Add vertex positions.
Definition TriVTUWriter.cpp:75
bool write_triangles(const std::filesystem::path &filename)
Write the triangle mesh with triangle and vertex attributes.
Definition TriVTUWriter.cpp:47
void add_edge_attribute(const std::string &name, const std::function< VectorXd(const size_t)> &f)
Add edge attribute.
Definition TriVTUWriter.cpp:113
void add_vertex_attribute(const std::string &name, const std::function< VectorXd(const size_t)> &f)
Add vertex attribute.
Definition TriVTUWriter.cpp:88
void add_triangle_attribute(const std::string &name, const std::function< VectorXd(const size_t)> &f)
Add triangle attribute.
Definition TriVTUWriter.cpp:138