194 void SetValid(
bool valid) { bValid = valid; }
195 time_t GetFileTime()
const {
return file_date; }
196 time_t GetChartEditionDate()
const {
return edition_date; }
198 int GetnPlyEntries()
const {
return nPlyEntries; }
199 float *GetpPlyTable()
const {
return pPlyTable; }
201 int GetnAuxPlyEntries()
const {
return nAuxPlyEntries; }
202 float *GetpAuxPlyTableEntry(
int index)
const {
return pAuxPlyTable[index]; }
203 int GetAuxCntTableEntry(
int index)
const {
return pAuxCntTable[index]; }
205 int GetnNoCovrPlyEntries()
const {
return nNoCovrPlyEntries; }
206 float *GetpNoCovrPlyTableEntry(
int index)
const {
207 return pNoCovrPlyTable[index];
209 int GetNoCovrCntTableEntry(
int index)
const {
return pNoCovrCntTable[index]; }
211 const LLBBox &GetBBox()
const {
return m_bbox; }
213 char *GetpFullPath()
const {
return pFullPath; }
214 float GetLonMax()
const {
return LonMax; }
215 float GetLonMin()
const {
return LonMin; }
216 float GetLatMax()
const {
return LatMax; }
217 float GetLatMin()
const {
return LatMin; }
218 int GetScale()
const {
return Scale; }
219 int GetChartType()
const {
return ChartType; }
220 int GetChartFamily()
const {
return ChartFamily; }
221 int GetChartProjectionType()
const {
return ProjectionType; }
222 float GetChartSkew()
const {
return Skew; }
224 bool GetbValid() {
return bValid; }
225 void SetEntryOffset(
int n) { EntryOffset = n; }
226 const wxString *GetpFileName(
void)
const {
return m_pfilename; }
227 wxString *GetpsFullPath(
void)
const {
return m_psFullPath; }
228 wxString GetFullSystemPath()
const {
return m_fullSystemPath; }
230 const std::vector<int> &GetGroupArray(
void)
const {
return m_GroupArray; }
231 void ClearGroupArray(
void) { m_GroupArray.clear(); }
232 void AddIntToGroupArray(
int val) { m_GroupArray.push_back(val); }
233 void SetAvailable(
bool avail) { m_bavail = avail; }
235 std::vector<float> GetReducedPlyPoints();
236 std::vector<float> GetReducedAuxPlyPoints(
int iTable);
238 LLRegion quilt_candidate_region;
240 void SetScale(
int scale);
241 bool Scale_eq(
int b)
const {
return abs(Scale - b) <= rounding; }
242 bool Scale_ge(
int b)
const {
return Scale_eq(b) || Scale > b; }
243 bool Scale_gt(
int b)
const {
return Scale > b && !Scale_eq(b); }
261 float **pAuxPlyTable;
266 int nNoCovrPlyEntries;
267 int *pNoCovrCntTable;
268 float **pNoCovrPlyTable;
270 std::vector<int> m_GroupArray;
271 wxString *m_pfilename;
272 wxString *m_psFullPath;
273 wxString m_fullSystemPath;
278 std::vector<float> m_reducedPlyPoints;
280 std::vector<std::vector<float>> m_reducedAuxPlyPointsVector;
318 bool Create(ArrayOfCDI &dir_array, wxGenericProgressDialog *pprog);
326 bool Update(ArrayOfCDI &dir_array,
bool bForce,
327 wxGenericProgressDialog *pprog);
329 bool Read(
const wxString &filePath);
330 bool Write(
const wxString &filePath);
332 bool AddSingleChart(wxString &fullpath,
bool b_force_full_search =
true);
333 bool RemoveSingleChart(wxString &ChartFullPath);
335 const wxString &GetDBFileName()
const {
return m_DBFileName; }
336 ArrayOfCDI &GetChartDirArray() {
return m_dir_array; }
337 wxArrayString &GetChartDirArrayString() {
return m_chartDirs; }
338 void SetChartDirArray(ArrayOfCDI array) { m_dir_array = array; }
339 bool CompareChartDirArray(ArrayOfCDI &test_array);
340 wxString GetMagicNumberCached(wxString dir);
342 void UpdateChartClassDescriptorArray(
void);
344 int GetChartTableEntries()
const {
return active_chartTable.size(); }
347 inline ChartTable &GetChartTable() {
return active_chartTable; }
349 bool IsValid()
const {
return bValid; }
350 int DisableChart(wxString &PathToDisable);
351 bool GetCentroidOfLargestScaleChart(
double *clat,
double *clon,
352 ChartFamilyEnum family);
353 int GetDBChartType(
int dbIndex);
354 int GetDBChartFamily(
int dbIndex);
355 float GetDBChartSkew(
int dbIndex);
356 int GetDBChartProj(
int dbIndex);
357 int GetDBChartScale(
int dbIndex);
359 bool GetDBBoundingBox(
int dbindex, LLBBox &box);
360 const LLBBox &GetDBBoundingBox(
int dbIndex);
362 int GetnAuxPlyEntries(
int dbIndex);
363 int GetDBPlyPoint(
int dbIndex,
int plyindex,
float *lat,
float *lon);
364 int GetDBAuxPlyPoint(
int dbIndex,
int plyindex,
int iAuxPly,
float *lat,
366 int GetVersion() {
return m_dbversion; }
367 wxString GetFullChartInfo(
ChartBase *pc,
int dbIndex,
int *char_width,
369 int FinddbIndex(wxString PathToFind);
370 wxString GetDBChartFileName(
int dbIndex);
371 void ApplyGroupArray(ChartGroupArray *pGroupArray);
372 bool IsChartAvailable(
int dbIndex);
373 ChartTable active_chartTable;
374 std::map<wxString, int> active_chartTable_pathindex;
376 std::vector<float> GetReducedPlyPoints(
int dbIndex);
377 std::vector<float> GetReducedAuxPlyPoints(
int dbIndex,
int iTable);
379 bool IsBusy() {
return m_b_busy; }
382 virtual ChartBase *GetChart(
const wxChar *theFilePath,
384 int AddChartDirectory(
const wxString &theDir,
bool bshow_prog);
385 void SetValid(
bool valid) { bValid = valid; }
390 std::vector<ChartClassDescriptor> m_ChartClassDescriptorArray;
391 ArrayOfCDI m_dir_array;
395 bool IsChartDirUsed(
const wxString &theDir);
397 int SearchDirAndAddCharts(wxString &dir_name_base,
399 wxGenericProgressDialog *pprog);
402 wxGenericProgressDialog *pprog,
403 wxString &dir_magic,
bool bForce);
404 bool DetectDirChange(
const wxString &dir_path,
const wxString &prog_label,
405 const wxString &magic, wxString &new_magic,
406 wxGenericProgressDialog *pprog);
409 wxGenericProgressDialog *pprog,
int isearch,
410 bool bthis_dir_in_dB);
412 bool Check_CM93_Structure(wxString dir_name);
415 wxArrayString m_chartDirs;
419 m_ChartTableEntryDummy;
420 wxString m_DBFileName;
Represents an entry in the chart table, containing information about a single chart.