|
@@ -0,0 +1,39 @@
|
|
|
+import 'package:fis_measure/interfaces/process/items/item.dart';
|
|
|
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
|
|
|
+import 'package:fis_measure/process/calcuators/pisa.dart';
|
|
|
+import 'package:fis_measure/process/items/top_item.dart';
|
|
|
+import 'package:fis_measure/process/items/top_item_feature.dart';
|
|
|
+
|
|
|
+import '../multi_method/multiple_trace.dart';
|
|
|
+import '../straightline.dart';
|
|
|
+
|
|
|
+class Pisa extends TopMeasureItem<PisaFeature> {
|
|
|
+ late final StraightLine radius;
|
|
|
+ late final MultiTrace trace;
|
|
|
+
|
|
|
+ Pisa(super.meta) {
|
|
|
+ final metaRadius = meta.childItems[0];
|
|
|
+ final metaTrace = meta.childItems[1];
|
|
|
+ radius = StraightLine.createDistance(metaRadius, this);
|
|
|
+ trace = MultiTrace.createTrace(metaTrace, this);
|
|
|
+ childItems.add(radius);
|
|
|
+ childItems.add(trace);
|
|
|
+ isCrossAreaMode = true;
|
|
|
+ // canChildOutputSelf = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ PisaFeature buildFeature() => PisaFeature(this);
|
|
|
+
|
|
|
+ static Pisa createPisa(ItemMeta meta, [IMeasureItem? parent]) {
|
|
|
+ var pisa = Pisa(meta);
|
|
|
+ pisa.calculator = PisaCal(pisa);
|
|
|
+ return pisa;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class PisaFeature extends TopMeasureItemFeature {
|
|
|
+ PisaFeature(
|
|
|
+ ITopMeasureItem refItem,
|
|
|
+ ) : super(refItem);
|
|
|
+}
|