Add const to mjsDefault when used as function argument.
Fixes #2197. PiperOrigin-RevId: 692346264 Change-Id: Iddb9be1377a7d59c86911802d8c5563f6bf6b043
This commit is contained in:
committed by
Copybara-Service
parent
47ebb0614e
commit
ebe60b9ad5
+14
-14
@@ -3567,22 +3567,22 @@ mjsFrame* mjs_attachFrame(mjsBody* parent, const mjsFrame* child,
|
||||
mjsBody* mjs_attachToSite(mjsSite* parent, const mjsBody* child,
|
||||
const char* prefix, const char* suffix);
|
||||
int mjs_detachBody(mjSpec* s, mjsBody* b);
|
||||
mjsBody* mjs_addBody(mjsBody* body, mjsDefault* def);
|
||||
mjsSite* mjs_addSite(mjsBody* body, mjsDefault* def);
|
||||
mjsJoint* mjs_addJoint(mjsBody* body, mjsDefault* def);
|
||||
mjsBody* mjs_addBody(mjsBody* body, const mjsDefault* def);
|
||||
mjsSite* mjs_addSite(mjsBody* body, const mjsDefault* def);
|
||||
mjsJoint* mjs_addJoint(mjsBody* body, const mjsDefault* def);
|
||||
mjsJoint* mjs_addFreeJoint(mjsBody* body);
|
||||
mjsGeom* mjs_addGeom(mjsBody* body, mjsDefault* def);
|
||||
mjsCamera* mjs_addCamera(mjsBody* body, mjsDefault* def);
|
||||
mjsLight* mjs_addLight(mjsBody* body, mjsDefault* def);
|
||||
mjsGeom* mjs_addGeom(mjsBody* body, const mjsDefault* def);
|
||||
mjsCamera* mjs_addCamera(mjsBody* body, const mjsDefault* def);
|
||||
mjsLight* mjs_addLight(mjsBody* body, const mjsDefault* def);
|
||||
mjsFrame* mjs_addFrame(mjsBody* body, mjsFrame* parentframe);
|
||||
void mjs_delete(mjsElement* element);
|
||||
mjsActuator* mjs_addActuator(mjSpec* s, mjsDefault* def);
|
||||
mjsActuator* mjs_addActuator(mjSpec* s, const mjsDefault* def);
|
||||
mjsSensor* mjs_addSensor(mjSpec* s);
|
||||
mjsFlex* mjs_addFlex(mjSpec* s);
|
||||
mjsPair* mjs_addPair(mjSpec* s, mjsDefault* def);
|
||||
mjsPair* mjs_addPair(mjSpec* s, const mjsDefault* def);
|
||||
mjsExclude* mjs_addExclude(mjSpec* s);
|
||||
mjsEquality* mjs_addEquality(mjSpec* s, mjsDefault* def);
|
||||
mjsTendon* mjs_addTendon(mjSpec* s, mjsDefault* def);
|
||||
mjsEquality* mjs_addEquality(mjSpec* s, const mjsDefault* def);
|
||||
mjsTendon* mjs_addTendon(mjSpec* s, const mjsDefault* def);
|
||||
mjsWrap* mjs_wrapSite(mjsTendon* tendon, const char* name);
|
||||
mjsWrap* mjs_wrapGeom(mjsTendon* tendon, const char* name, const char* sidesite);
|
||||
mjsWrap* mjs_wrapJoint(mjsTendon* tendon, const char* name, double coef);
|
||||
@@ -3593,11 +3593,11 @@ mjsTuple* mjs_addTuple(mjSpec* s);
|
||||
mjsKey* mjs_addKey(mjSpec* s);
|
||||
mjsPlugin* mjs_addPlugin(mjSpec* s);
|
||||
mjsDefault* mjs_addDefault(mjSpec* s, const char* classname, const mjsDefault* parent);
|
||||
mjsMesh* mjs_addMesh(mjSpec* s, mjsDefault* def);
|
||||
mjsMesh* mjs_addMesh(mjSpec* s, const mjsDefault* def);
|
||||
mjsHField* mjs_addHField(mjSpec* s);
|
||||
mjsSkin* mjs_addSkin(mjSpec* s);
|
||||
mjsTexture* mjs_addTexture(mjSpec* s);
|
||||
mjsMaterial* mjs_addMaterial(mjSpec* s, mjsDefault* def);
|
||||
mjsMaterial* mjs_addMaterial(mjSpec* s, const mjsDefault* def);
|
||||
mjSpec* mjs_getSpec(mjsElement* element);
|
||||
mjSpec* mjs_findSpec(mjSpec* spec, const char* name);
|
||||
mjsBody* mjs_findBody(mjSpec* s, const char* name);
|
||||
@@ -3605,7 +3605,7 @@ mjsElement* mjs_findElement(mjSpec* s, mjtObj type, const char* name);
|
||||
mjsBody* mjs_findChild(mjsBody* body, const char* name);
|
||||
mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||
mjsDefault* mjs_getDefault(mjsElement* element);
|
||||
mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
const mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
mjsDefault* mjs_getSpecDefault(mjSpec* s);
|
||||
int mjs_getId(mjsElement* element);
|
||||
mjsElement* mjs_firstChild(mjsBody* body, mjtObj type, int recurse);
|
||||
@@ -3625,7 +3625,7 @@ void mjs_setDouble(mjDoubleVec* dest, const double* array, int size);
|
||||
void mjs_setPluginAttributes(mjsPlugin* plugin, void* attributes);
|
||||
const char* mjs_getString(const mjString* source);
|
||||
const double* mjs_getDouble(const mjDoubleVec* source, int* size);
|
||||
void mjs_setDefault(mjsElement* element, mjsDefault* def);
|
||||
void mjs_setDefault(mjsElement* element, const mjsDefault* def);
|
||||
void mjs_setFrame(mjsElement* dest, mjsFrame* frame);
|
||||
const char* mjs_resolveOrientation(double quat[4], mjtByte degree, const char* sequence,
|
||||
const mjsOrientation* orientation);
|
||||
|
||||
+14
-14
@@ -1421,25 +1421,25 @@ MJAPI int mjs_detachBody(mjSpec* s, mjsBody* b);
|
||||
//---------------------------------- Tree elements -------------------------------------------------
|
||||
|
||||
// Add child body to body, return child.
|
||||
MJAPI mjsBody* mjs_addBody(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsBody* mjs_addBody(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add site to body, return site spec.
|
||||
MJAPI mjsSite* mjs_addSite(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsSite* mjs_addSite(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add joint to body.
|
||||
MJAPI mjsJoint* mjs_addJoint(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsJoint* mjs_addJoint(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add freejoint to body.
|
||||
MJAPI mjsJoint* mjs_addFreeJoint(mjsBody* body);
|
||||
|
||||
// Add geom to body.
|
||||
MJAPI mjsGeom* mjs_addGeom(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsGeom* mjs_addGeom(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add camera to body.
|
||||
MJAPI mjsCamera* mjs_addCamera(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsCamera* mjs_addCamera(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add light to body.
|
||||
MJAPI mjsLight* mjs_addLight(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsLight* mjs_addLight(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add frame to body.
|
||||
MJAPI mjsFrame* mjs_addFrame(mjsBody* body, mjsFrame* parentframe);
|
||||
@@ -1451,7 +1451,7 @@ MJAPI void mjs_delete(mjsElement* element);
|
||||
//---------------------------------- Non-tree elements ---------------------------------------------
|
||||
|
||||
// Add actuator.
|
||||
MJAPI mjsActuator* mjs_addActuator(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsActuator* mjs_addActuator(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add sensor.
|
||||
MJAPI mjsSensor* mjs_addSensor(mjSpec* s);
|
||||
@@ -1460,16 +1460,16 @@ MJAPI mjsSensor* mjs_addSensor(mjSpec* s);
|
||||
MJAPI mjsFlex* mjs_addFlex(mjSpec* s);
|
||||
|
||||
// Add contact pair.
|
||||
MJAPI mjsPair* mjs_addPair(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsPair* mjs_addPair(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add excluded body pair.
|
||||
MJAPI mjsExclude* mjs_addExclude(mjSpec* s);
|
||||
|
||||
// Add equality.
|
||||
MJAPI mjsEquality* mjs_addEquality(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsEquality* mjs_addEquality(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add tendon.
|
||||
MJAPI mjsTendon* mjs_addTendon(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsTendon* mjs_addTendon(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Wrap site using tendon.
|
||||
MJAPI mjsWrap* mjs_wrapSite(mjsTendon* tendon, const char* name);
|
||||
@@ -1505,7 +1505,7 @@ MJAPI mjsDefault* mjs_addDefault(mjSpec* s, const char* classname, const mjsDefa
|
||||
//---------------------------------- Assets --------------------------------------------------------
|
||||
|
||||
// Add mesh.
|
||||
MJAPI mjsMesh* mjs_addMesh(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsMesh* mjs_addMesh(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add height field.
|
||||
MJAPI mjsHField* mjs_addHField(mjSpec* s);
|
||||
@@ -1517,7 +1517,7 @@ MJAPI mjsSkin* mjs_addSkin(mjSpec* s);
|
||||
MJAPI mjsTexture* mjs_addTexture(mjSpec* s);
|
||||
|
||||
// Add material.
|
||||
MJAPI mjsMaterial* mjs_addMaterial(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsMaterial* mjs_addMaterial(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
|
||||
//---------------------------------- Find and get utilities ----------------------------------------
|
||||
@@ -1544,7 +1544,7 @@ MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
||||
|
||||
// Find default in model by class name.
|
||||
MJAPI mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
MJAPI const mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
|
||||
// Get global default from model.
|
||||
MJAPI mjsDefault* mjs_getSpecDefault(mjSpec* s);
|
||||
@@ -1614,7 +1614,7 @@ MJAPI const double* mjs_getDouble(const mjDoubleVec* source, int* size);
|
||||
//---------------------------------- Spec utilities ------------------------------------------------
|
||||
|
||||
// Set element's default.
|
||||
MJAPI void mjs_setDefault(mjsElement* element, mjsDefault* def);
|
||||
MJAPI void mjs_setDefault(mjsElement* element, const mjsDefault* def);
|
||||
|
||||
// Set element's enclosing frame.
|
||||
MJAPI void mjs_setFrame(mjsElement* dest, mjsFrame* frame);
|
||||
|
||||
+14
-14
@@ -9072,7 +9072,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9094,7 +9094,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9116,7 +9116,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9154,7 +9154,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9176,7 +9176,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9198,7 +9198,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9256,7 +9256,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9310,7 +9310,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9348,7 +9348,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9370,7 +9370,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9596,7 +9596,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9666,7 +9666,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -9822,7 +9822,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionDecl(
|
||||
name='mjs_findDefault',
|
||||
return_type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
parameters=(
|
||||
FunctionParameterDecl(
|
||||
@@ -10262,7 +10262,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
FunctionParameterDecl(
|
||||
name='def',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjsDefault'),
|
||||
inner_type=ValueType(name='mjsDefault', is_const=True),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -346,7 +346,7 @@ PYBIND11_MODULE(_specs, m) {
|
||||
py::return_value_policy::reference_internal);
|
||||
mjSpec.def(
|
||||
"find_default",
|
||||
[](MjSpec& self, std::string& classname) -> raw::MjsDefault* {
|
||||
[](MjSpec& self, std::string& classname) -> const raw::MjsDefault* {
|
||||
return mjs_findDefault(self.ptr, classname.c_str());
|
||||
},
|
||||
py::return_value_policy::reference_internal);
|
||||
|
||||
+14
-14
@@ -263,7 +263,7 @@ void mjs_delete(mjsElement* element) {
|
||||
|
||||
|
||||
// add child body to body, return child spec
|
||||
mjsBody* mjs_addBody(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsBody* mjs_addBody(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element)->AddBody(def);
|
||||
return &body->spec;
|
||||
@@ -272,7 +272,7 @@ mjsBody* mjs_addBody(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add site to body, return site spec
|
||||
mjsSite* mjs_addSite(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsSite* mjs_addSite(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element);
|
||||
mjCSite* site = body->AddSite(def);
|
||||
@@ -282,7 +282,7 @@ mjsSite* mjs_addSite(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add joint to body
|
||||
mjsJoint* mjs_addJoint(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsJoint* mjs_addJoint(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element);
|
||||
mjCJoint* joint = body->AddJoint(def);
|
||||
@@ -301,7 +301,7 @@ mjsJoint* mjs_addFreeJoint(mjsBody* bodyspec) {
|
||||
|
||||
|
||||
// add geom to body
|
||||
mjsGeom* mjs_addGeom(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsGeom* mjs_addGeom(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element);
|
||||
mjCGeom* geom = body->AddGeom(def);
|
||||
@@ -311,7 +311,7 @@ mjsGeom* mjs_addGeom(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add camera to body
|
||||
mjsCamera* mjs_addCamera(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsCamera* mjs_addCamera(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element);
|
||||
mjCCamera* camera = body->AddCamera(def);
|
||||
@@ -321,7 +321,7 @@ mjsCamera* mjs_addCamera(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add light to body
|
||||
mjsLight* mjs_addLight(mjsBody* bodyspec, mjsDefault* defspec) {
|
||||
mjsLight* mjs_addLight(mjsBody* bodyspec, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCBody* body = static_cast<mjCBody*>(bodyspec->element);
|
||||
mjCLight* light = body->AddLight(def);
|
||||
@@ -354,7 +354,7 @@ mjsFrame* mjs_addFrame(mjsBody* bodyspec, mjsFrame* parentframe) {
|
||||
|
||||
|
||||
// add mesh to model
|
||||
mjsMesh* mjs_addMesh(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsMesh* mjs_addMesh(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCMesh* mesh = modelC->AddMesh(def);
|
||||
@@ -391,7 +391,7 @@ mjsTexture* mjs_addTexture(mjSpec* s) {
|
||||
|
||||
|
||||
// add material to model
|
||||
mjsMaterial* mjs_addMaterial(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsMaterial* mjs_addMaterial(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCMaterial* material = modelC->AddMaterial(def);
|
||||
@@ -401,7 +401,7 @@ mjsMaterial* mjs_addMaterial(mjSpec* s, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add pair to model
|
||||
mjsPair* mjs_addPair(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsPair* mjs_addPair(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCPair* pair = modelC->AddPair(def);
|
||||
@@ -420,7 +420,7 @@ mjsExclude* mjs_addExclude(mjSpec* s) {
|
||||
|
||||
|
||||
// add equality to model
|
||||
mjsEquality* mjs_addEquality(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsEquality* mjs_addEquality(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCEquality* equality = modelC->AddEquality(def);
|
||||
@@ -430,7 +430,7 @@ mjsEquality* mjs_addEquality(mjSpec* s, mjsDefault* defspec) {
|
||||
|
||||
|
||||
// add tendon to model
|
||||
mjsTendon* mjs_addTendon(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsTendon* mjs_addTendon(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCTendon* tendon = modelC->AddTendon(def);
|
||||
@@ -476,7 +476,7 @@ mjsWrap* mjs_wrapPulley(mjsTendon* tendonspec, double divisor) {
|
||||
|
||||
|
||||
// add actuator to model
|
||||
mjsActuator* mjs_addActuator(mjSpec* s, mjsDefault* defspec) {
|
||||
mjsActuator* mjs_addActuator(mjSpec* s, const mjsDefault* defspec) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* def = defspec ? static_cast<mjCDef*>(defspec->element) : 0;
|
||||
mjCActuator* actuator = modelC->AddActuator(def);
|
||||
@@ -580,7 +580,7 @@ mjsDefault* mjs_getDefault(mjsElement* element) {
|
||||
|
||||
|
||||
// Find default with given name in model.
|
||||
mjsDefault* mjs_findDefault(mjSpec* s, const char* classname) {
|
||||
const mjsDefault* mjs_findDefault(mjSpec* s, const char* classname) {
|
||||
mjCModel* modelC = static_cast<mjCModel*>(s->element);
|
||||
mjCDef* cdef = modelC->FindDefault(classname);
|
||||
if (!cdef) {
|
||||
@@ -692,7 +692,7 @@ int mjs_getId(mjsElement* element) {
|
||||
|
||||
|
||||
// set default
|
||||
void mjs_setDefault(mjsElement* element, mjsDefault* defspec) {
|
||||
void mjs_setDefault(mjsElement* element, const mjsDefault* defspec) {
|
||||
mjCBase* baseC = static_cast<mjCBase*>(element);
|
||||
baseC->classname = static_cast<mjCDef*>(defspec->element)->name;
|
||||
}
|
||||
|
||||
+14
-14
@@ -85,25 +85,25 @@ MJAPI int mjs_detachBody(mjSpec* s, mjsBody* b);
|
||||
//---------------------------------- Add tree elements ---------------------------------------------
|
||||
|
||||
// Add child body to body, return child.
|
||||
MJAPI mjsBody* mjs_addBody(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsBody* mjs_addBody(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add site to body, return site spec.
|
||||
MJAPI mjsSite* mjs_addSite(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsSite* mjs_addSite(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add joint to body.
|
||||
MJAPI mjsJoint* mjs_addJoint(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsJoint* mjs_addJoint(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add freejoint to body.
|
||||
MJAPI mjsJoint* mjs_addFreeJoint(mjsBody* body);
|
||||
|
||||
// Add geom to body.
|
||||
MJAPI mjsGeom* mjs_addGeom(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsGeom* mjs_addGeom(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add camera to body.
|
||||
MJAPI mjsCamera* mjs_addCamera(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsCamera* mjs_addCamera(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add light to body.
|
||||
MJAPI mjsLight* mjs_addLight(mjsBody* body, mjsDefault* def);
|
||||
MJAPI mjsLight* mjs_addLight(mjsBody* body, const mjsDefault* def);
|
||||
|
||||
// Add frame to body.
|
||||
MJAPI mjsFrame* mjs_addFrame(mjsBody* body, mjsFrame* parentframe);
|
||||
@@ -115,7 +115,7 @@ MJAPI void mjs_delete(mjsElement* element);
|
||||
//---------------------------------- Add non-tree elements -----------------------------------------
|
||||
|
||||
// Add actuator.
|
||||
MJAPI mjsActuator* mjs_addActuator(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsActuator* mjs_addActuator(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add sensor.
|
||||
MJAPI mjsSensor* mjs_addSensor(mjSpec* s);
|
||||
@@ -124,16 +124,16 @@ MJAPI mjsSensor* mjs_addSensor(mjSpec* s);
|
||||
MJAPI mjsFlex* mjs_addFlex(mjSpec* s);
|
||||
|
||||
// Add contact pair.
|
||||
MJAPI mjsPair* mjs_addPair(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsPair* mjs_addPair(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add excluded body pair.
|
||||
MJAPI mjsExclude* mjs_addExclude(mjSpec* s);
|
||||
|
||||
// Add equality.
|
||||
MJAPI mjsEquality* mjs_addEquality(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsEquality* mjs_addEquality(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add tendon.
|
||||
MJAPI mjsTendon* mjs_addTendon(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsTendon* mjs_addTendon(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Wrap site using tendon.
|
||||
MJAPI mjsWrap* mjs_wrapSite(mjsTendon* tendon, const char* name);
|
||||
@@ -169,7 +169,7 @@ MJAPI mjsDefault* mjs_addDefault(mjSpec* s, const char* classname, const mjsDefa
|
||||
//---------------------------------- Add assets ----------------------------------------------------
|
||||
|
||||
// Add mesh.
|
||||
MJAPI mjsMesh* mjs_addMesh(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsMesh* mjs_addMesh(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
// Add height field.
|
||||
MJAPI mjsHField* mjs_addHField(mjSpec* s);
|
||||
@@ -181,7 +181,7 @@ MJAPI mjsSkin* mjs_addSkin(mjSpec* s);
|
||||
MJAPI mjsTexture* mjs_addTexture(mjSpec* s);
|
||||
|
||||
// Add material.
|
||||
MJAPI mjsMaterial* mjs_addMaterial(mjSpec* s, mjsDefault* def);
|
||||
MJAPI mjsMaterial* mjs_addMaterial(mjSpec* s, const mjsDefault* def);
|
||||
|
||||
|
||||
//---------------------------------- Find/get utilities --------------------------------------------
|
||||
@@ -208,7 +208,7 @@ MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
||||
|
||||
// Find default in model by class name.
|
||||
MJAPI mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
MJAPI const mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||
|
||||
// Get global default from model.
|
||||
MJAPI mjsDefault* mjs_getSpecDefault(mjSpec* s);
|
||||
@@ -353,7 +353,7 @@ MJAPI const double* mjs_getDouble(const mjDoubleVec* source, int* size);
|
||||
//---------------------------------- Other utilities -----------------------------------------------
|
||||
|
||||
// Set element's default.
|
||||
MJAPI void mjs_setDefault(mjsElement* element, mjsDefault* def);
|
||||
MJAPI void mjs_setDefault(mjsElement* element, const mjsDefault* def);
|
||||
|
||||
// Set element's enlcosing frame.
|
||||
MJAPI void mjs_setFrame(mjsElement* dest, mjsFrame* frame);
|
||||
|
||||
@@ -2383,7 +2383,7 @@ void mjXReader::OneActuator(XMLElement* elem, mjsActuator* actuator) {
|
||||
|
||||
|
||||
// make composite
|
||||
void mjXReader::OneComposite(XMLElement* elem, mjsBody* body, mjsDefault* def) {
|
||||
void mjXReader::OneComposite(XMLElement* elem, mjsBody* body, const mjsDefault* def) {
|
||||
string text;
|
||||
int n;
|
||||
|
||||
@@ -3188,7 +3188,7 @@ void mjXReader::Asset(XMLElement* section, const mjVFS* vfs) {
|
||||
name = elem->Value();
|
||||
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -3408,7 +3408,7 @@ void mjXReader::Body(XMLElement* section, mjsBody* body, mjsFrame* frame,
|
||||
name = elem->Value();
|
||||
|
||||
// get class if specified, otherwise use body
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getDefault(frame ? frame->element : body->element);
|
||||
}
|
||||
@@ -3519,13 +3519,10 @@ void mjXReader::Body(XMLElement* section, mjsBody* body, mjsFrame* frame,
|
||||
// frame sub-element
|
||||
else if (name=="frame") {
|
||||
// read childdef
|
||||
mjsDefault* childdef = 0;
|
||||
if (ReadAttrTxt(elem, "childclass", text)) {
|
||||
childdef = mjs_findDefault(spec, text.c_str());
|
||||
mjs_findDefault(spec, text.c_str());
|
||||
if (!childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
bool has_childclass = ReadAttrTxt(elem, "childclass", text);
|
||||
const mjsDefault* childdef = has_childclass ? mjs_findDefault(spec, text.c_str()) : nullptr;
|
||||
if (has_childclass && !childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
|
||||
// create frame
|
||||
@@ -3568,13 +3565,10 @@ void mjXReader::Body(XMLElement* section, mjsBody* body, mjsFrame* frame,
|
||||
mjs_resolveOrientation(rotation, spec->compiler.degree, spec->compiler.eulerseq, &alt);
|
||||
|
||||
// read childdef
|
||||
mjsDefault* childdef = 0;
|
||||
if (ReadAttrTxt(elem, "childclass", text)) {
|
||||
childdef = mjs_findDefault(spec, text.c_str());
|
||||
mjs_findDefault(spec, text.c_str());
|
||||
if (!childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
bool has_childclass = ReadAttrTxt(elem, "childclass", text);
|
||||
const mjsDefault* childdef = has_childclass ? mjs_findDefault(spec, text.c_str()) : nullptr;
|
||||
if (has_childclass && !childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
|
||||
// create subtree
|
||||
@@ -3622,13 +3616,10 @@ void mjXReader::Body(XMLElement* section, mjsBody* body, mjsFrame* frame,
|
||||
// body sub-element
|
||||
else if (name=="body") {
|
||||
// read childdef
|
||||
mjsDefault* childdef = 0;
|
||||
if (ReadAttrTxt(elem, "childclass", text)) {
|
||||
childdef = mjs_findDefault(spec, text.c_str());
|
||||
mjs_findDefault(spec, text.c_str());
|
||||
if (!childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
bool has_childclass = ReadAttrTxt(elem, "childclass", text);
|
||||
const mjsDefault* childdef = has_childclass ? mjs_findDefault(spec, text.c_str()) : nullptr;
|
||||
if (has_childclass && !childdef) {
|
||||
throw mjXError(elem, "unknown default childclass");
|
||||
}
|
||||
|
||||
// create child body
|
||||
@@ -3720,7 +3711,7 @@ void mjXReader::Contact(XMLElement* section) {
|
||||
name = elem->Value();
|
||||
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -3765,7 +3756,7 @@ void mjXReader::Equality(XMLElement* section) {
|
||||
elem = FirstChildElement(section);
|
||||
while (elem) {
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -3793,7 +3784,7 @@ void mjXReader::Deformable(XMLElement* section, const mjVFS* vfs) {
|
||||
name = elem->Value();
|
||||
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -3829,7 +3820,7 @@ void mjXReader::Tendon(XMLElement* section) {
|
||||
elem = FirstChildElement(section);
|
||||
while (elem) {
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -3895,7 +3886,7 @@ void mjXReader::Actuator(XMLElement* section) {
|
||||
elem = FirstChildElement(section);
|
||||
while (elem) {
|
||||
// get class if specified, otherwise use default0
|
||||
mjsDefault* def = GetClass(elem);
|
||||
const mjsDefault* def = GetClass(elem);
|
||||
if (!def) {
|
||||
def = mjs_getSpecDefault(spec);
|
||||
}
|
||||
@@ -4306,19 +4297,19 @@ void mjXReader::Keyframe(XMLElement* section) {
|
||||
|
||||
|
||||
// get defaults class
|
||||
mjsDefault* mjXReader::GetClass(XMLElement* section) {
|
||||
const mjsDefault* mjXReader::GetClass(XMLElement* section) {
|
||||
string text;
|
||||
mjsDefault* def = nullptr;
|
||||
|
||||
if (ReadAttrTxt(section, "class", text)) {
|
||||
def = mjs_findDefault(spec, text.c_str());
|
||||
if (!def) {
|
||||
throw mjXError(
|
||||
section,
|
||||
string("unknown default class name '" + text + "'").c_str());
|
||||
}
|
||||
if (!ReadAttrTxt(section, "class", text)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const mjsDefault* def = mjs_findDefault(spec, text.c_str());
|
||||
if (!def) {
|
||||
throw mjXError(
|
||||
section,
|
||||
string("unknown default class name '" + text + "'").c_str());
|
||||
}
|
||||
return def;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,12 +80,12 @@ class mjXReader : public mjXBase {
|
||||
void OneEquality(tinyxml2::XMLElement* elem, mjsEquality* pequality);
|
||||
void OneTendon(tinyxml2::XMLElement* elem, mjsTendon* ptendon);
|
||||
void OneActuator(tinyxml2::XMLElement* elem, mjsActuator* pactuator);
|
||||
void OneComposite(tinyxml2::XMLElement* elem, mjsBody* pbody, mjsDefault* def);
|
||||
void OneComposite(tinyxml2::XMLElement* elem, mjsBody* pbody, const mjsDefault* def);
|
||||
void OneFlexcomp(tinyxml2::XMLElement* elem, mjsBody* pbody, const mjVFS* vfs);
|
||||
void OnePlugin(tinyxml2::XMLElement* elem, mjsPlugin* plugin);
|
||||
|
||||
mjXSchema schema; // schema used for validation
|
||||
mjsDefault* GetClass(tinyxml2::XMLElement* section); // get default class name
|
||||
const mjsDefault* GetClass(tinyxml2::XMLElement* section); // get default class name
|
||||
|
||||
bool readingdefaults; // true while reading defaults
|
||||
|
||||
|
||||
Reference in New Issue
Block a user