pointsToStroke static method

dynamic pointsToStroke(
  1. dynamic points,
  2. dynamic style, [
  3. dynamic arcDivisions,
  4. dynamic minDistance,
])

Implementation

static pointsToStroke(points, style,
    [arcDivisions, minDistance]) {
  // Generates a stroke with some witdh around the given path.
  // The path can be open or closed (last point equals to first point)
  // Param points: Array of Vector2D (the path). Minimum 2 points.
  // Param style: Object with SVG properties as returned by SVGLoader.getStrokeStyle(), or SVGLoader.parse() in the path.userData.style object
  // Params arcDivisions: Arc divisions for round joins and endcaps. (Optional)
  // Param minDistance: Points closer to this distance will be merged. (Optional)
  // Returns BufferGeometry with stroke triangles (In plane z = 0). UV coordinates are generated ('u' along path. 'v' across it, from left to right)

  List<double> vertices = [];
  List<double> normals = [];
  List<double> uvs = [];

  if (SVGLoader.pointsToStrokeWithBuffers(points, style, arcDivisions,
          minDistance, vertices, normals, uvs, 0) ==
      0) {
    return null;
  }

  var geometry = BufferGeometry();
  geometry.setAttribute('position',
      Float32BufferAttribute(Float32Array.from(vertices), 3, false));
  geometry.setAttribute(
      'normal', Float32BufferAttribute(Float32Array.from(normals), 3, false));
  geometry.setAttribute(
      'uv', Float32BufferAttribute(Float32Array.from(uvs), 2, false));

  return geometry;
}