// With comments included, this file is no longer legal JSON, but serves to illustrate
// the format of the configuration file the evs_app expects to read at startup to configure itself
// for a specific car.
// In addition to the configuration file, an image to be used to represent the car is expected
// to be provided in CarFromTop.png.
// Throughout this file, units of length are arbitrary, but must all be the same units.
// X is right, Y is forward, Z is up (right handed coordinate system).
// The origin is at the center of the read axel at ground level.
// Units for angles are in degrees.
// Yaw is measured from the front of the car, positive to the left (postive Z rotation).
// Pitch is measured from the horizon, positive upward (postive X rotation).
// Roll is always assumed to be zero.

{
  "car" : {                     // This section describes the geometry of the car
    "width"  : 76.7,            // The width of the car body
    "wheelBase" : 117.9,        // The distance between the front and read axel
    "frontExtent" : 44.7,       // The extent of the car body ahead of the front axel
    "rearExtent" : 40           // The extent of the car body behind the read axel
  },
  "display" : {                 // This configures the dimensions of the surround view display
    "frontRange" : 100,         // How far to render the view in front of the front bumper
    "rearRange" : 100           // How far the view extends behind the rear bumper
  },
  "graphic" : {                 // This maps the car texture into the projected view space
    "frontPixel" : 23,          // The pixel row in CarFromTop.png at which the front bumper appears
    "rearPixel" : 223           // The pixel row in CarFromTop.png at which the back bumper ends
  },
  "cameras" : [                 // This describes the cameras potentially available on the car
    {
      "cameraId" : "/dev/video32",  // Camera ID exposed by EVS HAL
      "function" : "reverse,park",  // set of modes to which this camera contributes
      "x" : 0.0,                    // Optical center distance right of vehicle center
      "y" : -40.0,                  // Optical center distance forward of rear axel
      "z" : 48,                     // Optical center distance above ground
      "yaw" : 180,                  // Optical axis degrees to the left of straight ahead
      "pitch" : -30,                // Optical axis degrees above the horizon
      "hfov" : 125,                 // Horizontal field of view in degrees
      "vfov" :103                   // Vertical field of view in degrees
    }
  ]
}
