Add mjs_findKeyframe.
PiperOrigin-RevId: 649036650 Change-Id: If514d5c333dd6084af9509324fd658c72576d7b5
This commit is contained in:
committed by
Copybara-Service
parent
8f16b72f44
commit
9107d3b507
@@ -4113,6 +4113,15 @@ mjs_findFrame
|
|||||||
|
|
||||||
Find frame by name.
|
Find frame by name.
|
||||||
|
|
||||||
|
.. _mjs_findKeyframe:
|
||||||
|
|
||||||
|
mjs_findKeyframe
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. mujoco-include:: mjs_findKeyframe
|
||||||
|
|
||||||
|
Find keyframe by name.
|
||||||
|
|
||||||
.. _mjs_getDefault:
|
.. _mjs_getDefault:
|
||||||
|
|
||||||
mjs_getDefault
|
mjs_getDefault
|
||||||
|
|||||||
@@ -3544,6 +3544,7 @@ mjsBody* mjs_findBody(mjSpec* s, const char* name);
|
|||||||
mjsBody* mjs_findChild(mjsBody* body, const char* name);
|
mjsBody* mjs_findChild(mjsBody* body, const char* name);
|
||||||
mjsMesh* mjs_findMesh(mjSpec* s, const char* name);
|
mjsMesh* mjs_findMesh(mjSpec* s, const char* name);
|
||||||
mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||||
|
mjsKey* mjs_findKeyframe(mjSpec* s, const char* name);
|
||||||
mjsDefault* mjs_getDefault(mjsElement* element);
|
mjsDefault* mjs_getDefault(mjsElement* element);
|
||||||
mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
mjsDefault* mjs_findDefault(mjSpec* s, const char* classname);
|
||||||
mjsDefault* mjs_getSpecDefault(mjSpec* s);
|
mjsDefault* mjs_getSpecDefault(mjSpec* s);
|
||||||
|
|||||||
@@ -1530,6 +1530,9 @@ MJAPI mjsMesh* mjs_findMesh(mjSpec* s, const char* name);
|
|||||||
// Find frame by name.
|
// Find frame by name.
|
||||||
MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||||
|
|
||||||
|
// Find keyframe by name.
|
||||||
|
MJAPI mjsKey* mjs_findKeyframe(mjSpec* s, const char* name);
|
||||||
|
|
||||||
// Get default corresponding to an element.
|
// Get default corresponding to an element.
|
||||||
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
||||||
|
|
||||||
|
|||||||
@@ -9703,6 +9703,28 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
|||||||
),
|
),
|
||||||
doc='Find frame by name.',
|
doc='Find frame by name.',
|
||||||
)),
|
)),
|
||||||
|
('mjs_findKeyframe',
|
||||||
|
FunctionDecl(
|
||||||
|
name='mjs_findKeyframe',
|
||||||
|
return_type=PointerType(
|
||||||
|
inner_type=ValueType(name='mjsKey'),
|
||||||
|
),
|
||||||
|
parameters=(
|
||||||
|
FunctionParameterDecl(
|
||||||
|
name='s',
|
||||||
|
type=PointerType(
|
||||||
|
inner_type=ValueType(name='mjSpec'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
FunctionParameterDecl(
|
||||||
|
name='name',
|
||||||
|
type=PointerType(
|
||||||
|
inner_type=ValueType(name='char', is_const=True),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
doc='Find keyframe by name.',
|
||||||
|
)),
|
||||||
('mjs_getDefault',
|
('mjs_getDefault',
|
||||||
FunctionDecl(
|
FunctionDecl(
|
||||||
name='mjs_getDefault',
|
name='mjs_getDefault',
|
||||||
|
|||||||
@@ -144,6 +144,12 @@ PYBIND11_MODULE(_specs, m) {
|
|||||||
return mjs_findFrame(self.ptr, name.c_str());
|
return mjs_findFrame(self.ptr, name.c_str());
|
||||||
},
|
},
|
||||||
py::return_value_policy::reference_internal);
|
py::return_value_policy::reference_internal);
|
||||||
|
mjSpec.def(
|
||||||
|
"find_keyframe",
|
||||||
|
[](MjSpec& self, std::string& name) -> raw::MjsKey* {
|
||||||
|
return mjs_findKeyframe(self.ptr, name.c_str());
|
||||||
|
},
|
||||||
|
py::return_value_policy::reference_internal);
|
||||||
mjSpec.def(
|
mjSpec.def(
|
||||||
"find_default",
|
"find_default",
|
||||||
[](MjSpec& self, std::string& classname) -> raw::MjsDefault* {
|
[](MjSpec& self, std::string& classname) -> raw::MjsDefault* {
|
||||||
|
|||||||
@@ -530,6 +530,15 @@ mjsFrame* mjs_findFrame(mjSpec* s, const char* name) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// find keyframe by name
|
||||||
|
mjsKey* mjs_findKeyframe(mjSpec* s, const char* name) {
|
||||||
|
mjCModel* model = static_cast<mjCModel*>(s->element);
|
||||||
|
mjCKey* key = (mjCKey*)model->FindObject(mjOBJ_KEY, std::string(name));
|
||||||
|
return key ? &(static_cast<mjCKey*>(key)->spec) : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// set frame
|
// set frame
|
||||||
void mjs_setFrame(mjsElement* dest, mjsFrame* frame) {
|
void mjs_setFrame(mjsElement* dest, mjsFrame* frame) {
|
||||||
if (!frame) {
|
if (!frame) {
|
||||||
|
|||||||
@@ -194,6 +194,9 @@ MJAPI mjsMesh* mjs_findMesh(mjSpec* s, const char* name);
|
|||||||
// Find frame by name.
|
// Find frame by name.
|
||||||
MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
MJAPI mjsFrame* mjs_findFrame(mjSpec* s, const char* name);
|
||||||
|
|
||||||
|
// Find keyframe by name.
|
||||||
|
MJAPI mjsKey* mjs_findKeyframe(mjSpec* s, const char* name);
|
||||||
|
|
||||||
// Get default corresponding to an element.
|
// Get default corresponding to an element.
|
||||||
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
MJAPI mjsDefault* mjs_getDefault(mjsElement* element);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user