org.firstinspires.ftc.robotcore.external.navigation

## Class VuforiaLocalizer.Parameters

- java.lang.Object
- - org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer.Parameters

- Enclosing interface:
    VuforiaLocalizer

      public static class VuforiaLocalizer.Parameters
      extends java.lang.Object

  `VuforiaLocalizer.Parameters` provides configuration information for instantiating the Vuforia localizer

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `VuforiaLocalizer.Parameters.CameraMonitorFeedback` `VuforiaLocalizer.Parameters.CameraMonitorFeedback` enumerates the kinds of positioning feedback that may be drawn in the camera monitor window.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `Activity` | `activity` The activity in which the localizer is to run.
    `Camera` | `camera` If non-null, then this indicates the `Camera` to use with Vuforia.
    `VuforiaLocalizer.CameraDirection` | `cameraDirection` If `camera` is null and `cameraName` is the 'unknown' camera name, then this value is used to indicate the camera to use with Vuforia.
    `VuforiaLocalizer.Parameters.CameraMonitorFeedback` | `cameraMonitorFeedback` Indicates the style of camera monitoring feedback to use.
    `int` | `cameraMonitorViewIdParent` The resource id of the view within `activity` that will be used as the parent for a live monitor which provides feedback as to what the camera is seeing.
    `ViewGroup` | `cameraMonitorViewParent` The view that will be used as the parent for a live monitor which provides feedback as to what the the camera is seeing.
    `CameraName` | `cameraName` If `camera` is non-null, this value is ignored.
    `boolean` | `fillCameraMonitorViewParent` Controls whether the camera monitor should entirely fill the camera monitor view parent or not.
    `double` | `maxWebcamAspectRatio` Controls the aspect ratios used with webcams.
    `double` | `minWebcamAspectRatio` Controls the aspect ratios used with webcams.
    `int` | `secondsUsbPermissionTimeout` How long to wait for USB permissions when connecting to a webcam.
    `boolean` | `useExtendedTracking` Indicates whether to use Vuforia's extended tracking mode.
    `java.lang.String` | `vuforiaLicenseKey` The license key with which to use Vuforia.
    `java.io.File[]` | `webcamCalibrationFiles` Camera calibrations resident in files instead of resources.
    `int[]` | `webcamCalibrationResources` The resources (if any, may be empty or null) used to provide additional camera calibration data for webcams used with Vuforia.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Parameters()`
    `Parameters(int cameraMonitorViewIdParent)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addWebcamCalibrationFile(java.io.File file)`
    `void` | `addWebcamCalibrationFile(java.lang.String name)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### vuforiaLicenseKey

          public java.lang.String vuforiaLicenseKey

      The license key with which to use Vuforia. Vuforia will not load without a valid license being provided. Vuforia 'Development' license keys, which is what is needed here, can be obtained free of charge from the Vuforia developer web site at https://developer.vuforia.com/license-manager Valid Vuforia license keys are always 380 characters long, and look as if they contain mostly random data. As an example, here is a example of a fragment of a valid key: ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... Once you've obtained a license key, copy the string form of the key from the Vuforia web site and paste it in to your code as the value of the 'vuforiaLicenseKey' field of the `VuforiaLocalizer.Parameters` instance with which you initialize Vuforia.

    - #### camera

          public Camera camera

      If non-null, then this indicates the `Camera` to use with Vuforia. Otherwise, the camera is determined using `cameraName` and `cameraDirection`.
      See Also:
        `cameraName`, `cameraDirection`

    - #### cameraName

          public CameraName cameraName

      If `camera` is non-null, this value is ignored. Otherwise, if this value is neither null nor the 'unknown' camera name, the it indicates the name of the camera to use with Vuforia. It will be opened as needed. Otherwise, if this value is the 'unknown' camera name, then this value is ignored and `cameraDirection` is used to indicate the camera. Otherwise, this value is null, and an error has occurred.
      See Also:
        `camera`, `cameraDirection`

    - #### cameraDirection

          public VuforiaLocalizer.CameraDirection cameraDirection

      If `camera` is null and `cameraName` is the 'unknown' camera name, then this value is used to indicate the camera to use with Vuforia. Note that this value can only indicate the use of built-in cameras found on a phone.
      See Also:
        `camera`, `cameraName`

    - #### useExtendedTracking

          public boolean useExtendedTracking

      Indicates whether to use Vuforia's extended tracking mode. Extended tracking allows tracking to continue even once an image tracker has gone out of view.
      See Also:
        Vuforia Extended Tracking

    - #### cameraMonitorFeedback

          public VuforiaLocalizer.Parameters.CameraMonitorFeedback cameraMonitorFeedback

      Indicates the style of camera monitoring feedback to use. Null indicates that a default feedback style is to be used. `None` indicates that the camera monitoring is to be provided, but no feedback is to be drawn thereon.
      See Also:
        `VuforiaLocalizer.Parameters.CameraMonitorFeedback`, `cameraMonitorViewIdParent`

    - #### cameraMonitorViewIdParent

          public int cameraMonitorViewIdParent

      The resource id of the view within `activity` that will be used as the parent for a live monitor which provides feedback as to what the camera is seeing. If both `cameraMonitorViewIdParent` and `cameraMonitorViewParent` are specified, `cameraMonitorViewParent` is used and `cameraMonitorViewIdParent` is ignored. Optional: if no view monitor parent is indicated, then no camera monitoring is provided. The default is zero, which does not indicate a view parent.
      See Also:
        `cameraMonitorViewParent`, `fillCameraMonitorViewParent`

    - #### cameraMonitorViewParent

          public ViewGroup cameraMonitorViewParent

      The view that will be used as the parent for a live monitor which provides feedback as to what the the camera is seeing. If both `cameraMonitorViewIdParent` and `cameraMonitorViewParent` are specified, `cameraMonitorViewParent` is used and `cameraMonitorViewIdParent` is ignored. Optional: if no view monitor parent is indicated, then no camera monitoring is provided. The default is null.
      See Also:
        `cameraMonitorViewIdParent`, `fillCameraMonitorViewParent`

    - #### fillCameraMonitorViewParent

          public boolean fillCameraMonitorViewParent

      Controls whether the camera monitor should entirely fill the camera monitor view parent or not. If true, then, depending on the aspect ratios of the camera and the view, some of the camera's data might not be seen. The default is false, which renders the entire camera image in the camera monitor view (if the latter is specified).
      See Also:
        `cameraMonitorViewIdParent`, `cameraMonitorViewParent`

    - #### activity

          public Activity activity

      The activity in which the localizer is to run. May be null, in which case the contextually current activity will be used.

    - #### webcamCalibrationResources

          public int[] webcamCalibrationResources

      The resources (if any, may be empty or null) used to provide additional camera calibration data for webcams used with Vuforia. Using calibrated camera helps increase the accuracy of Vuforia image target tracking. Calibration for several cameras is built into the FTC SDK; the optional resources here provides a means for teams to provide calibrations beyond this built-in set. The format required of the XML resource is indicated in the teamwebcamcalibrations resource provided.
      See Also:
        `webcamCalibrationFiles`

    - #### webcamCalibrationFiles

          public java.io.File[] webcamCalibrationFiles

      Camera calibrations resident in files instead of resources.
      See Also:
        `webcamCalibrationResources`

    - #### maxWebcamAspectRatio

          public double maxWebcamAspectRatio

      Controls the aspect ratios used with webcams. Webcams whose aspect ratio (defined as width / height) is larger than this value will not be used unless no other viable options exist. Example values of some utility include 1920.0 / 1080.0, 640.0 / 480.0, and the like.
      See Also:
        `minWebcamAspectRatio`

    - #### minWebcamAspectRatio

          public double minWebcamAspectRatio

      Controls the aspect ratios used with webcams. Webcams whose aspect ratio (defined as width / height) is smaller than this value will not be used unless no other viable options exist.
      See Also:
        `maxWebcamAspectRatio`

    - #### secondsUsbPermissionTimeout

          public int secondsUsbPermissionTimeout

      How long to wait for USB permissions when connecting to a webcam.

  - ### Constructor Detail

    - #### Parameters

          public Parameters()

    - #### Parameters

          public Parameters(int cameraMonitorViewIdParent)

  - ### Method Detail

    - #### addWebcamCalibrationFile

          public void addWebcamCalibrationFile(java.lang.String name)

    - #### addWebcamCalibrationFile

          public void addWebcamCalibrationFile(java.io.File file)