Clean up X macros and usages for mjOption, mjStatistic, and mjVisual.
* Replace various MJOPTION_ macros with a single MJOPTION_FIELDS. * Use XVEC macro to denote vector members where there is a mixture of vector and scalar members in a given struct type. * Split up MJVISUAL_FIELDS into separate macros for each substruct. * Modify engine_print.c and Python bindings struct.h/cc to use the new X macros. PiperOrigin-RevId: 869760513 Change-Id: Idac4fe9aa99f0258e7c79802ca9023a0d4486e2d
This commit is contained in:
committed by
Copybara-Service
parent
6d8b6028e2
commit
5274e5f720
+16
-36
@@ -217,11 +217,13 @@ class MjWrapper<raw::MjOption> : public WrapperBase<raw::MjOption> {
|
||||
MjWrapper(raw::MjOption* ptr, pybind11::handle owner);
|
||||
~MjWrapper() = default;
|
||||
|
||||
#define X(var, dim) \
|
||||
#define X(type, var, dim)
|
||||
#define XVEC(type, var, dim) \
|
||||
py_array_or_tuple_t< \
|
||||
std::remove_all_extents_t<decltype(raw::MjOption::var)>> \
|
||||
var;
|
||||
MJOPTION_VECTORS
|
||||
MJOPTION_FIELDS
|
||||
#undef XVEC
|
||||
#undef X
|
||||
};
|
||||
|
||||
@@ -241,13 +243,13 @@ class MjWrapper<raw::MjVisualHeadlight>
|
||||
MjWrapper(raw::MjVisualHeadlight* ptr, pybind11::handle owner);
|
||||
~MjWrapper() = default;
|
||||
|
||||
#define X(var) \
|
||||
#define X(type, var, dim)
|
||||
#define XVEC(type, var, dim) \
|
||||
py_array_or_tuple_t< \
|
||||
std::remove_all_extents_t<decltype(raw::MjVisualHeadlight::var)>> \
|
||||
var
|
||||
X(ambient);
|
||||
X(diffuse);
|
||||
X(specular);
|
||||
var;
|
||||
MJVISUAL_HEADLIGHT_FIELDS
|
||||
#undef XVEC
|
||||
#undef X
|
||||
};
|
||||
|
||||
@@ -268,32 +270,8 @@ class MjWrapper<raw::MjVisualRgba> : public WrapperBase<raw::MjVisualRgba> {
|
||||
#define X(var) \
|
||||
py_array_or_tuple_t< \
|
||||
std::remove_all_extents_t<decltype(raw::MjVisualRgba::var)>> \
|
||||
var
|
||||
X(fog);
|
||||
X(haze);
|
||||
X(force);
|
||||
X(inertia);
|
||||
X(joint);
|
||||
X(actuator);
|
||||
X(actuatornegative);
|
||||
X(actuatorpositive);
|
||||
X(com);
|
||||
X(camera);
|
||||
X(light);
|
||||
X(selectpoint);
|
||||
X(connect);
|
||||
X(contactpoint);
|
||||
X(contactforce);
|
||||
X(contactfriction);
|
||||
X(contacttorque);
|
||||
X(contactgap);
|
||||
X(rangefinder);
|
||||
X(constraint);
|
||||
X(slidercrank);
|
||||
X(crankbroken);
|
||||
X(frustum);
|
||||
X(bv);
|
||||
X(bvactive);
|
||||
var;
|
||||
MJVISUAL_RGBA_FIELDS
|
||||
#undef X
|
||||
};
|
||||
|
||||
@@ -330,11 +308,13 @@ class MjWrapper<raw::MjStatistic> : public WrapperBase<raw::MjStatistic> {
|
||||
MjWrapper(raw::MjStatistic* ptr, pybind11::handle owner);
|
||||
~MjWrapper() = default;
|
||||
|
||||
#define X(var) \
|
||||
#define X(var, dim)
|
||||
#define XVEC(var, dim) \
|
||||
py_array_or_tuple_t< \
|
||||
std::remove_all_extents_t<decltype(raw::MjStatistic::var)>> \
|
||||
var
|
||||
X(center);
|
||||
var;
|
||||
MJSTATISTIC_FIELDS
|
||||
#undef XVEC
|
||||
#undef X
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user