LCOV - code coverage report
Current view: top level - lib/src/extensions - canvas.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 3 19 15.8 %
Date: 2021-08-10 15:50:53 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:ui';
       2             : 
       3             : import '../../palette.dart';
       4             : import 'vector2.dart';
       5             : 
       6             : export 'dart:ui' show Canvas;
       7             : 
       8             : extension CanvasExtension on Canvas {
       9           0 :   void scaleVector(Vector2 vector) {
      10           0 :     scale(vector.x, vector.y);
      11             :   }
      12             : 
      13           0 :   void translateVector(Vector2 vector) {
      14           0 :     translate(vector.x, vector.y);
      15             :   }
      16             : 
      17             :   /// Renders a point as a square of size [size] (default 1 logical pixel) using
      18             :   /// the provided [paint] (default solid magenta).
      19             :   ///
      20             :   /// This is mostly useful for debugging.
      21           1 :   void renderPoint(
      22             :     Vector2 point, {
      23             :     double size = 1.0,
      24             :     Paint? paint,
      25             :   }) {
      26           5 :     final rect = (point - Vector2.all(size / 2)) & Vector2.all(size);
      27           2 :     drawRect(rect, paint ?? BasicPalette.magenta.paint());
      28             :   }
      29             : 
      30             :   /// Utility method to render stuff on a specific place in an isolated way.
      31             :   ///
      32             :   /// Some render methods don't allow to pass a vector.
      33             :   /// This method translate the canvas before rendering your fn.
      34             :   /// The changes are reset after the fn is run.
      35           0 :   void renderAt(Vector2 p, void Function(Canvas) fn) {
      36           0 :     save();
      37           0 :     translateVector(p);
      38           0 :     fn(this);
      39           0 :     restore();
      40             :   }
      41             : 
      42             :   /// Utility method to render stuff rotated at specific angle.
      43             :   ///
      44             :   /// It rotates the canvas around the center of rotation.
      45             :   /// The changes are reset after the fn is run.
      46           0 :   void renderRotated(
      47             :     double angle,
      48             :     Vector2 rotationCenter,
      49             :     void Function(Canvas) fn,
      50             :   ) {
      51           0 :     save();
      52           0 :     translateVector(rotationCenter);
      53           0 :     rotate(angle);
      54           0 :     translateVector(-rotationCenter);
      55           0 :     fn(this);
      56           0 :     restore();
      57             :   }
      58             : }

Generated by: LCOV version 1.15