400 wxString getLastError() {
return errorMessage; }
401 void setVerbose(
bool verbose);
402 void setNoErrDialog(
bool val) { m_NoErrDialog = val; }
404 int ingestHeader(
const wxString &senc_file_name);
405 int ingest(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
406 VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
408 int ingest200(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
409 VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
412 void SetLODMeters(
double meters) { m_LOD_meters = meters; }
413 void setRegistrar(S57ClassRegistrar *registrar) { m_poRegistrar = registrar; }
414 void setRefLocn(
double lat,
double lon) {
418 void setOutstream(
Osenc_outstream *stream) { m_pauxOutstream = stream; }
419 void setInstream(
Osenc_instream *stream) { m_pauxInstream = stream; }
421 wxString getUpdateDate() {
return m_LastUpdateDate; }
422 wxString getBaseDate() {
return m_sdate000; }
424 wxString getSENCFileCreateDate() {
return m_readFileCreateDate; }
426 int getSencReadVersion() {
return m_senc_file_read_version; }
427 wxString getSENCReadBaseEdition() {
return m_read_base_edtn; }
428 int getSENCReadLastUpdate() {
return m_read_last_applied_update; }
429 int getSENCReadScale() {
return m_Chart_Scale; }
430 wxString getReadName() {
return m_Name; }
431 wxString getReadID() {
return m_ID; }
432 Extent &getReadExtent() {
return m_extent; }
434 SENCFloatPtrArray &getSENCReadAuxPointArray() {
return m_AuxPtrArray; }
435 std::vector<int> &getSENCReadAuxPointCountArray() {
return m_AuxCntArray; }
436 SENCFloatPtrArray &getSENCReadNOCOVRPointArray() {
return m_NoCovrPtrArray; }
437 std::vector<int> &getSENCReadNOCOVRPointCountArray() {
438 return m_NoCovrCntArray;
441 int createSenc200(
const wxString &FullPath000,
const wxString &SENCFileName,
442 bool b_showProg =
true);
445 S57Reader *poReader);
447 S57Reader *poReader);
449 void InitializePersistentBuffer(
void);
450 unsigned char *getBuffer(
size_t length);
452 int getNativeScale() {
return m_native_scale; }
453 int GetBaseFileInfo(
const wxString &FullPath000,
454 const wxString &SENCFileName);
456 std::unique_lock<std::mutex> lockCR;
461 int ingestCell(OGRS57DataSource *poS57DS,
const wxString &FullPath000,
462 const wxString &working_dir);
463 int ValidateAndCountUpdates(
const wxFileName file000,
const wxString CopyDir,
464 wxString &LastUpdateDate,
bool b_copyfiles);
465 int GetUpdateFileArray(
const wxFileName file000, wxArrayString *UpFiles);
466 bool GetBaseFileAttr(
const wxString &FullPath000);
467 unsigned char *getObjectVectorIndexTable(S57Reader *poReader,
468 OGRFeature *poFeature,
471 OGRFeature *GetChartFirstM_COVR(
int &catcov, S57Reader *pENCReader,
472 S57ClassRegistrar *poRegistrar);
473 OGRFeature *GetChartNextM_COVR(
int &catcov, S57Reader *pENCReader);
474 bool CreateCOVRTables(S57Reader *pENCReader, S57ClassRegistrar *poRegistrar);
477 void CreateSENCRecord124(OGRFeature *pFeature,
Osenc_outstream *stream,
478 int mode, S57Reader *poReader);
479 void CreateSENCVectorEdgeTable(
Osenc_outstream *stream, S57Reader *poReader);
480 void CreateSENCConnNodeTable(
Osenc_outstream *stream, S57Reader *poReader);
482 bool CreateSENCRecord200(OGRFeature *pFeature,
Osenc_outstream *stream,
483 int mode, S57Reader *poReader);
484 bool WriteFIDRecord200(
Osenc_outstream *stream,
int nOBJL,
int featureID,
487 std::string payload);
492 bool CreateAreaFeatureGeometryRecord200(S57Reader *poReader,
493 OGRFeature *pFeature,
495 bool CreateLineFeatureGeometryRecord200(S57Reader *poReader,
496 OGRFeature *pFeature,
498 bool CreateMultiPointFeatureGeometryRecord200(OGRFeature *pFeature,
501 std::string GetFeatureAcronymFromTypecode(
int typeCode);
502 std::string GetAttributeAcronymFromTypecode(
int typeCode);
505 unsigned char **bytes_consumed);
506 bool CalculateExtent(S57Reader *poReader, S57ClassRegistrar *poRegistrar);
508 wxString errorMessage;
512 wxString m_FullPath000;
515 int m_senc_file_read_version;
516 int m_senc_file_create_version;
517 wxString m_read_base_edtn;
518 int m_read_last_applied_update;
522 wxDateTime m_date000;
529 int m_last_applied_update;
530 wxString m_LastUpdateDate;
532 wxString m_readFileCreateDate;
536 std::unordered_map<int, int> m_vector_helper_hash;
538 S57ClassRegistrar *m_poRegistrar;
539 wxArrayString m_tmpup_array;
541 wxGenericProgressDialog *m_ProgDialog;
543 unsigned char *pBuffer;
551 int *m_pCOVRTablePoints;
553 float **m_pCOVRTable;
556 int m_nNoCOVREntries;
557 int *m_pNoCOVRTablePoints;
559 float **m_pNoCOVRTable;
563 SENCFloatPtrArray m_AuxPtrArray;
564 std::vector<int> m_AuxCntArray;
565 SENCFloatPtrArray m_NoCovrPtrArray;
566 std::vector<int> m_NoCovrCntArray;
575 wxArrayString *m_UpFiles;
576 bool m_bPrivateRegistrar;