-#if defined ( PLIB_1_2_X )
-static float fgTriArea( sgVec3 p0, sgVec3 p1, sgVec3 p2 ) {
- /*
- From comp.graph.algorithms FAQ
- 2A(P) = abs(N.(sum_{i=0}^{n-1}(v_i x v_{i+1})))
- */
- sgVec3 sum;
- sgZeroVec3( sum );
-
- sgVec3 norm;
- sgMakeNormal( norm, p0, p1, p2 );
-
- float *vv[3];
- vv[0] = p0;
- vv[1] = p1;
- vv[2] = p2;
-
- for( int i=0; i<3; i++ ) {
- int ii = (i+1) % 3;
- sum[0] += (vv[i][1] * vv[ii][2] - vv[i][2] * vv[ii][1]) ;
- sum[1] += (vv[i][2] * vv[ii][0] - vv[i][0] * vv[ii][2]) ;
- sum[2] += (vv[i][0] * vv[ii][1] - vv[i][1] * vv[ii][0]) ;
- }
-
- return( sgAbs(sgScalarProductVec3( norm, sum )) * SG_HALF );
-}
-#else
-# define fgTriArea(p0,p1,p2) sgTriArea(p0,p1,p2)
-#endif
-
-