Added matlab codegen for matlab save/load hooks. Can now save and load a gtsam object to/from a mat file

release/4.3a0
Alex Cunningham 2013-06-22 23:16:53 +00:00
parent 974bef7bc8
commit 0e1f07acaa
2 changed files with 31 additions and 1 deletions

View File

@ -467,7 +467,17 @@ void Class::serialization_fragments(FileWriter& proxyFile, FileWriter& wrapperFi
proxyFile.oss << " else\n";
proxyFile.oss << " error('Arguments do not match any overload of function " << matlabQualName << ".string_serialize');\n";
proxyFile.oss << " end\n";
proxyFile.oss << " end\n";
proxyFile.oss << " end\n\n";
// Generate code for matlab save function
// function sobj = saveobj(obj)
// % SAVEOBJ Saves the object to a matlab-readable format
// sobj = obj.string_serialize();
// end
proxyFile.oss << " function sobj = saveobj(obj)\n";
proxyFile.oss << " % SAVEOBJ Saves the object to a matlab-readable format\n";
proxyFile.oss << " sobj = obj.string_serialize();\n";
}
/* ************************************************************************* */
@ -529,6 +539,18 @@ void Class::deserialization_fragments(FileWriter& proxyFile, FileWriter& wrapper
proxyFile.oss << " error('Arguments do not match any overload of function " << matlabQualName << ".string_deserialize');\n";
proxyFile.oss << " end\n";
proxyFile.oss << " end\n\n";
// Generate matlab load function
// function obj = loadobj(sobj)
// % LOADOBJ Saves the object to a matlab-readable format
// obj = Point3.string_deserialize(sobj);
// end
proxyFile.oss << " function obj = loadobj(sobj)\n";
proxyFile.oss << " % LOADOBJ Saves the object to a matlab-readable format\n";
proxyFile.oss << " obj = " << matlabQualName << ".string_deserialize(sobj);\n";
proxyFile.oss << " end" << endl;
}
/* ************************************************************************* */

View File

@ -62,6 +62,10 @@ classdef Point3 < handle
error('Arguments do not match any overload of function Point3.string_serialize');
end
end
function sobj = saveobj(obj)
% SAVEOBJ Saves the object to a matlab-readable format
sobj = obj.string_serialize();
end
methods(Static = true)
@ -101,5 +105,9 @@ classdef Point3 < handle
end
end
function obj = loadobj(sobj)
% LOADOBJ Saves the object to a matlab-readable format
obj = Point3.string_deserialize(sobj);
end
end
end