Source code for isaaclab.assets.articulation.articulation

# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

from __future__ import annotations

from typing import TYPE_CHECKING

from isaaclab.utils.backend_utils import FactoryBase

from .base_articulation import BaseArticulation
from .base_articulation_data import BaseArticulationData

if TYPE_CHECKING:
    from isaaclab_physx.assets.articulation import Articulation as PhysXArticulation
    from isaaclab_physx.assets.articulation import ArticulationData as PhysXArticulationData


[docs] class Articulation(FactoryBase, BaseArticulation): """Factory for creating articulation instances.""" data: BaseArticulationData | PhysXArticulationData
[docs] def __new__(cls, *args, **kwargs) -> BaseArticulation | PhysXArticulation: """Create a new instance of an articulation based on the backend.""" # The `FactoryBase` __new__ method will handle the logic and return # an instance of the correct backend-specific articulation class, # which is guaranteed to be a subclass of `BaseArticulation` by convention. return super().__new__(cls, *args, **kwargs)