@Override
  public List<Point2D_F64> getAllTracks() {
    FastQueue<VisOdomQuadPnP.QuadView> features = alg.getQuadViews();

    List<Point2D_F64> ret = new ArrayList<Point2D_F64>();
    for (VisOdomQuadPnP.QuadView v : features.toList()) ret.add(v.v2); // new left camera

    return ret;
  }
 @Override
 public boolean isInlier(int index) {
   ModelMatcher<Se3_F64, Stereo2D3D> matcher = alg.getMatcher();
   int N = matcher.getMatchSet().size();
   for (int i = 0; i < N; i++) {
     if (matcher.getInputIndex(i) == index) return true;
   }
   return false;
 }
  @Override
  public void setCalibration(StereoParameters parameters) {
    Se3_F64 leftToRight = parameters.getRightToLeft().invert(null);

    alg.setCalibration(parameters);
    associateStereo.setCalibration(parameters);
    distance.setStereoParameters(parameters);

    IntrinsicParameters left = parameters.left;
    distanceMono.setIntrinsic(left.fx, left.fy, left.skew);

    if (refine != null) refine.setLeftToRight(leftToRight);
  }
  @Override
  public Point3D_F64 getTrackLocation(int index) {
    FastQueue<VisOdomQuadPnP.QuadView> features = alg.getQuadViews();

    return features.get(index).X;
  }
 @Override
 public boolean process(T leftImage, T rightImage) {
   return alg.process(leftImage, rightImage);
 }
 @Override
 public Se3_F64 getCameraToWorld() {
   return alg.getLeftToWorld();
 }
 @Override
 public void reset() {
   alg.reset();
 }