# SPDX-FileCopyrightText: Copyright (c) 2022-2025, The Isaac Lab Project Developers.
# SPDX-License-Identifier: BSD-3-Clause

import isaaclab.sim as sim_utils
from isaaclab.assets import AssetBaseCfg, RigidObjectCfg
from isaaclab.sim.spawners.from_files.from_files_cfg import UsdFileCfg
from isaaclab.sim.schemas.schemas_cfg import CollisionPropertiesCfg
from mindbot.utils.assets import MINDBOT_ASSETS_DIR


# 静态桌子（无重力，仅碰撞）：用于 ManagerBasedEnv 场景固定摆设
# 通过 AssetBaseCfg 在 SceneEntityCfg 中使用，不受物理仿真影响
TABLE_CFG = AssetBaseCfg(
    # prim_path="{ENV_REGEX_NS}/Table",
    init_state=AssetBaseCfg.InitialStateCfg(
        pos=[1.95, -0.3, 0.005],
        rot=[0.7071, 0.0, 0.0, -0.7071],
    ),
    spawn=UsdFileCfg(
        usd_path=f"{MINDBOT_ASSETS_DIR}/sences/Table_C_coll/Table_C.usd",
        collision_props=CollisionPropertiesCfg(collision_enabled=True),
        rigid_props=sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True),
    ),
)

# 动态桌子（有重力）：受物理仿真影响，需通过 RigidObject(cfg=TABLE_RIGID_CFG) 实例化
# disable_gravity=False 表示启用重力；桌子质量由 USD 内部定义或 PhysX 自动估算
TABLE_RIGID_CFG = RigidObjectCfg(
    # prim_path="{ENV_REGEX_NS}/Table",
    init_state=RigidObjectCfg.InitialStateCfg(
        pos=[1.95, -0.3, 0.005],
        rot=[0.7071, 0.0, 0.0, -0.7071],
    ),
    spawn=sim_utils.UsdFileCfg(
        usd_path=f"{MINDBOT_ASSETS_DIR}/sences/Table_C_coll/Table_C.usd",
        rigid_props=sim_utils.RigidBodyPropertiesCfg(
            disable_gravity=False,          # 启用重力
            max_depenetration_velocity=1.0,
        ),
        collision_props=sim_utils.CollisionPropertiesCfg(collision_enabled=True),
    ),
)
