chore: add build artifacts, map assets, and routing data
This commit is contained in:
@@ -7,6 +7,7 @@ class TacticalDrawer extends StatefulWidget {
|
||||
final AngleUnit currentAngleUnit;
|
||||
final Function(AngleUnit) onAngleUnitChanged;
|
||||
final VoidCallback onOpenResectionHud;
|
||||
final VoidCallback? onStartRangefinderMode;
|
||||
final VoidCallback onStartRoutingMode;
|
||||
final VoidCallback onStartLosMode;
|
||||
final VoidCallback onStartViewshedMode;
|
||||
@@ -17,6 +18,7 @@ class TacticalDrawer extends StatefulWidget {
|
||||
final VoidCallback onStartSymbolsMode;
|
||||
final VoidCallback onStartOverlaysMode;
|
||||
final VoidCallback onLandmarksSynced;
|
||||
final VoidCallback? onClearMap;
|
||||
final bool showContours;
|
||||
final Function(bool) onToggleContours;
|
||||
|
||||
@@ -25,6 +27,7 @@ class TacticalDrawer extends StatefulWidget {
|
||||
required this.currentAngleUnit,
|
||||
required this.onAngleUnitChanged,
|
||||
required this.onOpenResectionHud,
|
||||
this.onStartRangefinderMode,
|
||||
required this.onStartRoutingMode,
|
||||
required this.onStartLosMode,
|
||||
required this.onStartViewshedMode,
|
||||
@@ -35,6 +38,7 @@ class TacticalDrawer extends StatefulWidget {
|
||||
required this.onStartSymbolsMode,
|
||||
required this.onStartOverlaysMode,
|
||||
required this.onLandmarksSynced,
|
||||
this.onClearMap,
|
||||
this.showContours = true,
|
||||
required this.onToggleContours,
|
||||
});
|
||||
@@ -130,7 +134,7 @@ class _TacticalDrawerState extends State<TacticalDrawer> {
|
||||
Icon(Icons.explore, size: 16, color: Color(0xFF38BDF8)),
|
||||
SizedBox(width: 8),
|
||||
Text(
|
||||
'نظام قياس الزوايا والسمت:',
|
||||
'نظام قياس الزوايا والاتجاه:',
|
||||
style: TextStyle(color: Colors.white, fontSize: 12, fontWeight: FontWeight.bold),
|
||||
),
|
||||
],
|
||||
@@ -178,10 +182,64 @@ class _TacticalDrawerState extends State<TacticalDrawer> {
|
||||
),
|
||||
),
|
||||
|
||||
// 2. Visual Resection
|
||||
// 0. Clear Map & Reset Layers (مسح وتنظيف الخريطة)
|
||||
if (widget.onClearMap != null)
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
widget.onClearMap!();
|
||||
},
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10),
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0x22F43F5E),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(color: const Color(0xFFF43F5E).withAlpha(120)),
|
||||
),
|
||||
child: const Row(
|
||||
children: [
|
||||
Icon(Icons.cleaning_services_rounded, color: Color(0xFFF43F5E), size: 20),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'مسح وتنظيف الخريطة (Clear Map)',
|
||||
style: TextStyle(color: Color(0xFFF43F5E), fontSize: 12, fontWeight: FontWeight.bold),
|
||||
),
|
||||
Text(
|
||||
'تصفير كافة الأدوات والرسوم والأهداف السابقة',
|
||||
style: TextStyle(color: Color(0xFF94A3B8), fontSize: 9.5),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// 1. Optical Rangefinder (قياس المسافة البصري بدون GPS)
|
||||
_buildOperationTile(
|
||||
icon: Icons.center_focus_strong,
|
||||
iconColor: const Color(0xFF00F0FF),
|
||||
title: 'قياس المسافة البصري (بدون GPS)',
|
||||
subtitle: 'حساب المسافة والارتفاع بالتقريب والتبعيد البصري',
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
widget.onStartRangefinderMode?.call();
|
||||
},
|
||||
),
|
||||
|
||||
// 2. Visual Resection (التقاطع البصري العكسي)
|
||||
_buildOperationTile(
|
||||
icon: Icons.camera_alt,
|
||||
iconColor: const Color(0xFF00F0FF),
|
||||
iconColor: const Color(0xFF38BDF8),
|
||||
title: 'التقاطع البصري (GPS-Denied HUD)',
|
||||
subtitle: 'تسديد الكاميرا وتحديد الإحداثيات بالرماية',
|
||||
onTap: () {
|
||||
|
||||
Reference in New Issue
Block a user