LinkedTBoomCrane is TBoomCraneTemplate:
    guide_links is Linkages.TelescopicLinkPair:
        separation: column.guide_separation
    drive_links is Linkages.TelescopicLinkPair:
        separation: boom.drive_separation

    boom_connection becomes Connections.LinkedBoomConnection:
        guide_links: guide_links
        drive_links: drive_links
        drive_link_snap.snap_range.start: 0


# A crane where the initial state is defined by the length of the cylinder
LinkedTBoomCraneDistance is LinkedTBoomCrane:
    cylinder.internal_connection.initial_position: 0.4

# A crane where the initial state is defined by the angle of the boom
LinkedTBoomCraneAngle is LinkedTBoomCrane:
    boom_connection.boom_1_boom_2_connection.snap_hinge.initial_angle: 1.2
