import 'package:fis_measure/interfaces/date_types/rect_region.dart';
import 'package:fis_measure/interfaces/process/visuals/visual.dart';
import 'package:fis_measure/process/physical_coordinates/empty_tissue.dart';
import 'package:fis_measure/process/visual/tissue_area.dart';
import 'package:fis_measure/process/workspace/third_part/visual.dart';
import 'package:vid/us/vid_us_unit.dart';
import 'package:vid/us/vid_us_visual_area_type.dart';
import 'package:vid/us/vid_us_mode.dart';

import 'viewport.dart';

class ThirdPartVisualArea extends TissueArea {
  ThirdPartVisualArea(IVisual visual)
      : super(
          visual,
          VidUsVisualAreaType.Tissue,
          VidUsModeType.Tissue,
        );

  @override
  void loadData() {
    layoutRegion = RectRegion.fill(0, 0, 1, 1);
    final application = (visual as ThirdPartVisual).application;
    final frame = application.frameData!;
    final pixelLength = application.standardLine.perPixelPhysicalLength;

    final width = frame.width * pixelLength;
    final height = frame.height * pixelLength;
    RectRegion region = RectRegion.fill(0, 0, width, height);
    viewport = ThirdPartViewPort(
      this,
      EmptyTissuePhysicalCoordinate(),
      VidUsUnit.cm,
      VidUsUnit.cm,
      region,
    );
  }
}