BevelStrips function

List<List<Vector3>> BevelStrips(
  1. List<Vector2> contour,
  2. List<Vector2> gradient,
  3. List<Vector2> supports,
  4. Matrix3 m
)

Implementation

List<List<VM.Vector3>> BevelStrips(List<VM.Vector2> contour,
    List<VM.Vector2> gradient, List<VM.Vector2> supports, VM.Matrix3 m) {
  assert(contour.length == gradient.length);
  List<List<VM.Vector3>> out = [];
  VM.Vector3 v = VM.Vector3.zero();
  for (VM.Vector2 s in supports) {
    List<VM.Vector3> c = List.generate(contour.length, (i) {
      v.x = contour[i].x + gradient[i].x * s.x;
      v.y = contour[i].y + gradient[i].y * s.x;
      v.z = s.y;
      return m * v;
    });
    out.add(c);
  }
  return out;
}