fitTexture method

void fitTexture(
  1. int from,
  2. int to
)

Rescales the texture coordinates of vertices from to to to span 0..1 each way.

Implementation

void fitTexture(int from, int to) {
  var u0 = double.infinity,
      v0 = double.infinity,
      u1 = -double.infinity,
      v1 = -double.infinity;
  for (var i = from; i < to; i++) {
    u0 = math.min(u0, _t[i * 2]);
    u1 = math.max(u1, _t[i * 2]);
    v0 = math.min(v0, _t[i * 2 + 1]);
    v1 = math.max(v1, _t[i * 2 + 1]);
  }
  final du = u1 - u0, dv = v1 - v0;
  for (var i = from; i < to; i++) {
    _t[i * 2] = du > 0 ? (_t[i * 2] - u0) / du : 0;
    _t[i * 2 + 1] = dv > 0 ? (_t[i * 2 + 1] - v0) / dv : 0;
  }
}