diff --git a/doc/APIreference/APItypes.rst b/doc/APIreference/APItypes.rst index 9be6d9e4..5f58d803 100644 --- a/doc/APIreference/APItypes.rst +++ b/doc/APIreference/APItypes.rst @@ -1393,7 +1393,7 @@ Alternative orientation specifiers. .. _ArrayHandles: -.. _mjBuffer: +.. _mjByteVec: .. _mjString: @@ -1419,7 +1419,6 @@ C handles for C++ strings and vector types. When using from C, use the provided #ifdef __cplusplus // C++: defined to be compatible with corresponding std types - using mjBuffer = std::vector; using mjString = std::string; using mjStringVec = std::vector; using mjIntVec = std::vector; @@ -1427,9 +1426,9 @@ C handles for C++ strings and vector types. When using from C, use the provided using mjFloatVec = std::vector; using mjFloatVecVec = std::vector>; using mjDoubleVec = std::vector; + using mjByteVec = std::vector; #else // C: opaque types - typedef void mjBuffer; typedef void mjString; typedef void mjStringVec; typedef void mjIntVec; @@ -1437,6 +1436,7 @@ C handles for C++ strings and vector types. When using from C, use the provided typedef void mjFloatVec; typedef void mjFloatVecVec; typedef void mjDoubleVec; + typedef void mjByteVec; #endif diff --git a/doc/includes/references.h b/doc/includes/references.h index f0bc5390..01942d4e 100644 --- a/doc/includes/references.h +++ b/doc/includes/references.h @@ -2028,7 +2028,7 @@ typedef struct mjsTexture_ { // texture specification mjStringVec* cubefiles; // different file for each side of the cube // method 4: from buffer read by user - mjBuffer* data; // texture data + mjByteVec* data; // texture data // flip options mjtByte hflip; // horizontal flip @@ -3588,7 +3588,7 @@ mjsHField* mjs_asHField(mjsElement* element); mjsSkin* mjs_asSkin(mjsElement* element); mjsTexture* mjs_asTexture(mjsElement* element); mjsMaterial* mjs_asMaterial(mjsElement* element); -void mjs_setBuffer(mjBuffer* dest, const void* array, int size); +void mjs_setBuffer(mjByteVec* dest, const void* array, int size); void mjs_setString(mjString* dest, const char* text); void mjs_setStringVec(mjStringVec* dest, const char* text); mjtByte mjs_setInStringVec(mjStringVec* dest, int i, const char* text); diff --git a/include/mujoco/mjspec.h b/include/mujoco/mjspec.h index 1057e559..7d76a46e 100644 --- a/include/mujoco/mjspec.h +++ b/include/mujoco/mjspec.h @@ -33,7 +33,6 @@ extern "C" { #ifdef __cplusplus // C++: defined to be compatible with corresponding std types - using mjBuffer = std::vector; using mjString = std::string; using mjStringVec = std::vector; using mjIntVec = std::vector; @@ -41,9 +40,9 @@ extern "C" { using mjFloatVec = std::vector; using mjFloatVecVec = std::vector>; using mjDoubleVec = std::vector; + using mjByteVec = std::vector; #else // C: opaque types - typedef void mjBuffer; typedef void mjString; typedef void mjStringVec; typedef void mjIntVec; @@ -51,6 +50,7 @@ extern "C" { typedef void mjFloatVec; typedef void mjFloatVecVec; typedef void mjDoubleVec; + typedef void mjByteVec; #endif @@ -515,7 +515,7 @@ typedef struct mjsTexture_ { // texture specification mjStringVec* cubefiles; // different file for each side of the cube // method 4: from buffer read by user - mjBuffer* data; // texture data + mjByteVec* data; // texture data // flip options mjtByte hflip; // horizontal flip diff --git a/include/mujoco/mujoco.h b/include/mujoco/mujoco.h index ac8a5507..86897462 100644 --- a/include/mujoco/mujoco.h +++ b/include/mujoco/mujoco.h @@ -1630,7 +1630,7 @@ MJAPI mjsMaterial* mjs_asMaterial(mjsElement* element); //---------------------------------- Attribute setters --------------------------------------------- // Copy buffer. -MJAPI void mjs_setBuffer(mjBuffer* dest, const void* array, int size); +MJAPI void mjs_setBuffer(mjByteVec* dest, const void* array, int size); // Copy text to string. MJAPI void mjs_setString(mjString* dest, const char* text); diff --git a/introspect/functions.py b/introspect/functions.py index bf2860ba..4e3073e8 100644 --- a/introspect/functions.py +++ b/introspect/functions.py @@ -10253,7 +10253,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([ FunctionParameterDecl( name='dest', type=PointerType( - inner_type=ValueType(name='mjBuffer'), + inner_type=ValueType(name='mjByteVec'), ), ), FunctionParameterDecl( diff --git a/introspect/structs.py b/introspect/structs.py index 12d2af2b..2ed6deef 100644 --- a/introspect/structs.py +++ b/introspect/structs.py @@ -10014,7 +10014,7 @@ STRUCTS: Mapping[str, StructDecl] = dict([ StructFieldDecl( name='data', type=PointerType( - inner_type=ValueType(name='mjBuffer'), + inner_type=ValueType(name='mjByteVec'), ), doc='texture data', ), diff --git a/python/mujoco/codegen/generate_spec_bindings.py b/python/mujoco/codegen/generate_spec_bindings.py index 50b40d1b..2ac03612 100644 --- a/python/mujoco/codegen/generate_spec_bindings.py +++ b/python/mujoco/codegen/generate_spec_bindings.py @@ -148,7 +148,7 @@ def _ptr_binding_code( self.{fullvarname}->push_back(py::cast<{vartype}>(val)); }} }}, py::return_value_policy::reference_internal);""" - elif vartype == 'mjBuffer': # C++ buffer -> Python list + elif vartype == 'mjByteVec': # C++ buffer -> Python list return f"""\ {classname}.def_property( "{varname}", diff --git a/src/user/user_api.cc b/src/user/user_api.cc index 4743f83b..f598db61 100644 --- a/src/user/user_api.cc +++ b/src/user/user_api.cc @@ -885,7 +885,7 @@ mjsMaterial* mjs_asMaterial(mjsElement* element) { // copy buffer to destination buffer -void mjs_setBuffer(mjBuffer* dest, const void* array, int size) { +void mjs_setBuffer(mjByteVec* dest, const void* array, int size) { const std::byte* buffer = static_cast(array); dest->clear(); dest->reserve(size); diff --git a/src/user/user_api.h b/src/user/user_api.h index 967320f5..c30abd53 100644 --- a/src/user/user_api.h +++ b/src/user/user_api.h @@ -303,7 +303,7 @@ MJAPI mjsMaterial* mjs_asMaterial(mjsElement* element); //---------------------------------- Attribute setters --------------------------------------------- // Copy buffer. -MJAPI void mjs_setBuffer(mjBuffer* dest, const void* array, int size); +MJAPI void mjs_setBuffer(mjByteVec* dest, const void* array, int size); // Copy text to string. MJAPI void mjs_setString(mjString* dest, const char* text);