406 wxString getLastError() {
return errorMessage; }
407 void setVerbose(
bool verbose);
408 void setNoErrDialog(
bool val) { m_NoErrDialog = val; }
410 int ingestHeader(
const wxString &senc_file_name);
411 int ingest(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
412 VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
414 int ingest200(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
415 VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
418 void SetLODMeters(
double meters) { m_LOD_meters = meters; }
419 void setRegistrar(S57ClassRegistrar *registrar) { m_poRegistrar = registrar; }
420 void setRefLocn(
double lat,
double lon) {
424 void setOutstream(
Osenc_outstream *stream) { m_pauxOutstream = stream; }
425 void setInstream(
Osenc_instream *stream) { m_pauxInstream = stream; }
427 wxString getUpdateDate() {
return m_LastUpdateDate; }
428 wxString getBaseDate() {
return m_sdate000; }
430 wxString getSENCFileCreateDate() {
return m_readFileCreateDate; }
432 int getSencReadVersion() {
return m_senc_file_read_version; }
433 wxString getSENCReadBaseEdition() {
return m_read_base_edtn; }
434 int getSENCReadLastUpdate() {
return m_read_last_applied_update; }
435 int getSENCReadScale() {
return m_Chart_Scale; }
436 wxString getReadName() {
return m_Name; }
437 wxString getReadID() {
return m_ID; }
438 Extent &getReadExtent() {
return m_extent; }
440 SENCFloatPtrArray &getSENCReadAuxPointArray() {
return m_AuxPtrArray; }
441 std::vector<int> &getSENCReadAuxPointCountArray() {
return m_AuxCntArray; }
442 SENCFloatPtrArray &getSENCReadNOCOVRPointArray() {
return m_NoCovrPtrArray; }
443 std::vector<int> &getSENCReadNOCOVRPointCountArray() {
444 return m_NoCovrCntArray;
447 int createSenc200(
const wxString &FullPath000,
const wxString &SENCFileName,
448 bool b_showProg =
true);
451 S57Reader *poReader);
453 S57Reader *poReader);
455 void InitializePersistentBuffer(
void);
456 unsigned char *getBuffer(
size_t length);
458 int getNativeScale() {
return m_native_scale; }
459 int GetBaseFileInfo(
const wxString &FullPath000,
460 const wxString &SENCFileName);
462 std::unique_lock<std::mutex> lockCR;
467 int ingestCell(OGRS57DataSource *poS57DS,
const wxString &FullPath000,
468 const wxString &working_dir);
469 int ValidateAndCountUpdates(
const wxFileName file000,
const wxString CopyDir,
470 wxString &LastUpdateDate,
bool b_copyfiles);
471 int GetUpdateFileArray(
const wxFileName file000, wxArrayString *UpFiles);
472 bool GetBaseFileAttr(
const wxString &FullPath000);
473 unsigned char *getObjectVectorIndexTable(S57Reader *poReader,
474 OGRFeature *poFeature,
477 OGRFeature *GetChartFirstM_COVR(
int &catcov, S57Reader *pENCReader,
478 S57ClassRegistrar *poRegistrar);
479 OGRFeature *GetChartNextM_COVR(
int &catcov, S57Reader *pENCReader);
480 bool CreateCOVRTables(S57Reader *pENCReader, S57ClassRegistrar *poRegistrar);
483 void CreateSENCRecord124(OGRFeature *pFeature,
Osenc_outstream *stream,
484 int mode, S57Reader *poReader);
485 void CreateSENCVectorEdgeTable(
Osenc_outstream *stream, S57Reader *poReader);
486 void CreateSENCConnNodeTable(
Osenc_outstream *stream, S57Reader *poReader);
488 bool CreateSENCRecord200(OGRFeature *pFeature,
Osenc_outstream *stream,
489 int mode, S57Reader *poReader);
490 bool WriteFIDRecord200(
Osenc_outstream *stream,
int nOBJL,
int featureID,
493 std::string payload);
498 bool CreateAreaFeatureGeometryRecord200(S57Reader *poReader,
499 OGRFeature *pFeature,
501 bool CreateLineFeatureGeometryRecord200(S57Reader *poReader,
502 OGRFeature *pFeature,
504 bool CreateMultiPointFeatureGeometryRecord200(OGRFeature *pFeature,
507 std::string GetFeatureAcronymFromTypecode(
int typeCode);
508 std::string GetAttributeAcronymFromTypecode(
int typeCode);
511 unsigned char **bytes_consumed);
512 bool CalculateExtent(S57Reader *poReader, S57ClassRegistrar *poRegistrar);
514 wxString errorMessage;
518 wxString m_FullPath000;
521 int m_senc_file_read_version;
522 int m_senc_file_create_version;
523 wxString m_read_base_edtn;
524 int m_read_last_applied_update;
528 wxDateTime m_date000;
535 int m_last_applied_update;
536 wxString m_LastUpdateDate;
538 wxString m_readFileCreateDate;
542 std::unordered_map<int, int> m_vector_helper_hash;
544 S57ClassRegistrar *m_poRegistrar;
545 wxArrayString m_tmpup_array;
547 wxGenericProgressDialog *m_ProgDialog;
549 unsigned char *pBuffer;
557 int *m_pCOVRTablePoints;
559 float **m_pCOVRTable;
562 int m_nNoCOVREntries;
563 int *m_pNoCOVRTablePoints;
565 float **m_pNoCOVRTable;
569 SENCFloatPtrArray m_AuxPtrArray;
570 std::vector<int> m_AuxCntArray;
571 SENCFloatPtrArray m_NoCovrPtrArray;
572 std::vector<int> m_NoCovrCntArray;
581 wxArrayString *m_UpFiles;
582 bool m_bPrivateRegistrar;