code: private void computeAngleOfRotation(PointTrack t, Vector3D_F64 pointingPlane) {
  		VoTrack p = t.getCookie();
  
  		// Compute ground pointing vector
  		groundCurr.x = pointingPlane.z;
  		groundCurr.y = -pointingPlane.x;
  		double norm = groundCurr.norm();
  		groundCurr.x /= norm;
  		groundCurr.y /= norm;
  
  		// dot product.  vectors are normalized to 1 already
  		double dot = groundCurr.x * p.ground.x + groundCurr.y * p.ground.y;
  		// floating point round off error some times knocks it above 1.0
  		if (dot > 1.0)
  			dot = 1.0;
  		double angle = Math.acos(dot);
  
  		// cross product to figure out direction
  		if (groundCurr.x * p.ground.y - groundCurr.y * p.ground.x > 0)
  			angle = -angle;
  
  		farAngles.add(angle);
  	}
docs: Computes the angle of rotation between two pointing vectors on the ground plane and adds it to a list.
  
  @param pointingPlane Pointing vector of observation in plane reference frame