class AppConstants { AppConstants._(); // Database static const String databaseName = 'bully_targets.db'; static const int databaseVersion = 1; // Tables static const String sessionsTable = 'sessions'; static const String shotsTable = 'shots'; // Image processing static const double minImpactRadius = 2.0; static const double maxImpactRadius = 20.0; static const int gaussianBlurSize = 5; static const double houghCirclesDp = 1.0; static const double houghCirclesMinDist = 20.0; static const int houghCirclesParam1 = 50; static const int houghCirclesParam2 = 30; // Scoring zones for concentric targets (10 zones, from center) static const List concentricZoneRadii = [ 0.05, // Zone 10 (bullseye) 0.10, // Zone 9 0.15, // Zone 8 0.20, // Zone 7 0.25, // Zone 6 0.30, // Zone 5 0.40, // Zone 4 0.50, // Zone 3 0.65, // Zone 2 0.80, // Zone 1 ]; // Silhouette scoring zones (as percentage of height from top) static const Map silhouetteZones = { 'head': 0.15, // Top 15% = head = 5 points 'center': 0.45, // 15-45% = center mass = 5 points 'body': 0.70, // 45-70% = body = 4 points 'lower': 1.0, // 70-100% = lower = 3 points }; // UI static const double defaultPadding = 16.0; static const double smallPadding = 8.0; static const double largePadding = 24.0; static const double borderRadius = 12.0; }