1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import 'package:fis_measure/interfaces/process/items/item.dart';
- import 'package:fis_measure/interfaces/process/items/item_metas.dart';
- import 'package:fis_measure/interfaces/process/items/types.dart';
- import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
- import 'package:fis_measure/process/calcuators/calculator.dart';
- import 'package:fis_measure/process/items/factory.dart';
- import 'package:fis_measure/process/items/top_item.dart';
- import 'package:fis_measure/process/items/top_item_feature.dart';
- import 'package:fis_measure/process/primitives/curve_abstract.dart';
- import 'package:fis_measure/process/primitives/straightline.dart';
- class AreaStraightLine extends TopMeasureItem<AreaStraightLineFeature> {
- late final CurveAbstract area;
- late final StraightLine line;
- AreaStraightLine(ItemMeta meta) : super(meta) {
- final metaArea = meta.childItems.firstWhere(
- (e) => e.measureType.startsWith(MeasureTypes.AreaPerimeter));
- final metaLine = meta.getChildByType(MeasureTypes.Distance)!;
- area = MeasureItemFactory.createItem(metaArea, this) as CurveAbstract;
- line = StraightLine.createDistance(metaLine, this);
- childItems.add(area);
- childItems.add(line);
- }
- @override
- bool onExecuteMouse(PointInfo args) {
- if (args.pointType == PointInfoType.mouseDown) {
- if (feature == null) {
- feature = AreaStraightLineFeature(this);
- listenChildrenUpdate();
- }
- if (childrenAllDone) {
- workingChild.clear();
- }
- }
- feature?.hostVisualArea = args.hostVisualArea;
- final result = workingChild.execute(args);
- doCalculate();
- return result;
- }
- @override
- bool onExecuteTouch(PointInfo args) {
- return workingChild.execute(args);
- }
- static AreaStraightLine createVolume(ItemMeta meta, [IMeasureItem? parent]) {
- final areaStraightLine = AreaStraightLine(meta);
- areaStraightLine.calculator = AreaStraightLineVolumeCal(areaStraightLine);
- return areaStraightLine;
- }
- }
- class AreaStraightLineFeature extends TopMeasureItemFeature {
- AreaStraightLineFeature(
- AreaStraightLine refItem,
- ) : super(refItem);
- }
- class AreaStraightLineVolumeCal extends Calculator<AreaStraightLine, double> {
- AreaStraightLineVolumeCal(AreaStraightLine ref) : super(ref);
- @override
- void calculate() {
- // TODO: implement calculate
- }
- }
|