@@ -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