49 lines
1.4 KiB
Dart
49 lines
1.4 KiB
Dart
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<double> 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<String, double> 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;
|
|
}
|