sampleFace method
dynamic
sampleFace(
- dynamic faceIndex,
- dynamic targetPosition,
- dynamic targetNormal,
- dynamic targetColor,
Implementation
sampleFace(faceIndex, targetPosition, targetNormal, targetColor) {
var u = this.randomFunction();
var v = this.randomFunction();
if (u + v > 1) {
u = 1 - u;
v = 1 - v;
}
_face.a.fromBufferAttribute(this.positionAttribute, faceIndex * 3);
_face.b.fromBufferAttribute(this.positionAttribute, faceIndex * 3 + 1);
_face.c.fromBufferAttribute(this.positionAttribute, faceIndex * 3 + 2);
targetPosition
.set(0, 0, 0)
.addScaledVector(_face.a, u)
.addScaledVector(_face.b, v)
.addScaledVector(_face.c, 1 - (u + v));
if (targetNormal != null) {
_face.getNormal(targetNormal);
}
if (targetColor != null && this.colorAttribute != null) {
_face.a.fromBufferAttribute(this.colorAttribute, faceIndex * 3);
_face.b.fromBufferAttribute(this.colorAttribute, faceIndex * 3 + 1);
_face.c.fromBufferAttribute(this.colorAttribute, faceIndex * 3 + 2);
_color
.set(0, 0, 0)
.addScaledVector(_face.a, u)
.addScaledVector(_face.b, v)
.addScaledVector(_face.c, 1 - (u + v));
targetColor.r = _color.x;
targetColor.g = _color.y;
targetColor.b = _color.z;
}
return this;
}