Updated serialization tutorial

Former-commit-id: 0af965573d
This commit is contained in:
schuellc
2015-02-18 11:43:46 +01:00
parent 765cfaa72c
commit 3ee753f2ed
2 changed files with 22 additions and 5 deletions
+21 -4
View File
@@ -7,6 +7,7 @@
Eigen::MatrixXd V;
Eigen::MatrixXi F;
// derive from igl::Serializable to serialize your own type
struct State : public igl::Serializable
{
Eigen::MatrixXd V;
@@ -23,6 +24,22 @@ struct State : public igl::Serializable
}
};
// alternatively you can do it like the following to have
// a non-intrusive serialization:
//
// struct State
// {
// Eigen::MatrixXd V;
// Eigen::MatrixXi F;
// std::vector<int> ids;
// };
//
// SERIALIZE_TYPE(State,
// SERIALIZE_MEMBER(V)
// SERIALIZE_MEMBER(F)
// SERIALIZE_MEMBER_NAME(ids,"ids")
// )
int main(int argc, char *argv[])
{
std::string binaryFile = "binData";
@@ -32,9 +49,9 @@ int main(int argc, char *argv[])
unsigned int num = 10;
std::vector<float> vec = {0.1f,0.002f,5.3f};
// use overwrite = true for first serialization to create a new file
// use overwrite = true for the first serialization to create or overwrite an existing file
igl::serialize(b,"B",binaryFile,true);
// appends serialization to existing file
// append following serialization to existing file
igl::serialize(num,"Number",binaryFile);
igl::serialize(vec,"VectorName",binaryFile);
@@ -46,7 +63,7 @@ int main(int argc, char *argv[])
State stateIn, stateOut;
// Load a mesh in OFF format
igl::readOFF("../../shared/2triangles.off",stateIn.V,stateIn.F);
igl::readOFF("../shared/2triangles.off",stateIn.V,stateIn.F);
// Save some integers in a vector
stateIn.ids.push_back(6);
@@ -55,7 +72,7 @@ int main(int argc, char *argv[])
// Serialize the state of the application
igl::serialize(stateIn,"State",binaryFile,true);
// Load the state from the same XML file
// Load the state from the same file
igl::deserialize(stateOut,"State",binaryFile);
// Plot the state