// 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
  },
  "displays" : [                // This configures the dimensions of the surround view display
    {                           // The first display will be used as the default display
      "displayPort" : 1         // Display port number, the target display is connected to.
      "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
      "roll" : 0,                   // Rotation degrees around the optical axis
      "hfov" : 125,                 // Horizontal field of view in degrees
      "vfov" :103,                  // Vertical field of view in degrees
      "hflip" : true,               // Flip the view horizontally
      "vflip" : true,               // Flip the view vertically
    }
  ]
}
