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

Represents a single CM93 chart at a specific scale. More...

#include <cm93.h>

Inheritance diagram for cm93chart:
s57chart ChartBase

Public Member Functions

 cm93chart (int scale_index)
 
InitReturn Init (const wxString &name, ChartInitFlag flags)
 
void ResetSubcellKey ()
 
double GetNormalScaleMin (double canvas_scale_factor, bool b_allow_overzoom)
 
double GetNormalScaleMax (double canvas_scale_factor, int canvas_width)
 
bool AdjustVP (ViewPort &vp_last, ViewPort &vp_proposed)
 
void SetVPParms (const ViewPort &vpt)
 
void GetPointPix (ObjRazRules *rzRules, float northing, float easting, wxPoint *r)
 
void GetPointPix (ObjRazRules *rzRules, wxPoint2DDouble *en, wxPoint *r, int nPoints)
 
void GetPixPoint (int pixx, int pixy, double *plat, double *plon, ViewPort *vpt)
 
void SetCM93Dict (cm93_dictionary *pDict)
 
void SetCM93Prefix (const wxString &prefix)
 
void SetCM93Manager (cm93manager *pManager)
 
bool UpdateCovrSet (ViewPort *vpt)
 
bool IsPointInLoadedM_COVR (double xc, double yc)
 
covr_setGetCoverSet ()
 
LLRegion GetValidRegion ()
 
const wxString & GetLastFileName (void) const
 
std::vector< int > GetVPCellArray (const ViewPort &vpt)
 
void SetUserOffsets (int cell_index, int object_id, int subcell, int xoff, int yoff)
 
wxString GetScaleChar ()
 
wxPoint * GetDrawBuffer (int nSize)
 
- Public Member Functions inherited from s57chart
virtual ThumbDataGetThumbData (int tnx, int tny, float lat, float lon)
 
virtual ThumbDataGetThumbData ()
 
bool UpdateThumbData (double lat, double lon)
 
virtual int GetNativeScale ()
 
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 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 (void)
 
virtual std::unordered_map< unsigned, VC_Element * > & Get_vc_hash (void)
 
virtual void ForceEdgePriorityEvaluate (void)
 
float * GetLineVertexBuffer (void)
 
void ClearRenderedTextCache ()
 
double GetCalculatedSafetyContour (void)
 
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 (void)
 
virtual void BuildDepthContourArray (void)
 
int ValidateAndCountUpdates (const wxFileName file000, const wxString CopyDir, wxString &LastUpdateDate, bool b_copyfiles)
 
wxString GetISDT (void)
 
InitReturn PostInit (ChartInitFlag flags, ColorScheme cs)
 
char GetUsageChar (void)
 
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)
 

Public Attributes

Array_Of_M_COVR_Desc_Ptr m_pcovr_array_loaded
 
OCPNRegion m_render_region
 
- Public Attributes inherited from s57chart
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
 

Additional Inherited Members

- Static Public Member Functions inherited from s57chart
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)
 
- Protected Member Functions inherited from s57chart
void AssembleLineGeometry (void)
 
- Protected Attributes inherited from s57chart
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
 
ThumbDatapThumbData
 
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 a single CM93 chart at a specific scale.

CM93 charts are a proprietary vector chart format developed by C-Map. Unlike S57 charts, CM93 charts use a different data structure and cover the entire world in a seamless database. Key differences from S57 include:

  • Multi-scale coverage: CM93 data is organized into several discrete zoom levels.
  • Proprietary encoding: CM93 uses its own object and attribute encoding, requiring translation to S57 objects.
  • Global coverage: A single CM93 database covers the entire world, eliminating chart boundaries.
  • Efficient storage: Data is highly compressed and organized in a cell-based structure.

Definition at line 308 of file cm93.h.

Constructor & Destructor Documentation

◆ cm93chart()

cm93chart::cm93chart ( )

Definition at line 1736 of file cm93.cpp.

◆ ~cm93chart()

cm93chart::~cm93chart ( )

Definition at line 1770 of file cm93.cpp.

Member Function Documentation

◆ AdjustVP()

bool cm93chart::AdjustVP ( ViewPort vp_last,
ViewPort vp_proposed 
)
virtual

Reimplemented from s57chart.

Definition at line 1932 of file cm93.cpp.

◆ GetCoverSet()

covr_set * cm93chart::GetCoverSet ( )
inline

Definition at line 336 of file cm93.h.

◆ GetDrawBuffer()

wxPoint * cm93chart::GetDrawBuffer ( int  nSize)

Definition at line 4416 of file cm93.cpp.

◆ GetLastFileName()

const wxString & cm93chart::GetLastFileName ( void  ) const
inline

Definition at line 339 of file cm93.h.

◆ GetNormalScaleMax()

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

Reimplemented from s57chart.

Definition at line 1821 of file cm93.cpp.

◆ GetNormalScaleMin()

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

Reimplemented from s57chart.

Definition at line 1797 of file cm93.cpp.

◆ GetPixPoint()

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

Reimplemented from s57chart.

Definition at line 1903 of file cm93.cpp.

◆ GetPointPix() [1/2]

void cm93chart::GetPointPix ( ObjRazRules *  rzRules,
float  northing,
float  easting,
wxPoint *  r 
)
virtual

Reimplemented from s57chart.

Definition at line 1851 of file cm93.cpp.

◆ GetPointPix() [2/2]

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

Reimplemented from s57chart.

Definition at line 1857 of file cm93.cpp.

◆ GetScaleChar()

wxString cm93chart::GetScaleChar ( )
inline

Definition at line 347 of file cm93.h.

◆ GetValidRegion()

LLRegion cm93chart::GetValidRegion ( )
virtual

Reimplemented from s57chart.

Definition at line 4216 of file cm93.cpp.

◆ GetVPCellArray()

std::vector< int > cm93chart::GetVPCellArray ( const ViewPort vpt)

Definition at line 2106 of file cm93.cpp.

◆ Init()

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

Reimplemented from s57chart.

Definition at line 2411 of file cm93.cpp.

◆ IsPointInLoadedM_COVR()

bool cm93chart::IsPointInLoadedM_COVR ( double  xc,
double  yc 
)

Definition at line 4202 of file cm93.cpp.

◆ ResetSubcellKey()

void cm93chart::ResetSubcellKey ( )
inline

Definition at line 316 of file cm93.h.

◆ SetCM93Dict()

void cm93chart::SetCM93Dict ( cm93_dictionary pDict)
inline

Definition at line 330 of file cm93.h.

◆ SetCM93Manager()

void cm93chart::SetCM93Manager ( cm93manager pManager)
inline

Definition at line 332 of file cm93.h.

◆ SetCM93Prefix()

void cm93chart::SetCM93Prefix ( const wxString &  prefix)
inline

Definition at line 331 of file cm93.h.

◆ SetUserOffsets()

void cm93chart::SetUserOffsets ( int  cell_index,
int  object_id,
int  subcell,
int  xoff,
int  yoff 
)

Definition at line 4406 of file cm93.cpp.

◆ SetVPParms()

void cm93chart::SetVPParms ( const ViewPort vpt)
virtual

Reimplemented from s57chart.

Definition at line 1983 of file cm93.cpp.

◆ UpdateCovrSet()

bool cm93chart::UpdateCovrSet ( ViewPort vpt)

Definition at line 4165 of file cm93.cpp.

Member Data Documentation

◆ m_pcovr_array_loaded

Array_Of_M_COVR_Desc_Ptr cm93chart::m_pcovr_array_loaded

Definition at line 343 of file cm93.h.

◆ m_render_region

OCPNRegion cm93chart::m_render_region

Definition at line 351 of file cm93.h.


The documentation for this class was generated from the following files: