updatePointer method

void updatePointer(
  1. dynamic event
)

Implementation

void updatePointer(event) {
  final box = listenableKey.currentContext?.findRenderObject() as RenderBox;
  final size = box.size;
  final local = box.globalToLocal(const Offset(0, 0));

  _pointer.x = (event.clientX - local.dx) / size.width * 2 - 1;
  _pointer.y = -(event.clientY - local.dy) / size.height * 2 + 1;

  final tempKnot = Vector3(_knobSprite!.position.x+event.movementX-12,_knobSprite.position.y-event.movementY-12,1);
  final tempOrigin = Vector3(origin.x/2,origin.y/2,1);
  final len = tempKnot.distanceTo(tempOrigin);

  final deltaX = (_knobSprite.position.x+event.movementX-12) - (origin.x/2);
  final deltaY = (_knobSprite.position.y-event.movementY-1) - (origin.y/2);
  _angle = 180-(atan2(deltaY, deltaX)*180)/pi;

  if(len > (this.size/2)){
    dragPosition.x = 0;
    dragPosition.y = 0;
    _intensity = 1.0;
  }
  else{
    dragPosition.x = event.movementX;
    dragPosition.y = -event.movementY;
    _intensity = len/(this.size/2);
  }
}