MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / save_nodes

Method save_nodes

src/IO/MshSaver.cpp:59–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57}
58
59void MshSaver::save_nodes(const VectorF& nodes) {
60 // Save nodes.
61 m_num_nodes = nodes.size() / m_dim;
62 fout << "$Nodes" << std::endl;
63 fout << m_num_nodes << std::endl;
64 if (!m_binary) {
65 for (size_t i=0; i<nodes.size(); i+=m_dim) {
66 const VectorF& v = nodes.segment(i,m_dim);
67 int node_idx = i/m_dim+1;
68 fout << node_idx << " " << v[0] << " " << v[1] << " ";
69 if (m_dim == 2) {
70 fout << 0.0 << std::endl;
71 } else {
72 fout << v[2] << std::endl;
73 }
74 }
75 } else {
76 for (size_t i=0; i<nodes.size(); i+=m_dim) {
77 const VectorF& v = nodes.segment(i,m_dim);
78 int node_idx = i/m_dim+1;
79 fout.write((char*)&node_idx, sizeof(int));
80 fout.write((char*)v.data(), sizeof(Float)*m_dim);
81
82 // for 2D shapes, z coordinate is always 0.
83 if (m_dim == 2) {
84 const Float zero = 0.0;
85 fout.write((char*)&zero, sizeof(Float));
86 }
87 }
88 }
89 fout << "$EndNodes" << std::endl;
90 fout.flush();
91}
92
93void MshSaver::save_elements(
94 const VectorI& elements, MshSaver::ElementType type) {

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected