Skip to content

Commit 54d523e

Browse files
committed
refactor to use set_setting for carb in simulation_context
1 parent 4eaaf6b commit 54d523e

File tree

1 file changed

+16
-33
lines changed

1 file changed

+16
-33
lines changed

source/isaaclab/isaaclab/sim/simulation_context.py

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,17 @@ def set_setting(self, name: str, value: Any):
449449
name: The name of the setting.
450450
value: The value of the setting.
451451
"""
452-
self._settings.set(name, value)
452+
# Route through typed setters for correctness and consistency.
453+
if isinstance(value, bool):
454+
self.carb_settings.set_bool(name, value)
455+
elif isinstance(value, int):
456+
self.carb_settings.set_int(name, value)
457+
elif isinstance(value, float):
458+
self.carb_settings.set_float(name, value)
459+
elif isinstance(value, str):
460+
self.carb_settings.set_string(name, value)
461+
else:
462+
raise ValueError(f"Unsupported value type for setting '{name}': {type(value)}")
453463

454464
def get_setting(self, name: str) -> Any:
455465
"""Read the simulation setting using the Carbonite SDK.
@@ -460,7 +470,7 @@ def get_setting(self, name: str) -> Any:
460470
Returns:
461471
The value of the setting.
462472
"""
463-
return self._settings.get(name)
473+
return self.carb_settings.get(name)
464474

465475
def forward(self) -> None:
466476
"""Updates articulation kinematics and fabric for rendering."""
@@ -730,16 +740,7 @@ def _apply_render_settings_from_cfg(self): # noqa: C901
730740
# set presets
731741
for key, value in preset_dict.items():
732742
key = "/" + key.replace(".", "/") # convert to carb setting format
733-
if isinstance(value, bool):
734-
self.carb_settings.set_bool(key, value)
735-
elif isinstance(value, int):
736-
self.carb_settings.set_int(key, value)
737-
elif isinstance(value, float):
738-
self.carb_settings.set_float(key, value)
739-
elif isinstance(value, str):
740-
self.carb_settings.set_string(key, value)
741-
else:
742-
raise ValueError(f"Unsupported value type: {type(value)}")
743+
self.set_setting(key, value)
743744

744745
# set user-friendly named settings
745746
for key, value in vars(self.cfg.render).items():
@@ -752,16 +753,7 @@ def _apply_render_settings_from_cfg(self): # noqa: C901
752753
" need to be updated."
753754
)
754755
key = rendering_setting_name_mapping[key]
755-
if isinstance(value, bool):
756-
self.carb_settings.set_bool(key, value)
757-
elif isinstance(value, int):
758-
self.carb_settings.set_int(key, value)
759-
elif isinstance(value, float):
760-
self.carb_settings.set_float(key, value)
761-
elif isinstance(value, str):
762-
self.carb_settings.set_string(key, value)
763-
else:
764-
raise ValueError(f"Unsupported value type: {type(value)}")
756+
self.set_setting(key, value)
765757

766758
# set general carb settings
767759
carb_settings = self.cfg.render.carb_settings
@@ -771,18 +763,9 @@ def _apply_render_settings_from_cfg(self): # noqa: C901
771763
key = "/" + key.replace("_", "/") # convert from python variable style string
772764
elif "." in key:
773765
key = "/" + key.replace(".", "/") # convert from .kit file style string
774-
if self.carb_settings.get(key) is None:
766+
if self.get_setting(key) is None:
775767
raise ValueError(f"'{key}' in RenderCfg.general_parameters does not map to a carb setting.")
776-
if isinstance(value, bool):
777-
self.carb_settings.set_bool(key, value)
778-
elif isinstance(value, int):
779-
self.carb_settings.set_int(key, value)
780-
elif isinstance(value, float):
781-
self.carb_settings.set_float(key, value)
782-
elif isinstance(value, str):
783-
self.carb_settings.set_string(key, value)
784-
else:
785-
raise ValueError(f"Unsupported value type: {type(value)}")
768+
self.set_setting(key, value)
786769

787770
# set denoiser mode
788771
if self.cfg.render.antialiasing_mode is not None:

0 commit comments

Comments
 (0)