# Track Material
const BulldozerTrackMaterial is Physics.Geometries.Material:
    density: 1800

# Properties of individual track links
BulldozerLinkDescription is Vehicles.TrackSystem.Components.Tracks.LinkDescription.Box:
    with Vehicles.TrackSystem.Components.Tracks.Traits.BoxVisual
    # with Vehicles.TrackSystem.Components.Tracks.Traits.Visual
    #visual_geometry becomes Visuals.Geometries.Box:
    #    size: { 0.61, 0.093, 0.2 }

    width: 0.61
    height: 0.093

# Properties of complete Track belt
BulldozerTracks is Vehicles.TrackSystem.Components.Tracks.Base:
    link_count: 22
    link_description becomes BulldozerLinkDescription
    material: BulldozerTrackMaterial

CenterAxis is Math.Vec3: -Math.Vec3.Z_AXIS()

# Track system to generate the belt around the provided road wheels.
TrackSystem is Vehicles.TrackSystem.Base:
    tracks becomes BulldozerTracks
    tracks.link_count: 60

    tension_initialization.node_distance: 1e-3

    sprocket is Vehicles.TrackSystem.Components.TrackWheels.Sprocket:
        local_center_axis: CenterAxis

    roller_1 is Vehicles.TrackSystem.Components.TrackWheels.Roller:
        local_center_axis: CenterAxis
    roller_2 is Vehicles.TrackSystem.Components.TrackWheels.Roller:
        local_center_axis: CenterAxis

    track_wheels: [sprocket, roller_1, roller_2]
