Support FilePaths instead of raw strings in XML code.
PiperOrigin-RevId: 655177026 Change-Id: I55b055551384b01ba7a4baa5d75fbe3329b7d25d
This commit is contained in:
committed by
Copybara-Service
parent
2d24c58819
commit
2746cb8559
+9
-5
@@ -37,6 +37,8 @@
|
||||
|
||||
//---------------------------------- Globals -------------------------------------------------------
|
||||
|
||||
namespace {
|
||||
|
||||
// global user model class
|
||||
class GlobalModel {
|
||||
public:
|
||||
@@ -61,7 +63,7 @@ std::optional<std::string> GlobalModel::ToXML(const mjModel* m, char* error,
|
||||
return std::nullopt;
|
||||
}
|
||||
mj_copyBack(spec_, m);
|
||||
std::string result = mjWriteXML(spec_, error, error_sz);
|
||||
std::string result = WriteXML(spec_, error, error_sz);
|
||||
if (result.empty()) {
|
||||
return std::nullopt;
|
||||
}
|
||||
@@ -86,6 +88,8 @@ GlobalModel& GetGlobalModel() {
|
||||
return global_model;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
//---------------------------------- Functions -----------------------------------------------------
|
||||
|
||||
// parse XML file in MJCF or URDF format, compile it, return low-level model
|
||||
@@ -96,7 +100,7 @@ mjModel* mj_loadXML(const char* filename, const mjVFS* vfs,
|
||||
|
||||
// parse new model
|
||||
std::unique_ptr<mjSpec, std::function<void(mjSpec*)>> spec(
|
||||
mjParseXML(filename, vfs, error, error_sz),
|
||||
ParseXML(filename, vfs, error, error_sz),
|
||||
[](mjSpec* s) { mj_deleteSpec(s); });
|
||||
if (!spec) {
|
||||
return nullptr;
|
||||
@@ -211,7 +215,7 @@ mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) {
|
||||
|
||||
// parse spec from file
|
||||
mjSpec* mj_parseXML(const char* filename, const mjVFS* vfs, char* error, int error_sz) {
|
||||
return mjParseXML(filename, vfs, error, error_sz);
|
||||
return ParseXML(filename, vfs, error, error_sz);
|
||||
}
|
||||
|
||||
|
||||
@@ -225,7 +229,7 @@ mjSpec* mj_parseXMLString(const char* xml, const mjVFS* vfs, char* error, int er
|
||||
|
||||
// save spec to XML file, return 1 on success, 0 otherwise
|
||||
int mj_saveXML(const mjSpec* s, const char* filename, char* error, int error_sz) {
|
||||
std::string result = mjWriteXML(s, error, error_sz);
|
||||
std::string result = WriteXML(s, error, error_sz);
|
||||
if (result.empty()) {
|
||||
return 0;
|
||||
}
|
||||
@@ -241,7 +245,7 @@ int mj_saveXML(const mjSpec* s, const char* filename, char* error, int error_sz)
|
||||
|
||||
// save spec to string, return 1 on success, 0 otherwise
|
||||
int mj_saveXMLString(const mjSpec* s, char* xml, int xml_sz, char* error, int error_sz) {
|
||||
std::string result = mjWriteXML(s, error, error_sz);
|
||||
std::string result = WriteXML(s, error, error_sz);
|
||||
if (result.size() >= xml_sz) {
|
||||
std::string error_msg = "Output string too short, should be at least " +
|
||||
std::to_string(result.size()+1);
|
||||
|
||||
Reference in New Issue
Block a user