updateOffset method

void updateOffset()

Implementation

void updateOffset() {
  final double regionScaleX = width / region.originalWidth * scaleX;
  final double regionScaleY = height / region.originalHeight * scaleY;
  final double localX = -width / 2 * scaleX + region.offsetX * regionScaleX;
  final double localY = -height / 2 * scaleY + region.offsetY * regionScaleY;
  final double localX2 = localX + region.width * regionScaleX;
  final double localY2 = localY + region.height * regionScaleY;
  final double radians = rotation * math.pi / 180;
  final double cos = math.cos(radians);
  final double sin = math.sin(radians);
  final double localXCos = localX * cos + x;
  final double localXSin = localX * sin;
  final double localYCos = localY * cos + y;
  final double localYSin = localY * sin;
  final double localX2Cos = localX2 * cos + x;
  final double localX2Sin = localX2 * sin;
  final double localY2Cos = localY2 * cos + y;
  final double localY2Sin = localY2 * sin;
  final Float32List offset = this.offset;
  offset[RegionAttachment.ox1] = localXCos - localYSin;
  offset[RegionAttachment.oy1] = localYCos + localXSin;
  offset[RegionAttachment.ox2] = localXCos - localY2Sin;
  offset[RegionAttachment.oy2] = localY2Cos + localXSin;
  offset[RegionAttachment.ox3] = localX2Cos - localY2Sin;
  offset[RegionAttachment.oy3] = localY2Cos + localX2Sin;
  offset[RegionAttachment.ox4] = localX2Cos - localYSin;
  offset[RegionAttachment.oy4] = localYCos + localX2Sin;
}