diff --git a/src/user/user_model.cc b/src/user/user_model.cc index 77c7289d..bfeed5e8 100644 --- a/src/user/user_model.cc +++ b/src/user/user_model.cc @@ -541,6 +541,7 @@ mjCDef* mjCModel::AddDef(string name, int parentid) { // initialize contents if (parentid>=0 && parentidCopyFromSpec(); *def = *defaults[parentid]; defaults[parentid]->childid.push_back(thisid); } diff --git a/src/user/user_objects.cc b/src/user/user_objects.cc index a2895790..71dbcbeb 100644 --- a/src/user/user_objects.cc +++ b/src/user/user_objects.cc @@ -566,6 +566,23 @@ void mjCDef::PointToLocal() { +void mjCDef::CopyFromSpec() { + joint.CopyFromSpec(); + geom.CopyFromSpec(); + site.CopyFromSpec(); + camera.CopyFromSpec(); + light.CopyFromSpec(); + flex.CopyFromSpec(); + mesh.CopyFromSpec(); + material.CopyFromSpec(); + pair.CopyFromSpec(); + equality.CopyFromSpec(); + tendon.CopyFromSpec(); + actuator.CopyFromSpec(); +} + + + //------------------------- class mjCBase implementation ------------------------------------------- // constructor diff --git a/src/user/user_objects.h b/src/user/user_objects.h index 17535e33..da7e17e6 100644 --- a/src/user/user_objects.h +++ b/src/user/user_objects.h @@ -1397,6 +1397,7 @@ class mjCDef { void Compile(const mjCModel* model); // compiler mjCDef& operator=(const mjCDef& other); // copy assignment void PointToLocal(void); + void CopyFromSpec(void); // identifiers std::string name; // class name