|
@@ -2,6 +2,7 @@ import 'package:fis_measure/interfaces/date_types/point.dart';
|
|
|
import 'package:fis_measure/interfaces/process/calculators/output.dart';
|
|
|
import 'package:fis_measure/interfaces/process/items/types.dart';
|
|
|
import 'package:fis_measure/process/primitives/ellipse.dart';
|
|
|
+import 'package:flutter/cupertino.dart';
|
|
|
import 'package:vid/us/vid_us_unit.dart';
|
|
|
|
|
|
import '../primitives/poyline.dart';
|
|
@@ -63,6 +64,19 @@ class AreaPerimeterEllipseCal extends Calculator<Ellipse, double> {
|
|
|
|
|
|
@override
|
|
|
void calculate() {
|
|
|
- // TODO: implement calculate
|
|
|
+ if (ref.feature == null) return;
|
|
|
+
|
|
|
+ final feature = ref.feature!;
|
|
|
+ final viewport = feature.hostVisualArea!.viewport!;
|
|
|
+
|
|
|
+ for (var output in ref.meta.outputs) {
|
|
|
+ if (output.name == MeasureTypes.Perimeter) {
|
|
|
+ var value = ref.feature!.getCircumference(viewport.convertBoundary);
|
|
|
+ feature.updateFloatValue(output, value, output.unit);
|
|
|
+ } else if (output.name == MeasureTypes.Area) {
|
|
|
+ var value = ref.feature!.getArea(viewport.convertBoundary);
|
|
|
+ feature.updateFloatValue(output, value, output.unit);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|