@@ -5005,9 +5005,9 @@ def func_update_verts_for_geom(
50055005 fixed_verts_state : array_class .VertsState ,
50065006):
50075007 if not geoms_state .verts_updated [i_g , i_b ]:
5008- i_g_start = geoms_info .vert_start [i_g ]
5009- if verts_info .is_fixed [i_g_start ]:
5010- for i_v in range (i_g_start , geoms_info .vert_end [i_g ]):
5008+ i_v_start = geoms_info .vert_start [i_g ]
5009+ if verts_info .is_fixed [i_v_start ]:
5010+ for i_v in range (i_v_start , geoms_info .vert_end [i_g ]):
50115011 verts_state_idx = verts_info .verts_state_idx [i_v ]
50125012 fixed_verts_state .pos [verts_state_idx ] = gu .ti_transform_by_trans_quat (
50135013 verts_info .init_pos [i_v ], geoms_state .pos [i_g , i_b ], geoms_state .quat [i_g , i_b ]
@@ -5016,7 +5016,7 @@ def func_update_verts_for_geom(
50165016 for j_b in range (_B ):
50175017 geoms_state .verts_updated [i_g , j_b ] = True
50185018 else :
5019- for i_v in range (i_g_start , geoms_info .vert_end [i_g ]):
5019+ for i_v in range (i_v_start , geoms_info .vert_end [i_g ]):
50205020 verts_state_idx = verts_info .verts_state_idx [i_v ]
50215021 free_verts_state .pos [verts_state_idx , i_b ] = gu .ti_transform_by_trans_quat (
50225022 verts_info .init_pos [i_v ], geoms_state .pos [i_g , i_b ], geoms_state .quat [i_g , i_b ]
@@ -5026,34 +5026,26 @@ def func_update_verts_for_geom(
50265026
50275027@ti .func
50285028def func_update_all_verts (
5029+ geoms_info : array_class .GeomsInfo ,
50295030 geoms_state : array_class .GeomsState ,
50305031 verts_info : array_class .VertsInfo ,
50315032 free_verts_state : array_class .VertsState ,
50325033 fixed_verts_state : array_class .VertsState ,
50335034):
5034- n_verts = verts_info .geom_idx .shape [0 ]
5035- _B = geoms_state .pos .shape [1 ]
5036- for i_v , i_b in ti .ndrange (n_verts , _B ):
5037- i_g = verts_info .geom_idx [i_v ]
5038- verts_state_idx = verts_info .verts_state_idx [i_v ]
5039- if verts_info .is_fixed [i_v ]:
5040- fixed_verts_state .pos [verts_state_idx ] = gu .ti_transform_by_trans_quat (
5041- verts_info .init_pos [i_v ], geoms_state .pos [i_g , i_b ], geoms_state .quat [i_g , i_b ]
5042- )
5043- else :
5044- free_verts_state .pos [verts_state_idx , i_b ] = gu .ti_transform_by_trans_quat (
5045- verts_info .init_pos [i_v ], geoms_state .pos [i_g , i_b ], geoms_state .quat [i_g , i_b ]
5046- )
5035+ n_geoms , _B = geoms_state .pos .shape
5036+ for i_g , i_b in ti .ndrange (n_geoms , _B ):
5037+ func_update_verts_for_geom (i_g , i_b , geoms_state , geoms_info , verts_info , free_verts_state , fixed_verts_state )
50475038
50485039
50495040@ti .kernel (fastcache = gs .use_fastcache )
50505041def kernel_update_all_verts (
5042+ geoms_info : array_class .GeomsInfo ,
50515043 geoms_state : array_class .GeomsState ,
50525044 verts_info : array_class .VertsInfo ,
50535045 free_verts_state : array_class .VertsState ,
50545046 fixed_verts_state : array_class .VertsState ,
50555047):
5056- func_update_all_verts (geoms_state , verts_info , free_verts_state , fixed_verts_state )
5048+ func_update_all_verts (geoms_info , geoms_state , verts_info , free_verts_state , fixed_verts_state )
50575049
50585050
50595051@ti .kernel
@@ -5115,7 +5107,6 @@ def func_hibernate__for_all_awake_islands_either_hiberanate_or_update_aabb_sort_
51155107 static_rigid_sim_config : ti .template (),
51165108 contact_island_state : array_class .ContactIslandState ,
51175109) -> None :
5118-
51195110 n_entities = entities_state .hibernated .shape [0 ]
51205111 _B = entities_state .hibernated .shape [1 ]
51215112
0 commit comments