trait PivotingBogies:
    equalizer_bar is MachineModeling.Components.Primitive.Base with Vehicles.Bulldozer.Interfaces.EqualizerBar.BaseConnectors:
        body becomes Physics3D.Bodies.RigidBody with agxVehicle.EqualizerBar
        left_bogie_connector: equalizer_bar.body.mc_EqualizerBar_L
        right_bogie_connector: equalizer_bar.body.mc_EqualizerBar_R
        chassis_connector: equalizer_bar.body.mc_EqualizerBar_Mid

    undercarriage_connection becomes Vehicles.Bulldozer.Connections.Undercarriage.Pivot:
        chassis: chassis
        equalizer_bar: equalizer_bar
        left_bogie: undercarriage.left_bogie
        right_bogie: undercarriage.right_bogie

    chassis:
        equalizer_bar_connector: chassis.body.mc_EqualizerBar

    undercarriage:
        left_bogie becomes MachineModeling.Components.Primitive.Base with Vehicles.Bulldozer.Interfaces.Bogies.BaseConnectors, Vehicles.Bulldozer.Interfaces.Bogies.EqualizerBarConnector:
            body becomes Physics3D.Bodies.RigidBody with agxVehicle.Bogie_L
            equalizer_bar_connector: undercarriage.left_bogie.body.mc_BogieEqualizerBar_L
            chassis_connector: undercarriage.left_bogie.body.mc_BogiePivot_L
        right_bogie becomes MachineModeling.Components.Primitive.Base with Vehicles.Bulldozer.Interfaces.Bogies.BaseConnectors, Vehicles.Bulldozer.Interfaces.Bogies.EqualizerBarConnector:
            body becomes Physics3D.Bodies.RigidBody with agxVehicle.Bogie_R
            equalizer_bar_connector: undercarriage.right_bogie.body.mc_BogieEqualizerBar_R
            chassis_connector: undercarriage.right_bogie.body.mc_BogiePivot_R
