chore: add build artifacts, map assets, and routing data

This commit is contained in:
Hamza-Ayed
2026-09-19 12:34:24 +03:00
parent aa2b9f131f
commit 43ad2e0ad4
327 changed files with 52421 additions and 1810 deletions
@@ -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: () {