import 'package:fis_common/event/event_type.dart';
import 'package:fis_measure/interfaces/enums/visual_area_type.dart';
import 'package:fis_measure/interfaces/process/visuals/visual.dart';
import 'package:flutter/foundation.dart';
import 'package:vid/us/vid_us_visual_area_type.dart';

import '../modes/mode.dart';
import '../viewports/viewport.dart';

/// 图像幅区域
abstract class IVisualArea {
  /// 所在幅
  IVisual get visual;

  /// 视口
  IViewPort? get viewport;
  @protected
  set viewport(IViewPort? value);

  /// 区域类型
  VidUsVisualAreaType get visualAreaType;

  /// 模式
  IMode get mode;

  /// 是否活动
  bool get isActive;
  set isActive(bool value);

  /// 是否活动变化事件
  late final FEventHandler<bool> isActiveChanged;
}
