Context manager for temporarily overriding rendering flags. Args: overrides: A mapping specifying rendering flags to override. The keys can be either lowercase strings or `mjtRndFlag` enum values, and the values are the overridden flag values, e.g. `{'wireframe': True}` or
(self, overrides)
| 696 | |
| 697 | @contextlib.contextmanager |
| 698 | def override_flags(self, overrides): |
| 699 | """Context manager for temporarily overriding rendering flags. |
| 700 | |
| 701 | Args: |
| 702 | overrides: A mapping specifying rendering flags to override. The keys can |
| 703 | be either lowercase strings or `mjtRndFlag` enum values, and the values |
| 704 | are the overridden flag values, e.g. `{'wireframe': True}` or |
| 705 | `{mujoco.mjtRndFlag.mjRND_WIREFRAME: True}`. See `mujoco.mjtRndFlag` for |
| 706 | the set of valid flags. |
| 707 | |
| 708 | Yields: |
| 709 | None |
| 710 | """ |
| 711 | if not overrides: |
| 712 | yield |
| 713 | else: |
| 714 | original_flags = self.flags.copy() |
| 715 | for key, value in overrides.items(): |
| 716 | index = _NAME_TO_RENDER_FLAG_ENUM_VALUE.get(key, key) |
| 717 | self.flags[index] = value |
| 718 | try: |
| 719 | yield |
| 720 | finally: |
| 721 | np.copyto(self.flags, original_flags) |
| 722 | |
| 723 | def free(self): |
| 724 | """Frees the native resources held by this MjvScene. |