Trying to calculate surface areas with greater precision than the “meshop.getfacearea()” method. I need to calculate in double precision, so using a bit of .net to give me greater accuracy. Any thoughts on how I can speed this up without compromising accuracy? (Is really quite slow with high poly objects)

```
Pt = dotnetclass "System.Windows.Media.Media3D.point3d"
Crossproduct = (dotnetclass "System.Windows.Media.Media3D.Vector3D").Crossproduct
Fn GetFaceArea obj faces =
(
start = timeStamp()
TotalArea = 0
faces = (faces as array)
for i = 1 to faces.count do
(
V = (meshop.GetVertsUsingFace obj i)as array
if V.count == 3 do
(
Verts = (for j = 1 to 3 collect (getvert obj V[j]))
Pt1 = dotnetobject Pt (Verts[1].x) (Verts[1].y) (Verts[1].z)
Pt2 = dotnetobject Pt (Verts[2].x) (Verts[2].y) (Verts[2].z)
Pt3 = dotnetobject Pt (Verts[3].x) (Verts[3].y) (Verts[3].z)
TotalArea += ((Crossproduct (pt.subtract pt1 pt2) (pt.subtract pt1 pt3)).length)/2.0
)
)
end = timeStamp()
format "Processing took % seconds\n" ((end - start) / 1000.0)
Return (TotalArea)
)
```