|
@@ -1,8 +1,11 @@
|
|
|
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
|
|
|
+import 'package:fis_measure/interfaces/process/items/types.dart';
|
|
|
import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
|
|
|
import 'package:fis_measure/view/measure/measure_tool.dart';
|
|
|
import 'package:fis_ui/index.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
+import 'package:vid/us/vid_us_unit.dart';
|
|
|
|
|
|
/// 移动端测量项选择器(继承自 测量项页面)
|
|
|
class MobileMeasureSelector extends LeftSiderSelectMeasure {
|
|
@@ -20,17 +23,41 @@ class _MobileMeasureSelector extends LeftSiderSelectMeasureState {
|
|
|
MobileMeasureBtn(
|
|
|
icon: Icons.linear_scale,
|
|
|
displayName: '距离',
|
|
|
- modeName: 'Distance',
|
|
|
+ itemMeta: ItemMeta(
|
|
|
+ MeasureTypes.Distance,
|
|
|
+ measureType: MeasureTypes.Distance,
|
|
|
+ description: MeasureTypes.Distance,
|
|
|
+ briefAnnotation: "D",
|
|
|
+ outputs: [
|
|
|
+ ItemOutputMeta(MeasureTypes.Distance, "Distance", VidUsUnit.cm),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
),
|
|
|
MobileMeasureBtn(
|
|
|
icon: Icons.border_style,
|
|
|
displayName: '周长',
|
|
|
- modeName: 'Perimeter',
|
|
|
+ itemMeta: ItemMeta(
|
|
|
+ MeasureTypes.Perimeter,
|
|
|
+ measureType: MeasureTypes.Perimeter,
|
|
|
+ description: MeasureTypes.Perimeter,
|
|
|
+ briefAnnotation: "P",
|
|
|
+ outputs: [
|
|
|
+ ItemOutputMeta(MeasureTypes.Perimeter, "Perimeter", VidUsUnit.cm),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
),
|
|
|
MobileMeasureBtn(
|
|
|
icon: Icons.format_shapes,
|
|
|
displayName: '面积',
|
|
|
- modeName: 'Area',
|
|
|
+ itemMeta: ItemMeta(
|
|
|
+ MeasureTypes.Area,
|
|
|
+ measureType: MeasureTypes.Area,
|
|
|
+ description: MeasureTypes.Area,
|
|
|
+ briefAnnotation: "A",
|
|
|
+ outputs: [
|
|
|
+ ItemOutputMeta(MeasureTypes.Area, "Area", VidUsUnit.cm2),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
),
|
|
|
];
|
|
|
|
|
@@ -45,21 +72,29 @@ class _MobileMeasureSelector extends LeftSiderSelectMeasureState {
|
|
|
children: [
|
|
|
const FSizedBox(height: 30),
|
|
|
...mobileMeasureBtnList.map((e) {
|
|
|
- return _buildMeasureBtn(
|
|
|
- e.modeName, e.modeName == activeName, e.displayName, e.icon);
|
|
|
+ return _buildMeasureBtn(e.itemMeta, e.itemMeta.name == activeName,
|
|
|
+ e.displayName, e.icon);
|
|
|
}).toList(),
|
|
|
]),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
FWidget _buildMeasureBtn(
|
|
|
- String modeName, bool ifActive, String displayName, IconData icon) {
|
|
|
+ ItemMeta itemMeta, bool ifActive, String displayName, IconData icon) {
|
|
|
return FInkWell(
|
|
|
onTap: () {
|
|
|
if (ifActive) {
|
|
|
- changeItem("None");
|
|
|
+ changeItem(
|
|
|
+ ItemMeta(
|
|
|
+ "None",
|
|
|
+ description: "None",
|
|
|
+ outputs: [
|
|
|
+ ItemOutputMeta("None", "None", VidUsUnit.cm2),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
} else {
|
|
|
- changeItem(modeName);
|
|
|
+ changeItem(itemMeta);
|
|
|
}
|
|
|
},
|
|
|
child: Container(
|
|
@@ -106,9 +141,9 @@ class _MobileMeasureSelector extends LeftSiderSelectMeasureState {
|
|
|
}
|
|
|
|
|
|
class MobileMeasureBtn {
|
|
|
- String modeName;
|
|
|
+ ItemMeta itemMeta;
|
|
|
String displayName;
|
|
|
IconData icon;
|
|
|
MobileMeasureBtn(
|
|
|
- {required this.modeName, required this.displayName, required this.icon});
|
|
|
+ {required this.itemMeta, required this.displayName, required this.icon});
|
|
|
}
|