OpenCPN Partial API docs
Loading...
Searching...
No Matches
o_senc.h File Reference

S57 SENC File Object. More...

#include <string.h>
#include <stdint.h>
#include <vector>
#include <mutex>
#include <unordered_map>
#include "wx/wxprec.h"
#include <wx/wx.h>
#include <wx/filename.h>
#include <wx/progdlg.h>
#include <wx/string.h>
#include <wx/wfstream.h>
#include "gdal/cpl_csv.h"
#include "chartbase.h"
#include "mygeom.h"
#include "ogr_s57.h"
#include "s52s57.h"

Go to the source code of this file.

Classes

struct  _OSENC_Record_Base
 
struct  _OSENC_Record
 
struct  _OSENC_Feature_Identification_Record_Base
 
struct  _OSENC_Feature_Identification_Record_Payload
 
struct  _OSENC_Attribute_Record_Base
 
struct  _OSENC_Attribute_Record
 
struct  _OSENC_Attribute_Record_Payload
 
struct  _OSENC_PointGeometry_Record
 
struct  _OSENC_PointGeometry_Record_Payload
 
struct  _OSENC_MultipointGeometry_Record_Base
 
struct  _OSENC_MultipointGeometry_Record_Payload
 
struct  _OSENC_LineGeometry_Record_Base
 
struct  _OSENC_LineGeometry_Record_Payload
 
struct  _OSENC_AreaGeometry_Record_Base
 
struct  _OSENC_AreaGeometry_Record_Payload
 
struct  _OSENC_VET_Record
 
struct  _OSENC_VET_Record_Base
 
struct  _OSENC_VCT_Record
 
struct  _OSENC_VCT_Record_Base
 
struct  _OSENC_COVR_Record
 
struct  _OSENC_COVR_Record_Base
 
struct  _OSENC_COVR_Record_Payload
 
struct  _OSENC_NOCOVR_Record
 
struct  _OSENC_NOCOVR_Record_Base
 
struct  _OSENC_NOCOVR_Record_Payload
 
struct  _OSENC_EXTENT_Record
 
struct  _OSENC_EXTENT_Record_Payload
 
class  Osenc_instream
 
class  Osenc_instreamFile
 
class  Osenc_outstream
 
class  Osenc_outstreamFile
 
class  Osenc
 

Macros

#define SENC_NO_ERROR   0
 
#define ERROR_SENCFILE_NOT_FOUND   1
 
#define ERROR_SENC_VERSION_MISMATCH   2
 
#define ERROR_CANNOT_CREATE_SENC_DIR   3
 
#define ERROR_CANNOT_CREATE_TEMP_SENC_FILE   4
 
#define ERROR_INGESTING000   5
 
#define ERROR_REGISTRAR_NOT_SET   6
 
#define ERROR_BASEFILE_ATTRIBUTES   7
 
#define ERROR_SENCFILE_ABORT   8
 
#define HEADER_SENC_VERSION   1
 
#define HEADER_CELL_NAME   2
 
#define HEADER_CELL_PUBLISHDATE   3
 
#define HEADER_CELL_EDITION   4
 
#define HEADER_CELL_UPDATEDATE   5
 
#define HEADER_CELL_UPDATE   6
 
#define HEADER_CELL_NATIVESCALE   7
 
#define HEADER_CELL_SENCCREATEDATE   8
 
#define FEATURE_ID_RECORD   64
 
#define FEATURE_ATTRIBUTE_RECORD   65
 
#define FEATURE_GEOMETRY_RECORD_POINT   80
 
#define FEATURE_GEOMETRY_RECORD_LINE   81
 
#define FEATURE_GEOMETRY_RECORD_AREA   82
 
#define FEATURE_GEOMETRY_RECORD_MULTIPOINT   83
 
#define VECTOR_EDGE_NODE_TABLE_RECORD   96
 
#define VECTOR_CONNECTED_NODE_TABLE_RECORD   97
 
#define CELL_COVR_RECORD   98
 
#define CELL_NOCOVR_RECORD   99
 
#define CELL_EXTENT_RECORD   100
 
#define ATTRIBUTE_ID_PRIM   50000
 

Typedefs

typedef struct _OSENC_Record_Base OSENC_Record_Base
 
typedef struct _OSENC_Record OSENC_Record
 
typedef struct _OSENC_Feature_Identification_Record_Base OSENC_Feature_Identification_Record_Base
 
typedef struct _OSENC_Feature_Identification_Record_Payload OSENC_Feature_Identification_Record_Payload
 
typedef struct _OSENC_Attribute_Record_Base OSENC_Attribute_Record_Base
 
typedef struct _OSENC_Attribute_Record OSENC_Attribute_Record
 
typedef struct _OSENC_Attribute_Record_Payload OSENC_Attribute_Record_Payload
 
typedef struct _OSENC_PointGeometry_Record OSENC_PointGeometry_Record
 
typedef struct _OSENC_PointGeometry_Record_Payload OSENC_PointGeometry_Record_Payload
 
typedef struct _OSENC_MultipointGeometry_Record_Base OSENC_MultipointGeometry_Record_Base
 
typedef struct _OSENC_MultipointGeometry_Record_Payload OSENC_MultipointGeometry_Record_Payload
 
typedef struct _OSENC_LineGeometry_Record_Base OSENC_LineGeometry_Record_Base
 
typedef struct _OSENC_LineGeometry_Record_Payload OSENC_LineGeometry_Record_Payload
 
typedef struct _OSENC_AreaGeometry_Record_Base OSENC_AreaGeometry_Record_Base
 
typedef struct _OSENC_AreaGeometry_Record_Payload OSENC_AreaGeometry_Record_Payload
 
typedef struct _OSENC_VET_Record OSENC_VET_Record
 
typedef struct _OSENC_VET_Record_Base OSENC_VET_Record_Base
 
typedef struct _OSENC_VCT_Record OSENC_VCT_Record
 
typedef struct _OSENC_VCT_Record_Base OSENC_VCT_Record_Base
 
typedef struct _OSENC_COVR_Record _OSENC_COVR_Record
 
typedef struct _OSENC_COVR_Record_Base _OSENC_COVR_Record_Base
 
typedef struct _OSENC_COVR_Record_Payload _OSENC_COVR_Record_Payload
 
typedef struct _OSENC_NOCOVR_Record _OSENC_NOCOVR_Record
 
typedef struct _OSENC_NOCOVR_Record_Base _OSENC_NOCOVR_Record_Base
 
typedef struct _OSENC_NOCOVR_Record_Payload _OSENC_NOCOVR_Record_Payload
 
typedef struct _OSENC_EXTENT_Record _OSENC_EXTENT_Record
 
typedef struct _OSENC_EXTENT_Record_Payload _OSENC_EXTENT_Record_Payload
 
typedef std::vector< S57Obj * > S57ObjVector
 
typedef std::vector< VE_Element * > VE_ElementVector
 
typedef std::vector< VC_Element * > VC_ElementVector
 

Functions

 WX_DEFINE_ARRAY_PTR (float *, SENCFloatPtrArray)
 
const char * MyCSVGetField (const char *pszFilename, const char *pszKeyFieldName, const char *pszKeyFieldValue, CSVCompareCriteria eCriteria, const char *pszTargetField)
 

Variables

s57RegistrarMgr * m_pRegistrarMan
 Global instance.
 

Detailed Description

S57 SENC File Object.

Definition in file o_senc.h.

Macro Definition Documentation

◆ ATTRIBUTE_ID_PRIM

#define ATTRIBUTE_ID_PRIM   50000

Definition at line 88 of file o_senc.h.

◆ CELL_COVR_RECORD

#define CELL_COVR_RECORD   98

Definition at line 84 of file o_senc.h.

◆ CELL_EXTENT_RECORD

#define CELL_EXTENT_RECORD   100

Definition at line 86 of file o_senc.h.

◆ CELL_NOCOVR_RECORD

#define CELL_NOCOVR_RECORD   99

Definition at line 85 of file o_senc.h.

◆ ERROR_BASEFILE_ATTRIBUTES

#define ERROR_BASEFILE_ATTRIBUTES   7

Definition at line 60 of file o_senc.h.

◆ ERROR_CANNOT_CREATE_SENC_DIR

#define ERROR_CANNOT_CREATE_SENC_DIR   3

Definition at line 56 of file o_senc.h.

◆ ERROR_CANNOT_CREATE_TEMP_SENC_FILE

#define ERROR_CANNOT_CREATE_TEMP_SENC_FILE   4

Definition at line 57 of file o_senc.h.

◆ ERROR_INGESTING000

#define ERROR_INGESTING000   5

Definition at line 58 of file o_senc.h.

◆ ERROR_REGISTRAR_NOT_SET

#define ERROR_REGISTRAR_NOT_SET   6

Definition at line 59 of file o_senc.h.

◆ ERROR_SENC_VERSION_MISMATCH

#define ERROR_SENC_VERSION_MISMATCH   2

Definition at line 55 of file o_senc.h.

◆ ERROR_SENCFILE_ABORT

#define ERROR_SENCFILE_ABORT   8

Definition at line 61 of file o_senc.h.

◆ ERROR_SENCFILE_NOT_FOUND

#define ERROR_SENCFILE_NOT_FOUND   1

Definition at line 54 of file o_senc.h.

◆ FEATURE_ATTRIBUTE_RECORD

#define FEATURE_ATTRIBUTE_RECORD   65

Definition at line 74 of file o_senc.h.

◆ FEATURE_GEOMETRY_RECORD_AREA

#define FEATURE_GEOMETRY_RECORD_AREA   82

Definition at line 78 of file o_senc.h.

◆ FEATURE_GEOMETRY_RECORD_LINE

#define FEATURE_GEOMETRY_RECORD_LINE   81

Definition at line 77 of file o_senc.h.

◆ FEATURE_GEOMETRY_RECORD_MULTIPOINT

#define FEATURE_GEOMETRY_RECORD_MULTIPOINT   83

Definition at line 79 of file o_senc.h.

◆ FEATURE_GEOMETRY_RECORD_POINT

#define FEATURE_GEOMETRY_RECORD_POINT   80

Definition at line 76 of file o_senc.h.

◆ FEATURE_ID_RECORD

#define FEATURE_ID_RECORD   64

Definition at line 73 of file o_senc.h.

◆ HEADER_CELL_EDITION

#define HEADER_CELL_EDITION   4

Definition at line 67 of file o_senc.h.

◆ HEADER_CELL_NAME

#define HEADER_CELL_NAME   2

Definition at line 65 of file o_senc.h.

◆ HEADER_CELL_NATIVESCALE

#define HEADER_CELL_NATIVESCALE   7

Definition at line 70 of file o_senc.h.

◆ HEADER_CELL_PUBLISHDATE

#define HEADER_CELL_PUBLISHDATE   3

Definition at line 66 of file o_senc.h.

◆ HEADER_CELL_SENCCREATEDATE

#define HEADER_CELL_SENCCREATEDATE   8

Definition at line 71 of file o_senc.h.

◆ HEADER_CELL_UPDATE

#define HEADER_CELL_UPDATE   6

Definition at line 69 of file o_senc.h.

◆ HEADER_CELL_UPDATEDATE

#define HEADER_CELL_UPDATEDATE   5

Definition at line 68 of file o_senc.h.

◆ HEADER_SENC_VERSION

#define HEADER_SENC_VERSION   1

Definition at line 64 of file o_senc.h.

◆ SENC_NO_ERROR

#define SENC_NO_ERROR   0

Definition at line 53 of file o_senc.h.

◆ VECTOR_CONNECTED_NODE_TABLE_RECORD

#define VECTOR_CONNECTED_NODE_TABLE_RECORD   97

Definition at line 82 of file o_senc.h.

◆ VECTOR_EDGE_NODE_TABLE_RECORD

#define VECTOR_EDGE_NODE_TABLE_RECORD   96

Definition at line 81 of file o_senc.h.

Typedef Documentation

◆ S57ObjVector

typedef std::vector<S57Obj *> S57ObjVector

Definition at line 301 of file o_senc.h.

◆ VC_ElementVector

typedef std::vector<VC_Element *> VC_ElementVector

Definition at line 303 of file o_senc.h.

◆ VE_ElementVector

typedef std::vector<VE_Element *> VE_ElementVector

Definition at line 302 of file o_senc.h.

Function Documentation

◆ MyCSVGetField()

const char * MyCSVGetField ( const char *  pszFilename,
const char *  pszKeyFieldName,
const char *  pszKeyFieldValue,
CSVCompareCriteria  eCriteria,
const char *  pszTargetField 
)

Definition at line 6211 of file s57chart.cpp.

Variable Documentation

◆ m_pRegistrarMan

s57RegistrarMgr* m_pRegistrarMan
extern

Global instance.

Definition at line 62 of file o_senc.cpp.