computeLineDistances method
Line
computeLineDistances()
inherited
Computes an array of distance values which are necessary for
LineDashedMaterial
. For each vertex in the geometry, the method
calculates the cumulative length from the current point to the very
beginning of the line.
Implementation
Line computeLineDistances() {
final geometry = this.geometry;
if (geometry is BufferGeometry) {
// we assume non-indexed geometry
if (geometry.index == null) {
final positionAttribute = geometry.attributes["position"];
// List<num> lineDistances = [ 0.0 ];
final lineDistances = Float32List(positionAttribute.count + 1);
lineDistances[0] = 0.0;
for (int i = 1, l = positionAttribute.count; i < l; i++) {
_start.fromBuffer(positionAttribute, i - 1);
_end.fromBuffer(positionAttribute, i);
lineDistances[i] = lineDistances[i - 1];
lineDistances[i] += _start.distanceTo(_end);
}
geometry.setAttributeFromString('lineDistance', Float32BufferAttribute.fromList(lineDistances, 1, false));
}
}
return this;
}