OpenCPN Partial API docs
Loading...
Searching...
No Matches
s57chart Class Reference

Represents an S57 format electronic navigational chart in OpenCPN. More...

#include <s57chart.h>

Inheritance diagram for s57chart:
ChartBase AbstractChart cm93chart cm93compchart

Public Member Functions

virtual InitReturn Init (const wxString &name, ChartInitFlag flags)
virtual ThumbData * GetThumbData (int tnx, int tny, float lat, float lon)
virtual ThumbData * GetThumbData ()
bool UpdateThumbData (double lat, double lon)
virtual int GetNativeScale ()
virtual double GetNormalScaleMin (double canvas_scale_factor, bool b_allow_overzoom)
virtual double GetNormalScaleMax (double canvas_scale_factor, int canvas_width)
void SetNativeScale (int s)
virtual bool RenderRegionViewOnDC (wxMemoryDC &dc, const ViewPort &VPoint, const OCPNRegion &Region)
virtual bool RenderOverlayRegionViewOnDC (wxMemoryDC &dc, const ViewPort &VPoint, const OCPNRegion &Region)
virtual bool RenderRegionViewOnDCNoText (wxMemoryDC &dc, const ViewPort &VPoint, const OCPNRegion &Region)
virtual bool RenderRegionViewOnDCTextOnly (wxMemoryDC &dc, const ViewPort &VPoint, const OCPNRegion &Region)
virtual void GetValidCanvasRegion (const ViewPort &VPoint, OCPNRegion *pValidRegion)
virtual LLRegion GetValidRegion ()
virtual void GetPointPix (ObjRazRules *rzRules, float rlat, float rlon, wxPoint *r)
virtual void GetPointPix (ObjRazRules *rzRules, wxPoint2DDouble *en, wxPoint *r, int nPoints)
virtual void GetPixPoint (int pixx, int pixy, double *plat, double *plon, ViewPort *vpt)
virtual void SetVPParms (const ViewPort &vpt)
virtual bool AdjustVP (ViewPort &vp_last, ViewPort &vp_proposed)
virtual double GetNearestPreferredScalePPM (double target_scale_ppm)
void SetFullExtent (Extent &ext)
bool GetChartExtent (Extent *pext)
void SetColorScheme (ColorScheme cs, bool bApplyImmediate=true)
virtual void UpdateLUPs (s57chart *pOwner)
int _insertRules (S57Obj *obj, LUPrec *LUP, s57chart *pOwner)
virtual ListOfObjRazRules * GetObjRuleListAtLatLon (float lat, float lon, float select_radius, ViewPort *VPoint, int selection_mask=MASK_ALL)
bool DoesLatLonSelectObject (float lat, float lon, float select_radius, S57Obj *obj)
bool IsPointInObjArea (float lat, float lon, float select_radius, S57Obj *obj)
virtual ListOfObjRazRules * GetLightsObjRuleListVisibleAtLatLon (float lat, float lon, ViewPort *VPoint)
wxString GetObjectAttributeValueAsString (S57Obj *obj, int iatt, wxString curAttrName)
wxString CreateObjDescriptions (ListOfObjRazRules *rule)
int BuildRAZFromSENCFile (const wxString &SENCPath)
wxString buildSENCName (const wxString &name)
bool GetNearestSafeContour (double safe_cnt, double &next_safe_cnt)
virtual std::list< S57Obj * > * GetAssociatedObjects (S57Obj *obj)
virtual std::unordered_map< unsigned, VE_Element * > & Get_ve_hash ()
virtual std::unordered_map< unsigned, VC_Element * > & Get_vc_hash ()
virtual void ForceEdgePriorityEvaluate ()
float * GetLineVertexBuffer ()
void ClearRenderedTextCache ()
double GetCalculatedSafetyContour ()
virtual bool RenderRegionViewOnGL (const wxGLContext &glc, const ViewPort &VPoint, const OCPNRegion &RectRegion, const LLRegion &Region)
virtual bool RenderOverlayRegionViewOnGL (const wxGLContext &glc, const ViewPort &VPoint, const OCPNRegion &RectRegion, const LLRegion &Region)
virtual bool RenderRegionViewOnGLNoText (const wxGLContext &glc, const ViewPort &VPoint, const OCPNRegion &RectRegion, const LLRegion &Region)
virtual bool RenderViewOnGLTextOnly (const wxGLContext &glc, const ViewPort &VPoint)
virtual bool IsCacheValid ()
virtual void InvalidateCache ()
virtual bool RenderViewOnDC (wxMemoryDC &dc, const ViewPort &VPoint)
virtual void ClearDepthContourArray ()
virtual void BuildDepthContourArray ()
int ValidateAndCountUpdates (const wxFileName file000, const wxString CopyDir, wxString &LastUpdateDate, bool b_copyfiles)
wxString GetISDT ()
InitReturn PostInit (ChartInitFlag flags, ColorScheme cs)
char GetUsageChar ()
int FindOrCreateSenc (const wxString &name, bool b_progress=true)
void DisableBackgroundSENC ()
void EnableBackgroundSENC ()
Public Member Functions inherited from ChartBase
virtual void Activate (void)
virtual void Deactivate (void)
virtual OcpnProjType GetChartProjectionType ()
virtual wxDateTime GetEditionDate (void)
virtual wxString GetPubDate ()
wxString GetFullPath () const
wxString GetHashKey () const
wxString GetName ()
wxString GetDescription ()
wxString GetID ()
wxString GetSE ()
wxString GetDepthUnits ()
wxString GetSoundingsDatum ()
wxString GetDatumString ()
wxString GetExtraInfo ()
double GetChart_Error_Factor ()
ChartTypeEnum GetChartType ()
ChartFamilyEnum GetChartFamily ()
double GetChartSkew ()
virtual ChartDepthUnitType GetDepthUnitType (void)
virtual bool IsReadyToRender ()
virtual int GetCOVREntries ()
virtual int GetCOVRTablePoints (int iTable)
virtual int GetCOVRTablenPoints (int iTable)
virtual float * GetCOVRTableHead (int iTable)
virtual int GetNoCOVREntries ()
virtual int GetNoCOVRTablePoints (int iTable)
virtual int GetNoCOVRTablenPoints (int iTable)
virtual float * GetNoCOVRTableHead (int iTable)

Static Public Member Functions

static wxString GetAttributeValueAsString (S57attVal *pAttrVal, wxString AttrName)
static bool CompareLights (const S57Light *l1, const S57Light *l2)
static wxString GetAttributeDecode (wxString &att, int ival)
static void GetChartNameFromTXT (const wxString &FullPath, wxString &Name)
static int GetUpdateFileArray (const wxFileName file000, wxArrayString *UpFiles, wxDateTime date000, wxString edtn000)
static bool IsCellOverlayType (const wxString &pFullPath)

Public Attributes

wxArrayPtrVoid * pFloatingATONArray
wxArrayPtrVoid * pRigidATONArray
double ref_lat
double ref_lon
double m_LOD_meters
Extent m_FullExtent
bool m_bExtentSet
bool m_bLinePrioritySet
double m_easting_vp_center
double m_northing_vp_center
double m_pixx_vp_center
double m_pixy_vp_center
double m_view_scale_ppm
ViewPort m_last_vp
OCPNRegion m_last_Region
bool m_b2pointLUPS
bool m_b2lineLUPS
bool m_RAZBuilt
chart_context * m_this_chart_context

Protected Member Functions

void AssembleLineGeometry ()

Protected Attributes

ObjRazRules * razRules [PRIO_NUM][LUPNAME_NUM]
double m_next_safe_cnt
sm_parms vp_transform
Protected Attributes inherited from ChartBase
int m_Chart_Scale
ChartTypeEnum m_ChartType
ChartFamilyEnum m_ChartFamily
wxString m_FullPath
wxString m_Name
wxString m_Description
wxString m_ID
wxString m_SE
wxString m_SoundingsDatum
wxString m_datum_str
wxString m_ExtraInfo
wxString m_PubYear
wxString m_DepthUnits
OcpnProjType m_projection
ChartDepthUnitType m_depth_unit_id
wxDateTime m_EdDate
ThumbData * pThumbData
ColorScheme m_global_color_scheme
bool bReadyToRender
double Chart_Error_Factor
double m_lon_datum_adjust
double m_lat_datum_adjust
double m_Chart_Skew
int m_nCOVREntries
int * m_pCOVRTablePoints
float ** m_pCOVRTable
int m_nNoCOVREntries
int * m_pNoCOVRTablePoints
float ** m_pNoCOVRTable

Detailed Description

Represents an S57 format electronic navigational chart in OpenCPN.

S57 is an international standard for encoding and exchanging digital hydrographic data. These vector charts contain maritime information including depths, buoys, lights, and other navigational features.

Key features of S57 charts and this class:

  • Vector data: Allows for smooth scaling and rotation without loss of quality
  • Rich feature set: Includes detailed information about various maritime objects
  • Layered display: Supports showing/hiding different types of information
  • SENC support: Can create and use System ENC (SENC) files for faster loading
  • Render options: Supports various rendering modes including OpenGL
  • Object queries: Allows for detailed queries of chart objects

Definition at line 90 of file s57chart.h.

Constructor & Destructor Documentation

◆ s57chart()

s57chart::s57chart ( )

Definition at line 200 of file s57chart.cpp.

◆ ~s57chart()

s57chart::~s57chart ( )

Definition at line 259 of file s57chart.cpp.

Member Function Documentation

◆ _insertRules()

int s57chart::_insertRules ( S57Obj * obj,
LUPrec * LUP,
s57chart * pOwner )

Definition at line 4328 of file s57chart.cpp.

◆ AdjustVP()

bool s57chart::AdjustVP ( ViewPort & vp_last,
ViewPort & vp_proposed )
virtual

Implements ChartBase.

Definition at line 591 of file s57chart.cpp.

◆ AssembleLineGeometry()

void s57chart::AssembleLineGeometry ( )
protected

Definition at line 970 of file s57chart.cpp.

◆ BuildDepthContourArray()

void s57chart::BuildDepthContourArray ( )
virtual

Definition at line 2880 of file s57chart.cpp.

◆ BuildRAZFromSENCFile()

int s57chart::BuildRAZFromSENCFile ( const wxString & SENCPath)

Definition at line 4097 of file s57chart.cpp.

◆ buildSENCName()

wxString s57chart::buildSENCName ( const wxString & name)

Definition at line 2613 of file s57chart.cpp.

◆ ClearDepthContourArray()

void s57chart::ClearDepthContourArray ( )
virtual

Definition at line 2871 of file s57chart.cpp.

◆ ClearRenderedTextCache()

void s57chart::ClearRenderedTextCache ( )

Definition at line 488 of file s57chart.cpp.

◆ CompareLights()

bool s57chart::CompareLights ( const S57Light * l1,
const S57Light * l2 )
static

Definition at line 5557 of file s57chart.cpp.

◆ CreateObjDescriptions()

wxString s57chart::CreateObjDescriptions ( ListOfObjRazRules * rule)

Definition at line 5598 of file s57chart.cpp.

◆ DisableBackgroundSENC()

void s57chart::DisableBackgroundSENC ( )
inline

Definition at line 254 of file s57chart.h.

◆ DoesLatLonSelectObject()

bool s57chart::DoesLatLonSelectObject ( float lat,
float lon,
float select_radius,
S57Obj * obj )

Definition at line 4849 of file s57chart.cpp.

◆ EnableBackgroundSENC()

void s57chart::EnableBackgroundSENC ( )
inline

Definition at line 255 of file s57chart.h.

◆ FindOrCreateSenc()

int s57chart::FindOrCreateSenc ( const wxString & name,
bool b_progress = true )

Definition at line 2650 of file s57chart.cpp.

◆ ForceEdgePriorityEvaluate()

void s57chart::ForceEdgePriorityEvaluate ( void )
virtual

Definition at line 732 of file s57chart.cpp.

◆ Get_vc_hash()

virtual std::unordered_map< unsigned, VC_Element * > & s57chart::Get_vc_hash ( void )
inlinevirtual

Definition at line 181 of file s57chart.h.

◆ Get_ve_hash()

virtual std::unordered_map< unsigned, VE_Element * > & s57chart::Get_ve_hash ( void )
inlinevirtual

Definition at line 178 of file s57chart.h.

◆ GetAssociatedObjects()

std::list< S57Obj * > * s57chart::GetAssociatedObjects ( S57Obj * obj)
virtual

Definition at line 3491 of file s57chart.cpp.

◆ GetAttributeDecode()

wxString s57chart::GetAttributeDecode ( wxString & att,
int ival )
static

Definition at line 5017 of file s57chart.cpp.

◆ GetAttributeValueAsString()

wxString s57chart::GetAttributeValueAsString ( S57attVal * pAttrVal,
wxString AttrName )
static

Definition at line 5416 of file s57chart.cpp.

◆ GetCalculatedSafetyContour()

double s57chart::GetCalculatedSafetyContour ( )
inline

Definition at line 191 of file s57chart.h.

◆ GetChartExtent()

bool s57chart::GetChartExtent ( Extent * pext)
virtual

Implements ChartBase.

Definition at line 430 of file s57chart.cpp.

◆ GetChartNameFromTXT()

void s57chart::GetChartNameFromTXT ( const wxString & FullPath,
wxString & Name )
static

Definition at line 3557 of file s57chart.cpp.

◆ GetISDT()

wxString s57chart::GetISDT ( )

Definition at line 3953 of file s57chart.cpp.

◆ GetLightsObjRuleListVisibleAtLatLon()

ListOfObjRazRules * s57chart::GetLightsObjRuleListVisibleAtLatLon ( float lat,
float lon,
ViewPort * VPoint )
virtual

Definition at line 4621 of file s57chart.cpp.

◆ GetLineVertexBuffer()

float * s57chart::GetLineVertexBuffer ( )
inline

Definition at line 187 of file s57chart.h.

◆ GetNativeScale()

virtual int s57chart::GetNativeScale ( void )
inlinevirtual

Reimplemented from ChartBase.

Definition at line 103 of file s57chart.h.

◆ GetNearestPreferredScalePPM()

virtual double s57chart::GetNearestPreferredScalePPM ( double target_scale_ppm)
inlinevirtual

Implements ChartBase.

Definition at line 140 of file s57chart.h.

◆ GetNearestSafeContour()

bool s57chart::GetNearestSafeContour ( double safe_cnt,
double & next_safe_cnt )

Definition at line 3464 of file s57chart.cpp.

◆ GetNormalScaleMax()

double s57chart::GetNormalScaleMax ( double canvas_scale_factor,
int canvas_width )
virtual

Implements ChartBase.

Definition at line 525 of file s57chart.cpp.

◆ GetNormalScaleMin()

double s57chart::GetNormalScaleMin ( double canvas_scale_factor,
bool b_allow_overzoom )
virtual

Implements ChartBase.

Definition at line 518 of file s57chart.cpp.

◆ GetObjectAttributeValueAsString()

wxString s57chart::GetObjectAttributeValueAsString ( S57Obj * obj,
int iatt,
wxString curAttrName )

Definition at line 5255 of file s57chart.cpp.

◆ GetObjRuleListAtLatLon()

ListOfObjRazRules * s57chart::GetObjRuleListAtLatLon ( float lat,
float lon,
float select_radius,
ViewPort * VPoint,
int selection_mask = MASK_ALL )
virtual

Definition at line 4728 of file s57chart.cpp.

◆ GetPixPoint()

void s57chart::GetPixPoint ( int pixx,
int pixy,
double * plat,
double * plon,
ViewPort * vpt )
virtual

Definition at line 552 of file s57chart.cpp.

◆ GetPointPix() [1/2]

void s57chart::GetPointPix ( ObjRazRules * rzRules,
float rlat,
float rlon,
wxPoint * r )
virtual

Definition at line 534 of file s57chart.cpp.

◆ GetPointPix() [2/2]

void s57chart::GetPointPix ( ObjRazRules * rzRules,
wxPoint2DDouble * en,
wxPoint * r,
int nPoints )
virtual

Definition at line 542 of file s57chart.cpp.

◆ GetThumbData() [1/2]

virtual ThumbData * s57chart::GetThumbData ( )
inlinevirtual

Implements ChartBase.

Definition at line 100 of file s57chart.h.

◆ GetThumbData() [2/2]

ThumbData * s57chart::GetThumbData ( int tnx,
int tny,
float lat,
float lon )
virtual

Implements ChartBase.

Definition at line 674 of file s57chart.cpp.

◆ GetUpdateFileArray()

int s57chart::GetUpdateFileArray ( const wxFileName file000,
wxArrayString * UpFiles,
wxDateTime date000,
wxString edtn000 )
static

Definition at line 3643 of file s57chart.cpp.

◆ GetUsageChar()

char s57chart::GetUsageChar ( )
inline

Definition at line 244 of file s57chart.h.

◆ GetValidCanvasRegion()

void s57chart::GetValidCanvasRegion ( const ViewPort & VPoint,
OCPNRegion * pValidRegion )
virtual

Implements ChartBase.

Definition at line 316 of file s57chart.cpp.

◆ GetValidRegion()

LLRegion s57chart::GetValidRegion ( )
virtual

Implements ChartBase.

Definition at line 343 of file s57chart.cpp.

◆ Init()

InitReturn s57chart::Init ( const wxString & name,
ChartInitFlag flags )
virtual

Implements ChartBase.

Definition at line 2494 of file s57chart.cpp.

◆ InvalidateCache()

void s57chart::InvalidateCache ( )
virtual

Definition at line 2982 of file s57chart.cpp.

◆ IsCacheValid()

virtual bool s57chart::IsCacheValid ( )
inlinevirtual

Definition at line 230 of file s57chart.h.

◆ IsCellOverlayType()

bool s57chart::IsCellOverlayType ( const wxString & pFullPath)
static

Definition at line 2484 of file s57chart.cpp.

◆ IsPointInObjArea()

bool s57chart::IsPointInObjArea ( float lat,
float lon,
float select_radius,
S57Obj * obj )

Definition at line 5082 of file s57chart.cpp.

◆ PostInit()

InitReturn s57chart::PostInit ( ChartInitFlag flags,
ColorScheme cs )

Definition at line 2814 of file s57chart.cpp.

◆ RenderOverlayRegionViewOnDC()

bool s57chart::RenderOverlayRegionViewOnDC ( wxMemoryDC & dc,
const ViewPort & VPoint,
const OCPNRegion & Region )
virtual

Definition at line 1928 of file s57chart.cpp.

◆ RenderOverlayRegionViewOnGL()

bool s57chart::RenderOverlayRegionViewOnGL ( const wxGLContext & glc,
const ViewPort & VPoint,
const OCPNRegion & RectRegion,
const LLRegion & Region )
virtual

Definition at line 1530 of file s57chart.cpp.

◆ RenderRegionViewOnDC()

bool s57chart::RenderRegionViewOnDC ( wxMemoryDC & dc,
const ViewPort & VPoint,
const OCPNRegion & Region )
virtual

Implements ChartBase.

Definition at line 1921 of file s57chart.cpp.

◆ RenderRegionViewOnDCNoText()

bool s57chart::RenderRegionViewOnDCNoText ( wxMemoryDC & dc,
const ViewPort & VPoint,
const OCPNRegion & Region )
virtual

Definition at line 1861 of file s57chart.cpp.

◆ RenderRegionViewOnDCTextOnly()

bool s57chart::RenderRegionViewOnDCTextOnly ( wxMemoryDC & dc,
const ViewPort & VPoint,
const OCPNRegion & Region )
virtual

Definition at line 1874 of file s57chart.cpp.

◆ RenderRegionViewOnGL()

bool s57chart::RenderRegionViewOnGL ( const wxGLContext & glc,
const ViewPort & VPoint,
const OCPNRegion & RectRegion,
const LLRegion & Region )
virtual

Implements ChartBase.

Definition at line 1521 of file s57chart.cpp.

◆ RenderRegionViewOnGLNoText()

bool s57chart::RenderRegionViewOnGLNoText ( const wxGLContext & glc,
const ViewPort & VPoint,
const OCPNRegion & RectRegion,
const LLRegion & Region )
virtual

Definition at line 1539 of file s57chart.cpp.

◆ RenderViewOnDC()

bool s57chart::RenderViewOnDC ( wxMemoryDC & dc,
const ViewPort & VPoint )
virtual

Definition at line 2021 of file s57chart.cpp.

◆ RenderViewOnGLTextOnly()

bool s57chart::RenderViewOnGLTextOnly ( const wxGLContext & glc,
const ViewPort & VPoint )
virtual

Definition at line 1553 of file s57chart.cpp.

◆ SetColorScheme()

void s57chart::SetColorScheme ( ColorScheme cs,
bool bApplyImmediate = true )
virtual

Implements ChartBase.

Definition at line 350 of file s57chart.cpp.

◆ SetFullExtent()

void s57chart::SetFullExtent ( Extent & ext)

Definition at line 723 of file s57chart.cpp.

◆ SetNativeScale()

void s57chart::SetNativeScale ( int s)
inline

Definition at line 109 of file s57chart.h.

◆ SetVPParms()

void s57chart::SetVPParms ( const ViewPort & vpt)
virtual

Definition at line 578 of file s57chart.cpp.

◆ UpdateLUPs()

void s57chart::UpdateLUPs ( s57chart * pOwner)
virtual

Definition at line 4485 of file s57chart.cpp.

◆ UpdateThumbData()

bool s57chart::UpdateThumbData ( double lat,
double lon )
virtual

Implements ChartBase.

Definition at line 687 of file s57chart.cpp.

◆ ValidateAndCountUpdates()

int s57chart::ValidateAndCountUpdates ( const wxFileName file000,
const wxString CopyDir,
wxString & LastUpdateDate,
bool b_copyfiles )

Definition at line 3800 of file s57chart.cpp.

Member Data Documentation

◆ m_b2lineLUPS

bool s57chart::m_b2lineLUPS

Definition at line 248 of file s57chart.h.

◆ m_b2pointLUPS

bool s57chart::m_b2pointLUPS

Definition at line 247 of file s57chart.h.

◆ m_bExtentSet

bool s57chart::m_bExtentSet

Definition at line 217 of file s57chart.h.

◆ m_bLinePrioritySet

bool s57chart::m_bLinePrioritySet

Definition at line 218 of file s57chart.h.

◆ m_easting_vp_center

double s57chart::m_easting_vp_center

Definition at line 221 of file s57chart.h.

◆ m_FullExtent

Extent s57chart::m_FullExtent

Definition at line 216 of file s57chart.h.

◆ m_last_Region

OCPNRegion s57chart::m_last_Region

Definition at line 228 of file s57chart.h.

◆ m_last_vp

ViewPort s57chart::m_last_vp

Definition at line 227 of file s57chart.h.

◆ m_LOD_meters

double s57chart::m_LOD_meters

Definition at line 215 of file s57chart.h.

◆ m_next_safe_cnt

double s57chart::m_next_safe_cnt
protected

Definition at line 261 of file s57chart.h.

◆ m_northing_vp_center

double s57chart::m_northing_vp_center

Definition at line 221 of file s57chart.h.

◆ m_pixx_vp_center

double s57chart::m_pixx_vp_center

Definition at line 222 of file s57chart.h.

◆ m_pixy_vp_center

double s57chart::m_pixy_vp_center

Definition at line 222 of file s57chart.h.

◆ m_RAZBuilt

bool s57chart::m_RAZBuilt

Definition at line 249 of file s57chart.h.

◆ m_this_chart_context

chart_context* s57chart::m_this_chart_context

Definition at line 251 of file s57chart.h.

◆ m_view_scale_ppm

double s57chart::m_view_scale_ppm

Definition at line 223 of file s57chart.h.

◆ pFloatingATONArray

wxArrayPtrVoid* s57chart::pFloatingATONArray

Definition at line 211 of file s57chart.h.

◆ pRigidATONArray

wxArrayPtrVoid* s57chart::pRigidATONArray

Definition at line 212 of file s57chart.h.

◆ razRules

ObjRazRules* s57chart::razRules[PRIO_NUM][LUPNAME_NUM]
protected

Definition at line 260 of file s57chart.h.

◆ ref_lat

double s57chart::ref_lat

Definition at line 214 of file s57chart.h.

◆ ref_lon

double s57chart::ref_lon

Definition at line 214 of file s57chart.h.

◆ vp_transform

sm_parms s57chart::vp_transform
protected

Definition at line 366 of file s57chart.h.


The documentation for this class was generated from the following files:
  • /home/runner/work/main/main/opencpn/gui/include/gui/s57chart.h
  • /home/runner/work/main/main/opencpn/gui/src/s57chart.cpp