#ifndef GC_CONFIG_H_
#define GC_CONFIG_H_

#include "gc_math.h"

#include "gc_geometry.h"

#ifdef PARASOFT_CPPTEST
#define constexpr const
#endif

namespace gc_cfg_k
{

}

namespace gc_cfg
{

extern float rescale_factor_;

int rescale_dimension(int x);

/*#define GC_CONFIG_NAME "BR"*/

#if 0

enum { XY_PHYSICAL_DISPLAY_DIMENSION = 512};
enum { XY_LOGICAL_DISPLAY_DIMENSION  = 484};
enum { XY_LOGICAL_DISPLAY_OFFSET = (XY_PHYSICAL_DISPLAY_DIMENSION-XY_LOGICAL_DISPLAY_DIMENSION)/2 /*=33*/ };

enum { X_LOGICAL_DISPLAY_OFFSET=XY_LOGICAL_DISPLAY_OFFSET, X_PHYSICAL_DISPLAY_DIMENSION = XY_PHYSICAL_DISPLAY_DIMENSION};
enum { Y_LOGICAL_DISPLAY_OFFSET=XY_LOGICAL_DISPLAY_OFFSET, Y_PHYSICAL_DISPLAY_DIMENSION = XY_PHYSICAL_DISPLAY_DIMENSION};

enum { X_ABS_DIMENSION = XY_LOGICAL_DISPLAY_DIMENSION};
enum { Y_ABS_DIMENSION = XY_LOGICAL_DISPLAY_DIMENSION};

enum { X_ABS_CENTRE_DISPL=X_ABS_DIMENSION/2};
enum { Y_ABS_CENTRE_DISPL=Y_ABS_DIMENSION/2};

enum { X_MOVWIN_OFFSET=0};
enum { Y_MOVWIN_OFFSET=0};

enum { X_SCALE_OFFSET_TOP=1};
enum { X_SCALE_OFFSET_BOTTOM=2};
enum { Y_SCALE_OFFSET_TOP=1};
enum { Y_SCALE_OFFSET_BOTTOM=2};

enum { X_DIMENSION = (X_ABS_DIMENSION-X_MOVWIN_OFFSET*2)};
enum { Y_DIMENSION = (Y_ABS_DIMENSION-Y_MOVWIN_OFFSET*2)};

enum { X_CENTRE_DISPL=(X_DIMENSION/2)-1};
enum { Y_CENTRE_DISPL=(X_DIMENSION/2)-1};

enum { Y_ZERO_RANGE = (Y_DIMENSION-1)-Y_SCALE_OFFSET_BOTTOM};
enum { Y_FULL_RANGE = Y_SCALE_OFFSET_TOP};

enum { X_ZERO_RNG_PPI=X_CENTRE_DISPL};
enum { Y_ZERO_RNG_PPI=Y_ZERO_RANGE};
enum { Y_FULL_RNG_PPI=Y_FULL_RANGE};

#endif

//Generic constants used as integers where the meaning is clear by the context
// Ex. for bitmap symbols the number of bitmaps and their dimensions are provided bt the spec
// and these numbers are provided in the bitmap symbol constructor as parameters called
// quantity, width, height.
// Another usage is to represent delta coordinate or distances in pixel derived from the symbol
// sketches of the symbol library document.
enum {
  GCGP_DIM_0 = 0,
  GCGP_DIM_1 = 1,
  GCGP_DIM_2 = 2,
  GCGP_DIM_3 = 3,
  GCGP_DIM_4 = 4,
  GCGP_DIM_5 = 5,
  GCGP_DIM_6 = 6,
  GCGP_DIM_7 = 7,
  GCGP_DIM_8 = 8,
  GCGP_DIM_9 = 9,
  GCGP_DIM_10 = 10,
  GCGP_DIM_11 = 11,
  GCGP_DIM_12 = 12,
  GCGP_DIM_13 = 13,
  GCGP_DIM_14 = 14,
  GCGP_DIM_15 = 15,
  GCGP_DIM_16 = 16,
  GCGP_DIM_17 = 17,
  GCGP_DIM_18 = 18,
  GCGP_DIM_19 = 19,
  GCGP_DIM_20 = 20,
  GCGP_DIM_21 = 21,
  GCGP_DIM_22 = 22,
  GCGP_DIM_23 = 23,
  GCGP_DIM_24 = 24,
  GCGP_DIM_25 = 25,
  GCGP_DIM_26 = 26,
  GCGP_DIM_27 = 27,
  GCGP_DIM_28 = 28,
  GCGP_DIM_29 = 29,
  GCGP_DIM_30 = 30,
  GCGP_DIM_31 = 31,
  GCGP_DIM_32 = 32,
  GCGP_DIM_33 = 33,
  GCGP_DIM_34 = 34,
  GCGP_DIM_35 = 35,
  GCGP_DIM_36 = 36,
  GCGP_DIM_37 = 37,
  GCGP_DIM_38 = 38,
  GCGP_DIM_39 = 39,
  GCGP_DIM_40 = 40,
  GCGP_DIM_41 = 41,
  GCGP_DIM_42 = 42,
  GCGP_DIM_43 = 43,
  GCGP_DIM_44 = 44,
  GCGP_DIM_45 = 45,
  GCGP_DIM_46 = 46,
  GCGP_DIM_47 = 47,
  GCGP_DIM_48 = 48,
  GCGP_DIM_49 = 49,
  GCGP_DIM_50 = 50,
  GCGP_DIM_51 = 51,
  GCGP_DIM_52 = 52,
  GCGP_DIM_53 = 53,
  GCGP_DIM_54 = 54,
  GCGP_DIM_55 = 55,
  GCGP_DIM_56 = 56,
  GCGP_DIM_57 = 57,
  GCGP_DIM_58 = 58,
  GCGP_DIM_59 = 59,
  GCGP_DIM_60 = 60,
  GCGP_DIM_80 = 80,
  GCGP_DIM_120 = 120,
  GCGP_DIM_160 = 160,
  GCGP_DIM_180 = 180,
  GCGP_DIM_460 = 460
};

enum {
	GC_REL_POS_REFERENCE=484
};

//Not in SRS:
//extern const float MAX_AZI_SCA; //#define MAX_AZI_SCA (M_PI/3)
//extern const float MAX_ELE_SCA; //#define MAX_ELE_SCA (M_PI/3)
extern const float MAX_HOR_LIN; //#define MAX_HOR_LIN ((2 * M_PI) / 9)

enum
{
	K_PIX_AZI_SCA=gc_cfg_k::K_X_CENTRE_DISPL - 1,
	K_PIX_ELE_SCA=gc_cfg_k::K_Y_CENTRE_DISPL
};

#ifdef GC_GEOMETRY_SMART


#define GC_REL_BOTTOM_Y_POS(Y_)	(Y_DIMENSION-(GC_REL_POS_REFERENCE-(Y_))) /*Experimental: resize display using reference offset)*/
#define GC_REL_CENTER_Y_POS(Y_)	(X_ABS_CENTRE_DISPL-(Y_CENTRE_DISPL-(Y_))) /*Experimental: resize display using reference offset)*/

//Generic constants used as integers where the meaning is clear by the context
// Ex. for bitmap symbols the dimension of the margin to be added to the symbol pure bounding box
enum { GCGP_OM_OCL_DIM = 1,
  GCGP_OM_OCL_MARGIN = (GCGP_OM_OCL_DIM * 2),
  GCGP_OM_BMP_MARGIN = (GCGP_OM_OCL_MARGIN + 2) };



// Expansion Window
enum { PIX_AZI_WND = 30};
enum { PIX_RANGE_WND = 30};

//Scan converter:

extern pixel_num_t SC_X_DIMENSION; // X_DIMENSION};
extern pixel_num_t SC_Y_DIMENSION; // Y_DIMENSION};

extern pixel_num_t SC_X_OFFSET; // X_MOVWIN_OFFSET};
extern pixel_num_t SC_Y_OFFSET; // Y_MOVWIN_OFFSET};

extern pixel_num_t SC_X_ZERO_PPI; // X_CENTRE_DISPL};
extern pixel_num_t SC_Y_ZERO_PPI; // Y_ZERO_RANGE};


// Symbols parameters:
// Azimuth Scale & Caret
extern pixel_num_t X_AZI_SCA; // X_CENTRE_DISPL };
extern pixel_num_t Y_AZI_CAR; // 436 };
extern pixel_num_t Y_AZI_SCA_LO; // 445 };
extern pixel_num_t Y_AZI_SCA_UP; // 39 };
extern pixel_num_t PIX_AZI_SCA; // X_CENTRE_DISPL - 1};

// Degraded Performance Indicator
extern pixel_num_t X_DEGR; // X_CENTRE_DISPL };
extern pixel_num_t Y_DEGR; // 400 };

// Stand by label
extern pixel_num_t X_STBY; // X_CENTRE_DISPL };
extern pixel_num_t Y_STBY; // GC_REL_CENTER_Y_POS(206) };

// WarmUp Time Indicator
extern pixel_num_t X_WARM_UP; // X_CENTRE_DISPL };
extern pixel_num_t Y_WARM_UP; // GC_REL_BOTTOM_Y_POS(382) };

// Elevation Scale & Caret
extern pixel_num_t X_ELE_CAR; // 44 };
extern pixel_num_t X_ELE_SCA; // 41 };
extern pixel_num_t Y_ELE_SCA; // Y_CENTRE_DISPL };
extern pixel_num_t PIX_ELE_SCA; // Y_ELE_SCA };

// Frequency Band Indicator
extern pixel_num_t X_BAND_IND; // 441 };
extern pixel_num_t X_CHAN_NUM; // 437 };
extern pixel_num_t Y_BAND_IND; // 17 };
extern pixel_num_t Y_CHAN_NUM; // 10 };

// Horizon Line
enum { K_HOR_BAR     = 100 };
enum { K_HOR_GAP     =  30 };
enum { K_HOR_H       =  15 };
enum { K_PIX_MIN_HOR =   0 };

extern pixel_num_t HOR_BAR;//     = 100 };
extern pixel_num_t HOR_GAP;//     =  30 };
extern pixel_num_t HOR_H;//       =  15 };
extern pixel_num_t PIX_MIN_HOR;// =   0 };

// Ownship Text Block
extern pixel_num_t X_OWN_ALT; // 322 };
extern pixel_num_t X_OWN_CAS; // 162 };
extern pixel_num_t X_OWN_HEA; // 241 };
extern pixel_num_t Y_OWN_BLO; // 409 };

// Range/Velocity Scale
extern pixel_num_t X_RNG_SCA; // 467 };
extern pixel_num_t Y_RNG_SCA; // Y_CENTRE_DISPL };

// Altitude Line Track Indicator
extern pixel_num_t X_ALT_LINE;

// Search Tgt
enum { MAX_TGT_HISTORY = 6 };
enum { MAX_TGT_PER_FRAME = 128 };
enum { NUM_MAX_TGT = (MAX_TGT_PER_FRAME * (MAX_TGT_HISTORY + 1)) }; // Histories plus the current frame
//  Da specifica
//enum { X_OVERL = 18 };
//enum { Y_OVERL_DOWN = 14 };
//enum { Y_OVERL_UP = 10 };
//
// Test!!!
enum { X_OVERL = 27 };
enum { Y_OVERL_DOWN = 10 };
enum { Y_OVERL_UP = 14 };
//

// Azimuth Scan Limits
extern pixel_num_t Y_AZ_SCA_LIM;

// Navigation Points
enum { PS_NAVP_NUM_MAX = 3 };

// Altitude Line Track indicator
//enum { X_ALT_LINE = 462 };

// Waveform Scheduling Indicator
extern pixel_num_t X_WAVE_IND; // = 426 };
extern pixel_num_t Y_WAVE_IND; // = 10 };

// MTR Settings Indicator
enum { X_MTR_IND = 84 };
enum { Y_MTR_IND = 28 };

// Jammer Extension Symbol and Source Indicator
enum { Y_JAM_LO = 48 };
enum { Y_JAM_ME = 52 };
enum { Y_JAM_HI = 56 };

// Jammer Extension Symbol and Direction Tick
enum { N_JAM_EXT_MAX = 10 };

// Jammer Direction Tick
enum { Y_JAM_CENT = 67 };

// WDNS Failure Labels
enum { X_LAB_BCK = 92};
enum { Y_LAB_BCK = 10};	//was 22, but overlaps time to go to HPT
enum { X_LAB_RNG = 5};
enum { Y_LAB_RNG = 99};
enum { X_LAB_AZSC = 5};
enum { Y_LAB_AZSC = 244};
enum { X_LAB_NOB = 5};
enum { Y_LAB_NOB = 344};

// Tracks
enum { NUM_MAX_TRK = 16 };
enum { CAS_MIN = 80 };
enum { CAS_MAX = 1000 };
enum { PIX_MIN_VEL = 5 };
enum { PIX_MAX_VEL = 21 };
enum { Y_AOJ = 72 };
// HPT Data Block
enum { X_HPT_BLO = 426 };
enum { Y_HPT_GRTR = 391 };
enum { Y_HPT_CAS = 409 };
enum { Y_HPT_ASP = 427 };

// Time to Go to HPT
enum { X_TIMTOGO_HPT = 76 };
enum { Y_TIMTOGO_HPT = 28 };

// Intercept Zones
enum { X_MISS_ZONE = 426 };

// Quarter Mile Yard Stick
enum { X_QMY = 32 };
enum { Y_QMY = 34 };

// Gray Scale
extern pixel_num_t X_GREY; // = X_CENTRE_DISPL };
extern pixel_num_t Y_GREY; // = 150 };

// A/S Acquisition Cursor
//enum { X_HOR_CURS = X_CENTRE_DISPL };
//enum { Y_VERT_CURS = Y_CENTRE_DISPL };
enum { PIX_HR_HALF_CROSS = 60 };
enum { THICK_BAR_CURS = 2 };

// Gain Gauge Scale and tick
enum { X_MAP_GAUGE_SC = 17 };
enum { Y_MAP_GAUGE_SC = 30 };
enum { X_MAP_TICK = 17 };
enum { Y_MAP_SCA_MAX = 13 };
enum { Y_MAP_SCA_MIN = 47 };
enum { PIX_Y_HR_LBL = 24 };

// Time to Go to Cursor AS
enum { X_TIMTOGO_CUR = 331 };
enum { Y_TIMTOGO_CUR = 425 };

// A/S Tracked Target Data Block
enum { X_STT_BLO  = 369 };
enum { Y_STT_HEA  = 389 };
enum { Y_STT_GRSP = 407 };

// A/S HR Patch Limits
enum { THICK_HR_PTCH_LIM = 1 };

// A/S HR Patch Size Indicator
enum { X_HR_PTCH_SIND = 456 };
enum { Y_HR_PTCH_SIND = 40 };
enum { PIX_HR_PTCH_SIND_TIK_DIST = 10 };
enum { PIX_HR_PTCH_SIND_TIK_LEN = 10 };
enum { PIX_HR_PTCH_SIND_BUGS_OFS = 6 };
enum { NUM_HR_MAX_SYS_PTCH = 12 };

// A/S HR Suitability cues
enum { Y_HR_SUIT_CUES = 470 };
extern pixel_num_t Y_HR_SUIT_CUES;

// A/S HR Cursor Lat Lon
enum { X_HR_CURS_LATLON = 30 };
extern pixel_num_t X_HR_CURS_LATLON;
extern pixel_num_t Y_HR_CURS_LATLON;
enum { PIX_Y_HR_LATLON_OFS = 4 };

// HR Suitability
enum { PIX_HR_SUIT_HALF_CROSS = 30 };

// HR Time to Image
enum { X_HR_TTIMG = 360 };
extern pixel_num_t X_HR_TTIMG;
extern pixel_num_t Y_HR_TTIMG;

// Datalink targets
enum { NUM_MAX_DL_TGT = 16 };
//enum { CAS_MIN = 80 };
//enum { CAS_MAX = 1000 };
//enum { PIX_MIN_VEL = 5 };
//enum { PIX_MAX_VEL = 21 };

// Designation boxes size and center for each designable-symbol/reference(cursors)
enum { // A/A Cursor
       PIX_DES_CURS_AA_W         = 25,
       PIX_DES_CURS_AA_H         = 21,
       PIX_DES_CURS_AA_X         = 12,
       PIX_DES_CURS_AA_Y         = 10,
       // A/S Cursor
       PIX_DES_CURS_AS_W         = 25,
       PIX_DES_CURS_AS_H         = 21,
       PIX_DES_CURS_AS_X         = 12,
       PIX_DES_CURS_AS_Y         = 10,
       // Search jammer
       PIX_DES_TGT_JAM_SRC_W         = 19,
       PIX_DES_TGT_JAM_SRC_H         = 19,
       PIX_DES_TGT_JAM_SRC_X         = 9,
       PIX_DES_TGT_JAM_SRC_Y         = 11,
       // Track jammer
       PIX_DES_TGT_JAM_TRK_W         = 19,
       PIX_DES_TGT_JAM_TRK_H         = 19,
       PIX_DES_TGT_JAM_TRK_X         = 9,
       PIX_DES_TGT_JAM_TRK_Y         = 9,
       // A/S Range search targets
       PIX_DES_TGT_AS_RNG_SRC_W  = 9,
       PIX_DES_TGT_AS_RNG_SRC_H  = 3,
       PIX_DES_TGT_AS_RNG_SRC_X  = 4,
       PIX_DES_TGT_AS_RNG_SRC_Y  = 1,
       // A/A Range search targets
       PIX_DES_TGT_AA_RNG_SRC_W  = 13,
       PIX_DES_TGT_AA_RNG_SRC_H  = 13,
       PIX_DES_TGT_AA_RNG_SRC_X  = 6,
       PIX_DES_TGT_AA_RNG_SRC_Y  = 6,
       // Velocity search targets
       PIX_DES_TGT_VEL_SRC_W     = 10,
       PIX_DES_TGT_VEL_SRC_H     = 2,
       PIX_DES_TGT_VEL_SRC_X     = 5,
       PIX_DES_TGT_VEL_SRC_Y     = 0,
       // Normal track targets
       PIX_DES_TGT_NORM_TRK_W    = 19,
       PIX_DES_TGT_NORM_TRK_H    = 18,
       PIX_DES_TGT_NORM_TRK_X    = 9,
       PIX_DES_TGT_NORM_TRK_Y    = 11,
       // Normal track targets
       PIX_DES_TGT_MARK_W        = 9,
       PIX_DES_TGT_MARK_H        = 13,
       PIX_DES_TGT_MARK_X        = 4,
       PIX_DES_TGT_MARK_Y        = 6,
 };


#else

#define GC_REL_BOTTOM_Y_POS(Y_)	(Y_DIMENSION-(GC_REL_POS_REFERENCE-(Y_))) /*Experimental: resize display using reference offset)*/
#define GC_REL_CENTER_Y_POS(Y_)	(X_ABS_CENTRE_DISPL-(Y_CENTRE_DISPL-(Y_))) /*Experimental: resize display using reference offset)*/

//Generic constants used as integers where the meaning is clear by the context
// Ex. for bitmap symbols the dimension of the margin to be added to the symbol pure bounding box
enum { GCGP_OM_OCL_DIM = 1,
  GCGP_OM_OCL_MARGIN = (GCGP_OM_OCL_DIM * 2),
  GCGP_OM_BMP_MARGIN = (GCGP_OM_OCL_MARGIN + 2) };



// Expansion Window
enum { PIX_AZI_WND = 30};
enum { PIX_RANGE_WND = 30};

//Scan converter:

enum { SC_X_DIMENSION = X_DIMENSION};
enum { SC_Y_DIMENSION = Y_DIMENSION};

enum { SC_X_OFFSET = X_MOVWIN_OFFSET};
enum { SC_Y_OFFSET = Y_MOVWIN_OFFSET};

enum { SC_X_ZERO_PPI = X_CENTRE_DISPL};
enum { SC_Y_ZERO_PPI = Y_ZERO_RANGE};


// Symbols parameters:
// Azimuth Scale & Caret
enum { X_AZI_SCA = X_CENTRE_DISPL };
enum { Y_AZI_CAR = 436 };
enum { Y_AZI_SCA_LO = 445 };
enum { Y_AZI_SCA_UP = 39 };
enum { PIX_AZI_SCA = X_CENTRE_DISPL - 1};

// Degraded Performance Indicator
enum { X_DEGR = X_CENTRE_DISPL };
enum { Y_DEGR = 400 };

// Stand by label
enum { X_STBY = X_CENTRE_DISPL };
enum { Y_STBY = GC_REL_CENTER_Y_POS(206) };

// WarmUp Time Indicator
enum { X_WARM_UP = X_CENTRE_DISPL };
enum { Y_WARM_UP = GC_REL_BOTTOM_Y_POS(382) };

// Elevation Scale & Caret
enum { X_ELE_CAR = 44 };
enum { X_ELE_SCA = 41 };
enum { Y_ELE_SCA = Y_CENTRE_DISPL };
enum { PIX_ELE_SCA = Y_ELE_SCA };

// Frequency Band Indicator
enum { X_BAND_IND = 441 };
enum { X_CHAN_NUM = 437 };
enum { Y_BAND_IND = 17 };
enum { Y_CHAN_NUM = 10 };

// Horizon Line
enum { HOR_BAR     = 100 };
enum { HOR_GAP     =  30 };
enum { HOR_H       =  15 };
enum { PIX_MIN_HOR =   0 };

// Ownship Text Block
enum { X_OWN_ALT = 322 };
enum { X_OWN_CAS = 162 };
enum { X_OWN_HEA = 241 };
enum { Y_OWN_BLO = 409 };

// Range/Velocity Scale
enum { X_RNG_SCA = 467 };
enum { Y_RNG_SCA = Y_CENTRE_DISPL };

// Search Tgt
enum { MAX_TGT_HISTORY = 6 };
enum { MAX_TGT_PER_FRAME = 128 };
enum { NUM_MAX_TGT = (MAX_TGT_PER_FRAME * (MAX_TGT_HISTORY + 1)) }; // Histories plus the current frame
//  Da specifica
//enum { X_OVERL = 18 };
//enum { Y_OVERL_DOWN = 14 };
//enum { Y_OVERL_UP = 10 };
//
// Test!!!
enum { X_OVERL = 27 };
enum { Y_OVERL_DOWN = 10 };
enum { Y_OVERL_UP = 14 };
//

// Azimuth Scan Limits
enum { Y_AZ_SCA_LIM = 241 };

// Navigation Points
enum { PS_NAVP_NUM_MAX = 3 };

// Altitude Line Track indicator
enum { X_ALT_LINE = 462 };

// Waveform Scheduling Indicator
enum { X_WAVE_IND = 426 };
enum { Y_WAVE_IND = 10 };

// MTR Settings Indicator
enum { X_MTR_IND = 84 };
enum { Y_MTR_IND = 28 };

// Jammer Extension Symbol and Source Indicator
enum { Y_JAM_LO = 48 };
enum { Y_JAM_ME = 52 };
enum { Y_JAM_HI = 56 };

// Jammer Extension Symbol and Direction Tick
enum { N_JAM_EXT_MAX = 10 };

// Jammer Direction Tick
enum { Y_JAM_CENT = 67 };

// WDNS Failure Labels
enum { X_LAB_BCK = 92};
enum { Y_LAB_BCK = 10};	//was 22, but overlaps time to go to HPT
enum { X_LAB_RNG = 5};
enum { Y_LAB_RNG = 99};
enum { X_LAB_AZSC = 5};
enum { Y_LAB_AZSC = 244};
enum { X_LAB_NOB = 5};
enum { Y_LAB_NOB = 344};

// Tracks
enum { NUM_MAX_TRK = 16 };
enum { CAS_MIN = 80 };
enum { CAS_MAX = 1000 };
enum { PIX_MIN_VEL = 5 };
enum { PIX_MAX_VEL = 21 };
enum { Y_AOJ = 72 };
// HPT Data Block
enum { X_HPT_BLO = 426 };
enum { Y_HPT_GRTR = 391 };
enum { Y_HPT_CAS = 409 };
enum { Y_HPT_ASP = 427 };

// Time to Go to HPT
enum { X_TIMTOGO_HPT = 76 };
enum { Y_TIMTOGO_HPT = 28 };

// Intercept Zones
enum { X_MISS_ZONE = 426 };

// Quarter Mile Yard Stick
enum { X_QMY = 32 };
enum { Y_QMY = 34 };

// Gray Scale
enum { X_GREY = X_CENTRE_DISPL };
enum { Y_GREY = 150 };

// A/S Acquisition Cursor
enum { X_HOR_CURS = X_CENTRE_DISPL };
enum { Y_VERT_CURS = Y_CENTRE_DISPL };
enum { PIX_HR_HALF_CROSS = 60 };
enum { THICK_BAR_CURS = 2 };

// Gain Gauge Scale and tick
enum { X_MAP_GAUGE_SC = 17 };
enum { Y_MAP_GAUGE_SC = 30 };
enum { X_MAP_TICK = 17 };
enum { Y_MAP_SCA_MAX = 13 };
enum { Y_MAP_SCA_MIN = 47 };
enum { PIX_Y_HR_LBL = 24 };

// Time to Go to Cursor AS
enum { X_TIMTOGO_CUR = 331 };
enum { Y_TIMTOGO_CUR = 425 };

// A/S Tracked Target Data Block
enum { X_STT_BLO  = 369 };
enum { Y_STT_HEA  = 389 };
enum { Y_STT_GRSP = 407 };

// A/S HR Patch Limits
enum { THICK_HR_PTCH_LIM = 1 };

// A/S HR Patch Size Indicator
enum { X_HR_PTCH_SIND = 456 };
enum { Y_HR_PTCH_SIND = 40 };
enum { PIX_HR_PTCH_SIND_TIK_DIST = 10 };
enum { PIX_HR_PTCH_SIND_TIK_LEN = 10 };
enum { PIX_HR_PTCH_SIND_BUGS_OFS = 6 };
enum { NUM_HR_MAX_SYS_PTCH = 12 };

// A/S HR Suitability cues
enum { Y_HR_SUIT_CUES = 470 };

// A/S HR Cursor Lat Lon
enum { X_HR_CURS_LATLON = 30 };
enum { Y_HR_CURS_LATLON = 370 };
enum { PIX_Y_HR_LATLON_OFS = 4 };

// HR Suitability
enum { PIX_HR_SUIT_HALF_CROSS = 30 };

// HR Time to Image
enum { X_HR_TTIMG = 360 };
enum { Y_HR_TTIMG = 41 };

// Datalink targets
enum { NUM_MAX_DL_TGT = 16 };
//enum { CAS_MIN = 80 };
//enum { CAS_MAX = 1000 };
//enum { PIX_MIN_VEL = 5 };
//enum { PIX_MAX_VEL = 21 };

// Designation boxes size and center for each designable-symbol/reference(cursors)
enum { // A/A Cursor
       PIX_DES_CURS_AA_W         = 25,
       PIX_DES_CURS_AA_H         = 21,
       PIX_DES_CURS_AA_X         = 12,
       PIX_DES_CURS_AA_Y         = 10,
       // A/S Cursor
       PIX_DES_CURS_AS_W         = 25,
       PIX_DES_CURS_AS_H         = 21,
       PIX_DES_CURS_AS_X         = 12,
       PIX_DES_CURS_AS_Y         = 10,
       // Search jammer
       PIX_DES_TGT_JAM_SRC_W         = 19,
       PIX_DES_TGT_JAM_SRC_H         = 19,
       PIX_DES_TGT_JAM_SRC_X         = 9,
       PIX_DES_TGT_JAM_SRC_Y         = 11,
       // Track jammer
       PIX_DES_TGT_JAM_TRK_W         = 19,
       PIX_DES_TGT_JAM_TRK_H         = 19,
       PIX_DES_TGT_JAM_TRK_X         = 9,
       PIX_DES_TGT_JAM_TRK_Y         = 9,
       // A/S Range search targets
       PIX_DES_TGT_AS_RNG_SRC_W  = 9,
       PIX_DES_TGT_AS_RNG_SRC_H  = 3,
       PIX_DES_TGT_AS_RNG_SRC_X  = 4,
       PIX_DES_TGT_AS_RNG_SRC_Y  = 1,
       // A/A Range search targets
       PIX_DES_TGT_AA_RNG_SRC_W  = 13,
       PIX_DES_TGT_AA_RNG_SRC_H  = 13,
       PIX_DES_TGT_AA_RNG_SRC_X  = 6,
       PIX_DES_TGT_AA_RNG_SRC_Y  = 6,
       // Velocity search targets
       PIX_DES_TGT_VEL_SRC_W     = 10,
       PIX_DES_TGT_VEL_SRC_H     = 2,
       PIX_DES_TGT_VEL_SRC_X     = 5,
       PIX_DES_TGT_VEL_SRC_Y     = 0,
       // Normal track targets
       PIX_DES_TGT_NORM_TRK_W    = 19,
       PIX_DES_TGT_NORM_TRK_H    = 18,
       PIX_DES_TGT_NORM_TRK_X    = 9,
       PIX_DES_TGT_NORM_TRK_Y    = 11,
       // Normal track targets
       PIX_DES_TGT_MARK_W        = 9,
       PIX_DES_TGT_MARK_H        = 13,
       PIX_DES_TGT_MARK_X        = 4,
       PIX_DES_TGT_MARK_Y        = 6,
 };
#endif
} /*namespace*/

#endif /*GC_CONFIG_H_*/
