131 virtual InitReturn Init(
const wxString &name, ChartInitFlag init_flags) = 0;
133 virtual void Activate(
void) {};
134 virtual void Deactivate(
void) {};
137 virtual ThumbData *GetThumbData(
int tnx,
int tny,
float lat,
float lon) = 0;
139 virtual bool UpdateThumbData(
double lat,
double lon) = 0;
141 virtual double GetNormalScaleMin(
double canvas_scale_factor,
142 bool b_allow_overzoom) = 0;
143 virtual double GetNormalScaleMax(
double canvas_scale_factor,
144 int canvas_width) = 0;
146 virtual bool GetChartExtent(
Extent *pext) = 0;
148 virtual OcpnProjType GetChartProjectionType() {
return m_projection; }
149 virtual wxDateTime GetEditionDate(
void) {
return m_EdDate; }
151 virtual wxString GetPubDate() {
return m_PubYear; }
152 virtual int GetNativeScale() {
return m_Chart_Scale; }
153 wxString GetFullPath()
const {
return m_FullPath; }
154 wxString GetHashKey()
const;
155 wxString GetName() {
return m_Name; }
156 wxString GetDescription() {
return m_Description; }
157 wxString GetID() {
return m_ID; }
158 wxString GetSE() {
return m_SE; }
159 wxString GetDepthUnits() {
return m_DepthUnits; }
160 wxString GetSoundingsDatum() {
return m_SoundingsDatum; }
161 wxString GetDatumString() {
return m_datum_str; }
162 wxString GetExtraInfo() {
return m_ExtraInfo; }
163 double GetChart_Error_Factor() {
return Chart_Error_Factor; }
164 ChartTypeEnum GetChartType() {
return m_ChartType; }
165 ChartFamilyEnum GetChartFamily() {
return m_ChartFamily; }
166 double GetChartSkew() {
return m_Chart_Skew; }
168 virtual ChartDepthUnitType GetDepthUnitType(
void) {
return m_depth_unit_id; }
170 virtual bool IsReadyToRender() {
return bReadyToRender; }
171 virtual bool RenderRegionViewOnDC(wxMemoryDC &dc,
const ViewPort &VPoint,
174 virtual bool RenderRegionViewOnGL(
const wxGLContext &glc,
177 const LLRegion &Region) = 0;
181 virtual void GetValidCanvasRegion(
const ViewPort &VPoint,
183 virtual LLRegion GetValidRegion() = 0;
185 virtual void SetColorScheme(ColorScheme cs,
bool bApplyImmediate =
true) = 0;
187 virtual double GetNearestPreferredScalePPM(
double target_scale_ppm) = 0;
189 virtual int GetCOVREntries() {
return m_nCOVREntries; }
190 virtual int GetCOVRTablePoints(
int iTable) {
191 return m_pCOVRTablePoints[iTable];
193 virtual int GetCOVRTablenPoints(
int iTable) {
194 return m_pCOVRTablePoints[iTable];
196 virtual float *GetCOVRTableHead(
int iTable) {
return m_pCOVRTable[iTable]; }
198 virtual int GetNoCOVREntries() {
return m_nNoCOVREntries; }
199 virtual int GetNoCOVRTablePoints(
int iTable) {
200 return m_pNoCOVRTablePoints[iTable];
202 virtual int GetNoCOVRTablenPoints(
int iTable) {
203 return m_pNoCOVRTablePoints[iTable];
205 virtual float *GetNoCOVRTableHead(
int iTable) {
206 return m_pNoCOVRTable[iTable];
211 ChartTypeEnum m_ChartType;
212 ChartFamilyEnum m_ChartFamily;
216 wxString m_Description;
219 wxString m_SoundingsDatum;
220 wxString m_datum_str;
221 wxString m_ExtraInfo;
223 wxString m_DepthUnits;
225 OcpnProjType m_projection;
226 ChartDepthUnitType m_depth_unit_id;
232 ColorScheme m_global_color_scheme;
235 double Chart_Error_Factor;
237 double m_lon_datum_adjust;
239 double m_lat_datum_adjust;
253 int *m_pCOVRTablePoints;
255 float **m_pCOVRTable;
258 int m_nNoCOVREntries;
259 int *m_pNoCOVRTablePoints;
261 float **m_pNoCOVRTable;
274 virtual InitReturn Init(
const wxString &name, ChartInitFlag init_flags);
277 virtual ThumbData *GetThumbData(
int tnx,
int tny,
float lat,
float lon);
278 virtual ThumbData *GetThumbData() {
return pThumbData; }
279 virtual bool UpdateThumbData(
double lat,
double lon);
281 double GetNormalScaleMin(
double canvas_scale_factor,
bool b_allow_overzoom) {
284 double GetNormalScaleMax(
double canvas_scale_factor,
int canvas_width) {
288 virtual bool GetChartExtent(
Extent *pext);
290 virtual bool RenderRegionViewOnDC(wxMemoryDC &dc,
const ViewPort &VPoint,
293 virtual bool RenderRegionViewOnGL(
const wxGLContext &glc,
296 const LLRegion &Region);
300 virtual void GetValidCanvasRegion(
const ViewPort &VPoint,
302 virtual LLRegion GetValidRegion();
304 virtual void SetColorScheme(ColorScheme cs,
bool bApplyImmediate);
306 virtual double GetNearestPreferredScalePPM(
double target_scale_ppm) {
307 return target_scale_ppm;
311 bool RenderViewOnDC(wxMemoryDC &dc,
const ViewPort &VPoint);