Add pluggable resource writing to MuJoCo
Extend mjpResourceProvider with an optional write callback (write) so that mj_encode, mj_saveXML, and mj_saveModel can write to any registered provider. PiperOrigin-RevId: 945202741 Change-Id: I37903425260932e555f4a8c2392c4ff8c2e6cc06
This commit is contained in:
committed by
Copybara-Service
parent
bdeb7e7c4d
commit
dc7581acfa
@@ -265,6 +265,7 @@ _OMITTED_FUNCTIONS = [
|
||||
'mju_openResource',
|
||||
'mju_closeResource',
|
||||
'mju_readResource',
|
||||
'mju_writeResource',
|
||||
'mju_getResourceDir',
|
||||
'mju_isModifiedResource',
|
||||
'mj_compile',
|
||||
|
||||
@@ -9929,6 +9929,48 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
||||
),
|
||||
doc='Set buffer to bytes read from the resource and return number of bytes in buffer; return negative value if error.', # pylint: disable=line-too-long
|
||||
)),
|
||||
('mju_writeResource',
|
||||
FunctionDecl(
|
||||
name='mju_writeResource',
|
||||
return_type=ValueType(name='mjtSize'),
|
||||
parameters=(
|
||||
FunctionParameterDecl(
|
||||
name='name',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='char', is_const=True),
|
||||
),
|
||||
),
|
||||
FunctionParameterDecl(
|
||||
name='buffer',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='void', is_const=True),
|
||||
),
|
||||
),
|
||||
FunctionParameterDecl(
|
||||
name='nbytes',
|
||||
type=ValueType(name='mjtSize'),
|
||||
),
|
||||
FunctionParameterDecl(
|
||||
name='vfs',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='mjVFS', is_const=True),
|
||||
),
|
||||
nullable=True,
|
||||
),
|
||||
FunctionParameterDecl(
|
||||
name='error',
|
||||
type=PointerType(
|
||||
inner_type=ValueType(name='char'),
|
||||
),
|
||||
nullable=True,
|
||||
),
|
||||
FunctionParameterDecl(
|
||||
name='nerror',
|
||||
type=ValueType(name='size_t'),
|
||||
),
|
||||
),
|
||||
doc='Write resource data via its resource provider, return bytes written or -1 on error.', # pylint: disable=line-too-long
|
||||
)),
|
||||
('mju_getResourceDir',
|
||||
FunctionDecl(
|
||||
name='mju_getResourceDir',
|
||||
|
||||
Reference in New Issue
Block a user