 
 	geometry = mesh.geometry
 
-	vertices = (face) ->
+	faceVertices = (face) ->
 		[	geometry.vertices[face.a],
 			geometry.vertices[face.b],
 			geometry.vertices[face.c] ]
 
 	totalArea = 0
 	for face in geometry.faces
-		totalArea += three.GeometryUtils.triangleArea (vertices face)...
+		totalArea += three.GeometryUtils.triangleArea (faceVertices face)...
 
 	density = nVertices / totalArea
 

	verticesOwed = 0

	for face in geometry.faces
		va = geometry.vertices[face.a]
		vb = geometry.vertices[face.b]
		vc = geometry.vertices[face.c]
		[ na, nb, nc ] = face.vertexNormals

		area =

	because we need the normal too.

Done using barycentric coordinates.
The best reference for random selection I can find is
	<http://www.cs.fsu.edu/~banks/courses/2003.3/homework/hw.04.html>.
###
randomPointAndNormalInTriangle = (va, vb, vc, na, nb, nc) ->
	alpha =
		1 - Math.sqrt Math.random()
	beta =
		Math.random() * (1 - alpha)
	gamma =
		1 - alpha - beta

	point = vecScale va, alpha
	point.add vecScale vb, beta
	point.add vecScale vc, gamma

	normal = vecScale na, alpha
	normal.add vecScale nb, beta
	normal.add vecScale nc, gamma

