Wildmeshing Toolkit
Loading...
Searching...
No Matches
surface_io.hpp
1#pragma once
2
3#include <wmtk/MeshData.hpp>
4
5#include <Eigen/Core>
6
7#include <array>
8#include <cstdint>
9#include <map>
10#include <string>
11#include <vector>
12
13namespace wmtk::components::tracking {
14
17{
18 std::vector<Eigen::Vector3d> vertices;
19 std::vector<std::array<uint64_t, 3>> faces;
22 std::map<std::string, std::vector<std::vector<double>>> face_fields;
26 std::map<std::string, std::vector<std::vector<double>>> corner_fields;
27
31 struct FieldType
32 {
33 size_t type = 0;
34 std::vector<std::string> labels;
35 };
36 std::map<std::string, FieldType> field_types;
37};
38
42bool is_corner_field(const std::string& name);
43
51SurfaceData surface_from_mesh(const MeshData& mesh, const std::string& what, bool strict);
52
55MeshData mesh_from_surface(const SurfaceData& s);
56
59SurfaceData read_surface_msh(const std::string& path);
60
66SurfaceData read_surface(const std::vector<std::string>& paths);
67
69void write_surface_msh(const std::string& path, const SurfaceData& s);
70
82void add_surface(
83 MeshData& mesh,
84 const SurfaceData& s,
85 const std::vector<int64_t>& rows,
86 const std::string& what);
87
89void write_surface_into_msh(
90 const std::string& tet_mesh,
91 const std::string& path,
92 const SurfaceData& s,
93 const std::vector<int64_t>& rows);
94
100void write_surface_obj(
101 const std::string& path,
102 const SurfaceData& s,
103 const std::string& uv_field,
104 const std::string& texture);
105
106} // namespace wmtk::components::tracking
Definition MeshData.hpp:48
A triangle surface and named per-face fields, as read from or written to a mesh.
Definition surface_io.hpp:17
std::map< std::string, std::vector< std::vector< double > > > corner_fields
Definition surface_io.hpp:26
std::map< std::string, std::vector< std::vector< double > > > face_fields
Definition surface_io.hpp:22