source files: xvol.[ch]
(XVOL-ACCUMULATE-UNNORMALIZED-POINT-NORMALS :POINT-RELATION <grl:points> :FACET-RELATION <grl:facets> )
For triangles, computes cross-product of the first two edges of each facet, and adds them to the :POINT-NORMAL-X/Y/Z value for each vertex in the facet. For quadralaterals, also computes cross-product of the last two edges of each facet, and adds them in.
You will normally want to zero :POINT-NORMAL-X/Y/Z before calling this function (using the pointwise operators) and call XVOL-SET-NORMALS-TO-UNIT-LENGTH afterwards.
Note that the magnitude of the cross-product of the first two edges of a triangle give twice its area, thus the final magnitude of :POINT-NORMAL-X/Y/Z will be twice the area of the facets touching that vertex.
Note: this function really belongs in the thinglist code, not XVOL.