public static double girardArea(S2Point a,S2Point b,S2Point c){
  S2Point ab=S2Point.crossProd(a,b);
  S2Point bc=S2Point.crossProd(b,c);
  S2Point ac=S2Point.crossProd(a,c);
  return Math.max(0.0,ab.angle(ac) - ab.angle(bc) + bc.angle(ac));
}

public static double girardArea ( S2Point a , S2Point b , S2Point c ) { S2Point ab = S2Point . crossProd ( a , b ) ; S2Point bc = S2Point . crossProd ( b , c ) ; S2Point ac = S2Point . crossProd ( a , c ) ; return Math . max ( 0.0 , ab . angle ( ac ) - ab . angle ( bc ) + bc . angle ( ac ) ) ; }
return the area of the triangle computed using girard ' s formula . this is slightly faster than the area ( ) method above is not accurate for very small triangles .
