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

ChartCanvas - Main chart display and interaction component. More...

#include <chcanv.h>

Inheritance diagram for ChartCanvas:

Public Member Functions

 ChartCanvas (wxFrame *frame, int canvasIndex, wxWindow *nmea_log)
 
void SetupGlCanvas ()
 
void OnKeyDown (wxKeyEvent &event)
 
void OnKeyUp (wxKeyEvent &event)
 
void OnKeyChar (wxKeyEvent &event)
 
void OnPaint (wxPaintEvent &event)
 
void PaintCleanup ()
 
void Scroll (int dx, int dy)
 
void OnToolLeftClick (wxCommandEvent &event)
 
bool MouseEventOverlayWindows (wxMouseEvent &event)
 
bool MouseEventChartBar (wxMouseEvent &event)
 
bool MouseEventMUIBar (wxMouseEvent &event)
 
bool MouseEventToolbar (wxMouseEvent &event)
 
bool MouseEventIENCBar (wxMouseEvent &event)
 
bool MouseEventSetup (wxMouseEvent &event, bool b_handle_dclick=true)
 
bool MouseEventProcessObjects (wxMouseEvent &event)
 
bool MouseEventProcessCanvas (wxMouseEvent &event)
 Processes mouse events for core chart panning and zooming operations.
 
void SetCanvasCursor (wxMouseEvent &event)
 
void OnKillFocus (wxFocusEvent &WXUNUSED(event))
 
void OnSetFocus (wxFocusEvent &WXUNUSED(event))
 
void PopupMenuHandler (wxCommandEvent &event)
 
bool IsPrimaryCanvas ()
 
bool SetUserOwnship ()
 
double GetCanvasRangeMeters ()
 
void SetCanvasRangeMeters (double range)
 
void EnablePaint (bool b_enable)
 
virtual bool SetCursor (const wxCursor &c)
 
virtual void Refresh (bool eraseBackground=true, const wxRect *rect=(const wxRect *) NULL)
 
virtual void Update ()
 
void LostMouseCapture (wxMouseCaptureLostEvent &event)
 
void CancelMouseRoute ()
 
void SetDisplaySizeMM (double size)
 Set the width of the screen in millimeters.
 
double GetDisplaySizeMM ()
 Get the width of the screen in millimeters.
 
bool SetVPScale (double sc, bool b_refresh=true)
 Sets the viewport scale while maintaining the center point.
 
bool SetVPProjection (int projection)
 
bool SetViewPoint (double lat, double lon)
 Set the viewport center point.
 
bool SetViewPointByCorners (double latSW, double lonSW, double latNE, double lonNE)
 
bool SetViewPoint (double lat, double lon, double scale_ppm, double skew, double rotation, int projection=0, bool b_adjust=true, bool b_refresh=true)
 Set the viewport center point, scale, skew, rotation and projection.
 
void ReloadVP (bool b_adjust=true)
 
void LoadVP (ViewPort &vp, bool b_adjust=true)
 
ChartStackGetpCurrentStack ()
 
void SetGroupIndex (int index, bool autoswitch=false)
 
bool CheckGroup (int igroup)
 
void canvasRefreshGroupIndex (void)
 
void canvasChartsRefresh (int dbi_hint)
 
void CheckGroupValid (bool showMessage=true, bool switchGroup0=true)
 
void UpdateCanvasS52PLIBConfig ()
 
void TriggerDeferredFocus ()
 
void OnDeferredFocusTimerEvent (wxTimerEvent &event)
 
void OnRouteFinishTimerEvent (wxTimerEvent &event)
 
void ClearS52PLIBStateHash ()
 
void SetupCanvasQuiltMode (void)
 
void ApplyCanvasConfig (canvasConfig *pcc)
 
bool SetVPRotation (double angle)
 
double GetVPRotation (void)
 
double GetVPSkew (void)
 
double GetVPTilt (void)
 
void ClearbFollow (void)
 
void SetbFollow (void)
 
void TogglebFollow (void)
 
bool GetbFollow ()
 
void JumpToPosition (double lat, double lon, double scale)
 
void SetFirstAuto (bool b_auto)
 
void GetDoubleCanvasPointPix (double rlat, double rlon, wxPoint2DDouble *r)
 Convert latitude/longitude to canvas pixel coordinates (physical pixels) with double precision.
 
void GetDoubleCanvasPointPixVP (ViewPort &vp, double rlat, double rlon, wxPoint2DDouble *r)
 Convert latitude/longitude to canvas pixel coordinates (physical pixels) with double precision, using specified viewport.
 
bool GetCanvasPointPix (double rlat, double rlon, wxPoint *r)
 Convert latitude/longitude to canvas pixel coordinates (physical pixels) rounded to nearest integer.
 
bool GetCanvasPointPixVP (ViewPort &vp, double rlat, double rlon, wxPoint *r)
 Convert latitude/longitude to canvas pixel coordinates rounded to nearest integer using specified viewport.
 
void GetCanvasPixPoint (double x, double y, double &lat, double &lon)
 Convert canvas pixel coordinates (physical pixels) to latitude/longitude.
 
void WarpPointerDeferred (int x, int y)
 
void UpdateShips ()
 
void UpdateAIS ()
 
void UpdateAlerts ()
 
void ToggleCPAWarn ()
 
bool IsMeasureActive ()
 
wxBitmap & GetTideBitmap ()
 
int GetUpMode ()
 
bool GetLookahead ()
 
void UnlockQuilt ()
 
void SetQuiltMode (bool b_quilt)
 
bool GetQuiltMode (void)
 
std::vector< int > GetQuiltIndexArray (void)
 
bool IsQuiltDelta (void)
 
void SetQuiltChartHiLiteIndex (int dbIndex)
 
void SetQuiltChartHiLiteIndexArray (std::vector< int > hilite_array)
 
void ClearQuiltChartHiLiteIndexArray ()
 
int GetQuiltReferenceChartIndex (void)
 
double GetBestStartScale (int dbi_hint, const ViewPort &vp)
 
void ConfigureChartBar ()
 
int GetNextContextMenuId ()
 
TCWingetTCWin ()
 
bool StartTimedMovement (bool stoptimer=true)
 
void DoTimedMovement ()
 
void DoMovement (long dt)
 
void StopMovement ()
 
void StartTimedMovementVP (double target_lat, double target_lon, int nstep)
 
void DoTimedMovementVP ()
 
void StopMovementVP ()
 
void StartTimedMovementTarget ()
 
void DoTimedMovementTarget ()
 
void StopMovementTarget ()
 
void SetColorScheme (ColorScheme cs)
 
ColorScheme GetColorScheme ()
 
void CanvasApplyLocale ()
 
void RebuildCursors ()
 
int GetCanvasWidth ()
 
int GetCanvasHeight ()
 
float GetVPScale ()
 Return the ViewPort scale factor, in physical pixels per meter.
 
float GetVPChartScale ()
 Return the ViewPort chart scale denominator (e.g., 50000 for a 1:50000 scale).
 
double GetCanvasScaleFactor ()
 Return the number of logical pixels per meter for the screen.
 
double GetCanvasTrueScale ()
 Return the physical pixels per meter at chart center, accounting for latitude distortion.
 
double GetAbsoluteMinScalePpm ()
 
ViewPortGetpVP ()
 
void SetVP (ViewPort &)
 
ChartBaseGetChartAtCursor ()
 
ChartBaseGetOverlayChartAtCursor ()
 
PianoGetPiano ()
 
int GetPianoHeight ()
 
bool isRouteEditing (void)
 
bool isMarkEditing (void)
 
GSHHSChartGetWorldBackgroundChart ()
 
void ResetWorldBackgroundChart ()
 
void SetbTCUpdate (bool f)
 
bool GetbTCUpdate ()
 
void SetbShowCurrent (bool f)
 
bool GetbShowCurrent ()
 
void SetbShowTide (bool f)
 
bool GetbShowTide ()
 
void SetShowVisibleSectors (bool val)
 
bool GetShowVisibleSectors ()
 
double GetPixPerMM ()
 Get the number of logical pixels per millimeter on the screen.
 
void SetOwnShipState (ownship_state_t state)
 
void SetCursorStatus (double cursor_lat, double cursor_lon)
 
void GetCursorLatLon (double *lat, double *lon)
 
bool PanCanvas (double dx, double dy)
 Pans (moves) the canvas by the specified physical pixels in x and y directions.
 
void StopAutoPan (void)
 
void ZoomCanvas (double factor, bool can_zoom_to_cursor=true, bool stoptimer=true)
 Perform a smooth zoom operation on the chart canvas by the specified factor.
 
void ZoomCanvasSimple (double factor)
 Perform an immediate zoom operation without smooth transitions.
 
void DoZoomCanvas (double factor, bool can_zoom_to_cursor=true)
 Internal function that implements the actual zoom operation.
 
void RotateCanvas (double dir)
 
void DoRotateCanvas (double rotation)
 
void DoTiltCanvas (double tilt)
 
void ShowAISTargetList (void)
 
void ShowGoToPosition (void)
 
void HideGlobalToolbar ()
 
void ShowGlobalToolbar ()
 
bool GetShowDepthUnits ()
 
void SetShowDepthUnits (bool show)
 
bool GetShowGrid ()
 
void SetShowGrid (bool show)
 
bool GetShowOutlines ()
 
void SetShowOutlines (bool show)
 
bool GetShowChartbar ()
 
wxRect GetMUIBarRect ()
 
void SetMUIBarPosition ()
 
void DestroyMuiBar ()
 
void CreateMUIBar ()
 
void ToggleChartOutlines (void)
 
void ToggleCanvasQuiltMode (void)
 
wxString GetScaleText ()
 
double GetScaleValue ()
 
bool GetShowAIS ()
 
void SetShowAIS (bool show)
 
bool GetAttenAIS ()
 
void SetAttenAIS (bool show)
 
void SetShowFocusBar (bool enable)
 
bool GetShowFocusBar ()
 
MUIBarGetMUIBar ()
 
void SetAlertString (wxString str)
 
wxString GetAlertString ()
 
bool GetShowENCText ()
 
void SetShowENCText (bool show)
 
bool GetShowENCDepth ()
 
void SetShowENCDepth (bool show)
 
bool GetShowENCLightDesc ()
 
void SetShowENCLightDesc (bool show)
 
bool GetShowENCBuoyLabels ()
 
void SetShowENCBuoyLabels (bool show)
 
bool GetShowENCLights ()
 
void SetShowENCLights (bool show)
 
int GetENCDisplayCategory ()
 
void SetENCDisplayCategory (int category)
 
bool GetShowENCAnchor ()
 
void SetShowENCAnchor (bool show)
 
bool GetShowENCDataQual ()
 
void SetShowENCDataQual (bool show)
 
void JaggyCircle (ocpnDC &dc, wxPen pen, int x, int y, int radius)
 
void ShowTides (bool bShow)
 
void ShowCurrents (bool bShow)
 
void SetUpMode (int mode)
 
void ToggleLookahead ()
 
void SetShowGPS (bool show)
 
void UpdateFollowButtonState (void)
 
void InvalidateGL ()
 
bool IsTileOverlayIndexInYesShow (int index)
 
bool IsTileOverlayIndexInNoShow (int index)
 
void AddTileOverlayIndexToNoShow (int index)
 
ViewPortGetVP ()
 
wxString FindValidUploadPort ()
 
ChartBaseGetLargestScaleQuiltChart ()
 
ChartBaseGetFirstQuiltChart ()
 
ChartBaseGetNextQuiltChart ()
 
int GetQuiltChartCount ()
 
void InvalidateAllQuiltPatchs (void)
 
void SetQuiltRefChart (int dbIndex)
 
std::vector< int > GetQuiltCandidatedbIndexArray (bool flag1=true, bool flag2=true)
 
std::vector< int > & GetQuiltExtendedStackdbIndexArray ()
 
std::vector< int > & GetQuiltFullScreendbIndexArray ()
 
std::vector< int > GetQuiltEclipsedStackdbIndexArray ()
 
int GetQuiltRefChartdbIndex (void)
 
void InvalidateQuilt (void)
 
double GetQuiltMaxErrorFactor ()
 
bool IsChartQuiltableRef (int db_index)
 
bool IsChartLargeEnoughToRender (ChartBase *chart, ViewPort &vp)
 
int GetCanvasChartNativeScale ()
 
int FindClosestCanvasChartdbIndex (int scale)
 
void UpdateCanvasOnGroupChange (void)
 
void ShowObjectQueryWindow (int x, int y, float zlat, float zlon)
 
void ShowMarkPropertiesDialog (RoutePoint *markPoint)
 
void ShowRoutePropertiesDialog (wxString title, Route *selected)
 
void ShowTrackPropertiesDialog (Track *selected)
 
void DrawTCWindow (int x, int y, void *pIDX)
 
void UpdateGPSCompassStatusBox (bool b_force_new)
 
ocpnCompassGetCompass ()
 
wxColour GetFogColor ()
 
void ShowChartInfoWindow (int x, int dbIndex)
 
void HideChartInfoWindow (void)
 
void ShowCompositeInfoWindow (int x, int n_charts, int scale, const std::vector< int > &index_vector)
 
void StartMeasureRoute ()
 
void CancelMeasureRoute ()
 
bool DoCanvasUpdate (void)
 
void SelectQuiltRefdbChart (int db_index, bool b_autoscale=true)
 
void SelectQuiltRefChart (int selected_index)
 
double GetBestVPScale (ChartBase *pchart)
 
void selectCanvasChartDisplay (int type, int family)
 
void RemoveChartFromQuilt (int dbIndex)
 
void HandlePianoClick (int selected_index, const std::vector< int > &selected_dbIndex_array)
 
void HandlePianoRClick (int x, int y, int selected_index, const std::vector< int > &selected_dbIndex_array)
 
void HandlePianoRollover (int selected_index, const std::vector< int > &selected_dbIndex_array, int n_charts, int scale)
 
void ClearPianoRollover ()
 
void UpdateCanvasControlBar (void)
 
void FormatPianoKeys (void)
 
void PianoPopupMenu (int x, int y, int selected_index, const std::vector< int > &selected_dbIndex_array)
 
void OnPianoMenuDisableChart (wxCommandEvent &event)
 
void OnPianoMenuEnableChart (wxCommandEvent &event)
 
bool IsPianoContextMenuActive ()
 
bool DoCanvasCOGSet (void)
 
void ApplyGlobalSettings ()
 
void SetShowGPSCompassWindow (bool bshow)
 
bool GetShowGPSCompassWindow ()
 
void FreezePiano ()
 
void ThawPiano ()
 
void StartChartDragInertia ()
 
void DrawBlinkObjects (void)
 
void StartRoute (void)
 
void FinishRoute (void)
 
bool CheckEdgePan (int x, int y, bool bdragging, int margin, int delta)
 
int GetMinAvailableGshhgQuality ()
 
int GetMaxAvailableGshhgQuality ()
 
RouteGetSelectedRoute () const
 
TrackGetSelectedTrack () const
 
RoutePointGetSelectedRoutePoint () const
 
void SetAISCanvasDisplayStyle (int StyleIndx)
 
void TouchAISToolActive (void)
 
void UpdateAISTBTool (void)
 
void SelectChartFromStack (int index, bool bDir=false, ChartTypeEnum New_Type=CHART_TYPE_DONTCARE, ChartFamilyEnum New_Family=CHART_FAMILY_DONTCARE)
 
void SelectdbChart (int dbindex)
 
void DoCanvasStackDelta (int direction)
 
void ProcessNewGUIScale ()
 
wxRect GetScaleBarRect ()
 
void RenderAlertMessage (wxDC &dc, const ViewPort &vp)
 
std::vector< int > GetQuiltNoshowIindexArray ()
 
double GetDisplayScale ()
 Get the ratio of physical to logical pixel for the display.
 
void ResetOwnshipOffset ()
 

Public Attributes

Undoundo
 
int m_canvasIndex
 
int m_groupIndex
 
Routem_pMouseRoute
 
bool m_bMeasure_Active
 
ChartBasem_singleChart
 
Quiltm_pQuilt
 
wxString m_active_upload_port
 
bool m_bFollow
 
wxCursor * pCursorPencil
 
wxCursor * pCursorArrow
 
wxCursor * pCursorCross
 
wxCursor * pPlugIn_Cursor
 
TCWinpCwin
 
wxBitmap * pscratch_bm
 
bool m_brepaint_piano
 
double m_cursor_lon
 The longitude in degrees corresponding to the most recently processed cursor position.
 
double m_cursor_lat
 The latitude in degrees corresponding to the most recently processed cursor position.
 
wxPoint r_rband
 
double m_prev_rlat
 
double m_prev_rlon
 
RoutePointm_prev_pMousePoint
 
bool m_bShowNavobjects
 
int m_routeState
 
int m_upMode
 
bool m_bLookAhead
 
bool m_FinishRouteOnKillFocus
 
bool m_bMeasure_DistCircle
 
bool m_bAppendingRoute
 
int m_nMeasureState
 
Routem_pMeasureRoute
 
MyFrameparent_frame
 
CanvasMenuHandlerm_canvasMenu
 
bool m_b_paint_enable
 
std::vector< int > m_tile_noshow_index_array
 
std::vector< int > m_tile_yesshow_index_array
 
std::vector< int > m_quilt_noshow_index_array
 

Friends

class glChartCanvas
 

Detailed Description

ChartCanvas - Main chart display and interaction component.

Manages the visualization of nautical charts and all chart-related user interactions. This class integrates geographic data, user interface elements, and navigation tools into a comprehensive chart viewing experience. It handles everything from chart loading and rendering to user gestures, route planning, and navigation aids.

ChartCanvas uses ViewPort internally to handle the mathematical transformations between geographic and screen coordinates. While ViewPort focuses on the projection math, ChartCanvas manages the actual rendering, user interaction, and application logic.

As a wxWindow subclass, it responds to paint, mouse, keyboard, and other window events, translating them into appropriate chart operations like panning, zooming, and object manipulation.

Definition at line 151 of file chcanv.h.

Constructor & Destructor Documentation

◆ ChartCanvas()

ChartCanvas::ChartCanvas ( wxFrame * frame,
int canvasIndex,
wxWindow * nmea_log )

Definition at line 428 of file chcanv.cpp.

◆ ~ChartCanvas()

ChartCanvas::~ChartCanvas ( )

Definition at line 860 of file chcanv.cpp.

Member Function Documentation

◆ AddTileOverlayIndexToNoShow()

void ChartCanvas::AddTileOverlayIndexToNoShow ( int index)

Definition at line 13977 of file chcanv.cpp.

◆ ApplyCanvasConfig()

void ChartCanvas::ApplyCanvasConfig ( canvasConfig * pcc)

Definition at line 1217 of file chcanv.cpp.

◆ ApplyGlobalSettings()

void ChartCanvas::ApplyGlobalSettings ( )

Definition at line 1267 of file chcanv.cpp.

◆ CancelMeasureRoute()

void ChartCanvas::CancelMeasureRoute ( )

Definition at line 2649 of file chcanv.cpp.

◆ CancelMouseRoute()

void ChartCanvas::CancelMouseRoute ( )

Definition at line 12215 of file chcanv.cpp.

◆ CanvasApplyLocale()

void ChartCanvas::CanvasApplyLocale ( )

Definition at line 1012 of file chcanv.cpp.

◆ canvasChartsRefresh()

void ChartCanvas::canvasChartsRefresh ( int dbi_hint)

Definition at line 1501 of file chcanv.cpp.

◆ canvasRefreshGroupIndex()

void ChartCanvas::canvasRefreshGroupIndex ( void )

Definition at line 1377 of file chcanv.cpp.

◆ CheckEdgePan()

bool ChartCanvas::CheckEdgePan ( int x,
int y,
bool bdragging,
int margin,
int delta )

Definition at line 7320 of file chcanv.cpp.

◆ CheckGroup()

bool ChartCanvas::CheckGroup ( int igroup)

Definition at line 1467 of file chcanv.cpp.

◆ CheckGroupValid()

void ChartCanvas::CheckGroupValid ( bool showMessage = true,
bool switchGroup0 = true )

Definition at line 1276 of file chcanv.cpp.

◆ ClearbFollow()

void ChartCanvas::ClearbFollow ( void )

Definition at line 4876 of file chcanv.cpp.

◆ ClearPianoRollover()

void ChartCanvas::ClearPianoRollover ( )

Definition at line 14198 of file chcanv.cpp.

◆ ClearQuiltChartHiLiteIndexArray()

void ChartCanvas::ClearQuiltChartHiLiteIndexArray ( )

Definition at line 2591 of file chcanv.cpp.

◆ ClearS52PLIBStateHash()

void ChartCanvas::ClearS52PLIBStateHash ( )
inline

Definition at line 296 of file chcanv.h.

◆ ConfigureChartBar()

void ChartCanvas::ConfigureChartBar ( )

Definition at line 1309 of file chcanv.cpp.

◆ CreateMUIBar()

void ChartCanvas::CreateMUIBar ( )

Definition at line 7099 of file chcanv.cpp.

◆ DestroyMuiBar()

void ChartCanvas::DestroyMuiBar ( )

Definition at line 7148 of file chcanv.cpp.

◆ DoCanvasCOGSet()

bool ChartCanvas::DoCanvasCOGSet ( void )

Definition at line 3463 of file chcanv.cpp.

◆ DoCanvasStackDelta()

void ChartCanvas::DoCanvasStackDelta ( int direction)

Definition at line 13562 of file chcanv.cpp.

◆ DoCanvasUpdate()

bool ChartCanvas::DoCanvasUpdate ( void )

Definition at line 1571 of file chcanv.cpp.

◆ DoMovement()

void ChartCanvas::DoMovement ( long dt)

Definition at line 3680 of file chcanv.cpp.

◆ DoRotateCanvas()

void ChartCanvas::DoRotateCanvas ( double rotation)

Definition at line 4849 of file chcanv.cpp.

◆ DoTiltCanvas()

void ChartCanvas::DoTiltCanvas ( double tilt)

Definition at line 4859 of file chcanv.cpp.

◆ DoTimedMovement()

void ChartCanvas::DoTimedMovement ( )

Definition at line 3662 of file chcanv.cpp.

◆ DoTimedMovementTarget()

void ChartCanvas::DoTimedMovementTarget ( )

Definition at line 3658 of file chcanv.cpp.

◆ DoTimedMovementVP()

void ChartCanvas::DoTimedMovementVP ( )

Definition at line 3618 of file chcanv.cpp.

◆ DoZoomCanvas()

void ChartCanvas::DoZoomCanvas ( double factor,
bool can_zoom_to_cursor = true )

Internal function that implements the actual zoom operation.

This function handles the core zoom functionality including scale calculations, chart selection and viewport updates.

Parameters
factorThe zoom factor to apply:
  • factor > 1: Zoom in, e.g. 2.0 makes objects twice as large
  • factor < 1: Zoom out, e.g. 0.5 makes objects half as large
can_zoom_to_cursorIf true, zoom operation will be centered on cursor position. If false, zoom operation centers on viewport center.

Definition at line 4669 of file chcanv.cpp.

◆ DrawBlinkObjects()

void ChartCanvas::DrawBlinkObjects ( void )

Definition at line 12784 of file chcanv.cpp.

◆ DrawTCWindow()

void ChartCanvas::DrawTCWindow ( int x,
int y,
void * pIDX )

Definition at line 13410 of file chcanv.cpp.

◆ EnablePaint()

void ChartCanvas::EnablePaint ( bool b_enable)

Definition at line 2540 of file chcanv.cpp.

◆ FindClosestCanvasChartdbIndex()

int ChartCanvas::FindClosestCanvasChartdbIndex ( int scale)

Definition at line 2506 of file chcanv.cpp.

◆ FindValidUploadPort()

wxString ChartCanvas::FindValidUploadPort ( )

Definition at line 13454 of file chcanv.cpp.

◆ FinishRoute()

void ChartCanvas::FinishRoute ( void )

Definition at line 10779 of file chcanv.cpp.

◆ FormatPianoKeys()

void ChartCanvas::FormatPianoKeys ( void )

Definition at line 14315 of file chcanv.cpp.

◆ FreezePiano()

void ChartCanvas::FreezePiano ( )
inline

Definition at line 701 of file chcanv.h.

◆ GetAbsoluteMinScalePpm()

double ChartCanvas::GetAbsoluteMinScalePpm ( )
inline

Definition at line 467 of file chcanv.h.

◆ GetAlertString()

wxString ChartCanvas::GetAlertString ( )
inline

Definition at line 586 of file chcanv.h.

◆ GetAttenAIS()

bool ChartCanvas::GetAttenAIS ( )
inline

Definition at line 580 of file chcanv.h.

◆ GetBestStartScale()

double ChartCanvas::GetBestStartScale ( int dbi_hint,
const ViewPort & vp )

Definition at line 5227 of file chcanv.cpp.

◆ GetBestVPScale()

double ChartCanvas::GetBestVPScale ( ChartBase * pchart)

Definition at line 2052 of file chcanv.cpp.

◆ GetbFollow()

bool ChartCanvas::GetbFollow ( )
inline

Definition at line 308 of file chcanv.h.

◆ GetbShowCurrent()

bool ChartCanvas::GetbShowCurrent ( )
inline

Definition at line 486 of file chcanv.h.

◆ GetbShowTide()

bool ChartCanvas::GetbShowTide ( )
inline

Definition at line 488 of file chcanv.h.

◆ GetbTCUpdate()

bool ChartCanvas::GetbTCUpdate ( )
inline

Definition at line 484 of file chcanv.h.

◆ GetCanvasChartNativeScale()

int ChartCanvas::GetCanvasChartNativeScale ( )

Definition at line 2475 of file chcanv.cpp.

◆ GetCanvasHeight()

int ChartCanvas::GetCanvasHeight ( )
inline

Definition at line 448 of file chcanv.h.

◆ GetCanvasPixPoint()

void ChartCanvas::GetCanvasPixPoint ( double x,
double y,
double & lat,
double & lon )

Convert canvas pixel coordinates (physical pixels) to latitude/longitude.

Uses BSB chart geo-referencing for compatible raster charts when conditions permit, otherwise falls back to viewport projection estimation.

Parameters
xX-coordinate in physical pixels
yY-coordinate in physical pixels
lat[out] Reference to receive the resulting latitude at the given (x, y) coordinates.
lon[out] Reference to receive the resulting longitude at the given (x, y) coordinates.
See also
ViewPort::GetLLFromPix() for the underlying coordinate transformation.

Definition at line 4588 of file chcanv.cpp.

◆ GetCanvasPointPix()

bool ChartCanvas::GetCanvasPointPix ( double rlat,
double rlon,
wxPoint * r )

Convert latitude/longitude to canvas pixel coordinates (physical pixels) rounded to nearest integer.

Uses GetDoubleCanvasPointPixVP internally and rounds results using wxRound (std::lround). This means 3.7 becomes 4, -3.7 becomes -4.

Parameters
rlatLatitude in degrees
rlonLongitude in degrees
r[out] Pointer to wxPoint to receive the canvas pixel coordinates in physical pixels, as rounded integer values.
Returns
true if conversion successful, false if coordinates are invalid or out of bounds.
See also
ViewPort::GetPixFromLL() for the underlying coordinate transformation.

Definition at line 4563 of file chcanv.cpp.

◆ GetCanvasPointPixVP()

bool ChartCanvas::GetCanvasPointPixVP ( ViewPort & vp,
double rlat,
double rlon,
wxPoint * r )

Convert latitude/longitude to canvas pixel coordinates rounded to nearest integer using specified viewport.

Uses GetDoubleCanvasPointPixVP internally and rounds results using wxRound (std::lround). This means 3.7 becomes 4, -3.7 becomes -4.

Parameters
vpViewPort containing projection parameters and canvas settings
rlatLatitude in degrees
rlonLongitude in degrees
r[out] Pointer to wxPoint to receive the canvas pixel coordinates in physical pixels, as rounded integer values.
Returns
true if conversion successful, false if:
  • Coordinates would be on other side of the world (resulting in NaN)
  • Resulting pixel values would be too large (>1e6) In these cases, r is set to INVALID_COORD
See also
ViewPort::GetPixFromLL() for the underlying coordinate transformation

Definition at line 4567 of file chcanv.cpp.

◆ GetCanvasRangeMeters()

double ChartCanvas::GetCanvasRangeMeters ( )

Definition at line 2266 of file chcanv.cpp.

◆ GetCanvasScaleFactor()

double ChartCanvas::GetCanvasScaleFactor ( )
inline

Return the number of logical pixels per meter for the screen.

Todo
The name of this function is misleading. It should be renamed to GetCanvasLogicalPixelsPerMeter() or similar. It looks like some callers are expecting the physical pixels per meter, which is incorrect.

Definition at line 461 of file chcanv.h.

◆ GetCanvasTrueScale()

double ChartCanvas::GetCanvasTrueScale ( )
inline

Return the physical pixels per meter at chart center, accounting for latitude distortion.

Definition at line 466 of file chcanv.h.

◆ GetCanvasWidth()

int ChartCanvas::GetCanvasWidth ( )
inline

Definition at line 447 of file chcanv.h.

◆ GetChartAtCursor()

ChartBase * ChartCanvas::GetChartAtCursor ( )

Definition at line 2485 of file chcanv.cpp.

◆ GetColorScheme()

ColorScheme ChartCanvas::GetColorScheme ( )
inline

Definition at line 441 of file chcanv.h.

◆ GetCompass()

ocpnCompass * ChartCanvas::GetCompass ( )
inline

Definition at line 662 of file chcanv.h.

◆ GetCursorLatLon()

void ChartCanvas::GetCursorLatLon ( double * lat,
double * lon )

Definition at line 4501 of file chcanv.cpp.

◆ GetDisplayScale()

double ChartCanvas::GetDisplayScale ( )
inline

Get the ratio of physical to logical pixel for the display.

On standard displays, one logical pixel equals one physical pixel, so this value is 1.0. On high-DPI/Retina displays, one logical pixel may equal multiple physical pixels:

  • MacBook Pro Retina: 2.0 (2x2 physical pixels per logical pixel)
  • Other HiDPI displays: May be 1.5, 1.75, etc.

Definition at line 824 of file chcanv.h.

◆ GetDisplaySizeMM()

double ChartCanvas::GetDisplaySizeMM ( )
inline

Get the width of the screen in millimeters.

Definition at line 237 of file chcanv.h.

◆ GetDoubleCanvasPointPix()

void ChartCanvas::GetDoubleCanvasPointPix ( double rlat,
double rlon,
wxPoint2DDouble * r )

Convert latitude/longitude to canvas pixel coordinates (physical pixels) with double precision.

Returns unrounded floating point pixel coordinates. When used with drawing functions that take integer coordinates, values will be truncated.

Parameters
rlatLatitude in degrees
rlonLongitude in degrees
r[out] Pointer to wxPoint2DDouble to receive the canvas pixel coordinates as unrounded floating point values

Definition at line 4508 of file chcanv.cpp.

◆ GetDoubleCanvasPointPixVP()

void ChartCanvas::GetDoubleCanvasPointPixVP ( ViewPort & vp,
double rlat,
double rlon,
wxPoint2DDouble * r )

Convert latitude/longitude to canvas pixel coordinates (physical pixels) with double precision, using specified viewport.

Returns unrounded floating point pixel coordinates. When used with drawing functions that take integer coordinates, values will be truncated.

Parameters
vpViewPort containing projection parameters and canvas settings
rlatLatitude in degrees
rlonLongitude in degrees
r[out] Pointer to wxPoint2DDouble to receive the canvas pixel coordinates as unrounded floating point values

Definition at line 4513 of file chcanv.cpp.

◆ GetENCDisplayCategory()

int ChartCanvas::GetENCDisplayCategory ( )
inline

Definition at line 602 of file chcanv.h.

◆ GetFirstQuiltChart()

ChartBase * ChartCanvas::GetFirstQuiltChart ( )

Definition at line 2575 of file chcanv.cpp.

◆ GetFogColor()

wxColour ChartCanvas::GetFogColor ( )
inline

Definition at line 664 of file chcanv.h.

◆ GetLargestScaleQuiltChart()

ChartBase * ChartCanvas::GetLargestScaleQuiltChart ( )

Definition at line 2571 of file chcanv.cpp.

◆ GetLookahead()

bool ChartCanvas::GetLookahead ( )
inline

Definition at line 409 of file chcanv.h.

◆ GetMaxAvailableGshhgQuality()

int ChartCanvas::GetMaxAvailableGshhgQuality ( )
inline

Definition at line 783 of file chcanv.h.

◆ GetMinAvailableGshhgQuality()

int ChartCanvas::GetMinAvailableGshhgQuality ( )
inline

Definition at line 780 of file chcanv.h.

◆ GetMUIBar()

MUIBar * ChartCanvas::GetMUIBar ( )
inline

Definition at line 584 of file chcanv.h.

◆ GetMUIBarRect()

wxRect ChartCanvas::GetMUIBarRect ( )

Definition at line 14532 of file chcanv.cpp.

◆ GetNextContextMenuId()

int ChartCanvas::GetNextContextMenuId ( )

Definition at line 12221 of file chcanv.cpp.

◆ GetNextQuiltChart()

ChartBase * ChartCanvas::GetNextQuiltChart ( )

Definition at line 2579 of file chcanv.cpp.

◆ GetOverlayChartAtCursor()

ChartBase * ChartCanvas::GetOverlayChartAtCursor ( )

Definition at line 2496 of file chcanv.cpp.

◆ GetpCurrentStack()

ChartStack * ChartCanvas::GetpCurrentStack ( )
inline

Definition at line 282 of file chcanv.h.

◆ GetPiano()

Piano * ChartCanvas::GetPiano ( )
inline

Definition at line 472 of file chcanv.h.

◆ GetPianoHeight()

int ChartCanvas::GetPianoHeight ( )

Definition at line 1302 of file chcanv.cpp.

◆ GetPixPerMM()

double ChartCanvas::GetPixPerMM ( )
inline

Get the number of logical pixels per millimeter on the screen.

Definition at line 492 of file chcanv.h.

◆ GetpVP()

ViewPort * ChartCanvas::GetpVP ( )
inline

Definition at line 468 of file chcanv.h.

◆ GetQuiltCandidatedbIndexArray()

std::vector< int > ChartCanvas::GetQuiltCandidatedbIndexArray ( bool flag1 = true,
bool flag2 = true )

Definition at line 2595 of file chcanv.cpp.

◆ GetQuiltChartCount()

int ChartCanvas::GetQuiltChartCount ( )

Definition at line 2581 of file chcanv.cpp.

◆ GetQuiltEclipsedStackdbIndexArray()

std::vector< int > ChartCanvas::GetQuiltEclipsedStackdbIndexArray ( )

Definition at line 2612 of file chcanv.cpp.

◆ GetQuiltExtendedStackdbIndexArray()

std::vector< int > & ChartCanvas::GetQuiltExtendedStackdbIndexArray ( )

Definition at line 2604 of file chcanv.cpp.

◆ GetQuiltFullScreendbIndexArray()

std::vector< int > & ChartCanvas::GetQuiltFullScreendbIndexArray ( )

Definition at line 2608 of file chcanv.cpp.

◆ GetQuiltIndexArray()

std::vector< int > ChartCanvas::GetQuiltIndexArray ( void )

Definition at line 2551 of file chcanv.cpp.

◆ GetQuiltMaxErrorFactor()

double ChartCanvas::GetQuiltMaxErrorFactor ( )

Definition at line 2618 of file chcanv.cpp.

◆ GetQuiltMode()

bool ChartCanvas::GetQuiltMode ( void )

Definition at line 2561 of file chcanv.cpp.

◆ GetQuiltNoshowIindexArray()

std::vector< int > ChartCanvas::GetQuiltNoshowIindexArray ( )
inline

Definition at line 812 of file chcanv.h.

◆ GetQuiltRefChartdbIndex()

int ChartCanvas::GetQuiltRefChartdbIndex ( void )

Definition at line 2600 of file chcanv.cpp.

◆ GetQuiltReferenceChartIndex()

int ChartCanvas::GetQuiltReferenceChartIndex ( void )

Definition at line 2563 of file chcanv.cpp.

◆ GetScaleBarRect()

wxRect ChartCanvas::GetScaleBarRect ( )
inline

Definition at line 805 of file chcanv.h.

◆ GetScaleText()

wxString ChartCanvas::GetScaleText ( )
inline

Definition at line 576 of file chcanv.h.

◆ GetScaleValue()

double ChartCanvas::GetScaleValue ( )
inline

Definition at line 577 of file chcanv.h.

◆ GetSelectedRoute()

Route * ChartCanvas::GetSelectedRoute ( ) const
inline

Definition at line 786 of file chcanv.h.

◆ GetSelectedRoutePoint()

RoutePoint * ChartCanvas::GetSelectedRoutePoint ( ) const
inline

Definition at line 788 of file chcanv.h.

◆ GetSelectedTrack()

Track * ChartCanvas::GetSelectedTrack ( ) const
inline

Definition at line 787 of file chcanv.h.

◆ GetShowAIS()

bool ChartCanvas::GetShowAIS ( )
inline

Definition at line 578 of file chcanv.h.

◆ GetShowChartbar()

bool ChartCanvas::GetShowChartbar ( )
inline

Definition at line 567 of file chcanv.h.

◆ GetShowDepthUnits()

bool ChartCanvas::GetShowDepthUnits ( )
inline

Definition at line 561 of file chcanv.h.

◆ GetShowENCAnchor()

bool ChartCanvas::GetShowENCAnchor ( )
inline

Definition at line 605 of file chcanv.h.

◆ GetShowENCBuoyLabels()

bool ChartCanvas::GetShowENCBuoyLabels ( )
inline

Definition at line 596 of file chcanv.h.

◆ GetShowENCDataQual()

bool ChartCanvas::GetShowENCDataQual ( )
inline

Definition at line 608 of file chcanv.h.

◆ GetShowENCDepth()

bool ChartCanvas::GetShowENCDepth ( )
inline

Definition at line 590 of file chcanv.h.

◆ GetShowENCLightDesc()

bool ChartCanvas::GetShowENCLightDesc ( )
inline

Definition at line 593 of file chcanv.h.

◆ GetShowENCLights()

bool ChartCanvas::GetShowENCLights ( )
inline

Definition at line 599 of file chcanv.h.

◆ GetShowENCText()

bool ChartCanvas::GetShowENCText ( )
inline

Definition at line 587 of file chcanv.h.

◆ GetShowFocusBar()

bool ChartCanvas::GetShowFocusBar ( )
inline

Definition at line 583 of file chcanv.h.

◆ GetShowGPSCompassWindow()

bool ChartCanvas::GetShowGPSCompassWindow ( )
inline

Definition at line 700 of file chcanv.h.

◆ GetShowGrid()

bool ChartCanvas::GetShowGrid ( )
inline

Definition at line 563 of file chcanv.h.

◆ GetShowOutlines()

bool ChartCanvas::GetShowOutlines ( )
inline

Definition at line 565 of file chcanv.h.

◆ GetShowVisibleSectors()

bool ChartCanvas::GetShowVisibleSectors ( )
inline

Definition at line 490 of file chcanv.h.

◆ getTCWin()

TCWin * ChartCanvas::getTCWin ( )
inline

Definition at line 425 of file chcanv.h.

◆ GetTideBitmap()

wxBitmap & ChartCanvas::GetTideBitmap ( )
inline

Definition at line 405 of file chcanv.h.

◆ GetUpMode()

int ChartCanvas::GetUpMode ( )
inline

Definition at line 408 of file chcanv.h.

◆ GetVP()

ViewPort & ChartCanvas::GetVP ( )

Definition at line 2660 of file chcanv.cpp.

◆ GetVPChartScale()

float ChartCanvas::GetVPChartScale ( )
inline

Return the ViewPort chart scale denominator (e.g., 50000 for a 1:50000 scale).

Definition at line 453 of file chcanv.h.

◆ GetVPRotation()

double ChartCanvas::GetVPRotation ( void )
inline

Definition at line 301 of file chcanv.h.

◆ GetVPScale()

float ChartCanvas::GetVPScale ( )
inline

Return the ViewPort scale factor, in physical pixels per meter.

Definition at line 450 of file chcanv.h.

◆ GetVPSkew()

double ChartCanvas::GetVPSkew ( void )
inline

Definition at line 302 of file chcanv.h.

◆ GetVPTilt()

double ChartCanvas::GetVPTilt ( void )
inline

Definition at line 303 of file chcanv.h.

◆ GetWorldBackgroundChart()

GSHHSChart * ChartCanvas::GetWorldBackgroundChart ( )
inline

Definition at line 480 of file chcanv.h.

◆ HandlePianoClick()

void ChartCanvas::HandlePianoClick ( int selected_index,
const std::vector< int > & selected_dbIndex_array )

Definition at line 13991 of file chcanv.cpp.

◆ HandlePianoRClick()

void ChartCanvas::HandlePianoRClick ( int x,
int y,
int selected_index,
const std::vector< int > & selected_dbIndex_array )

Definition at line 14131 of file chcanv.cpp.

◆ HandlePianoRollover()

void ChartCanvas::HandlePianoRollover ( int selected_index,
const std::vector< int > & selected_dbIndex_array,
int n_charts,
int scale )

Definition at line 14144 of file chcanv.cpp.

◆ HideChartInfoWindow()

void ChartCanvas::HideChartInfoWindow ( void )

Definition at line 7287 of file chcanv.cpp.

◆ HideGlobalToolbar()

void ChartCanvas::HideGlobalToolbar ( )

Definition at line 10831 of file chcanv.cpp.

◆ InvalidateAllQuiltPatchs()

void ChartCanvas::InvalidateAllQuiltPatchs ( void )

Definition at line 2567 of file chcanv.cpp.

◆ InvalidateGL()

void ChartCanvas::InvalidateGL ( )

Definition at line 2467 of file chcanv.cpp.

◆ InvalidateQuilt()

void ChartCanvas::InvalidateQuilt ( void )

Definition at line 2616 of file chcanv.cpp.

◆ IsChartLargeEnoughToRender()

bool ChartCanvas::IsChartLargeEnoughToRender ( ChartBase * chart,
ViewPort & vp )

Definition at line 2626 of file chcanv.cpp.

◆ IsChartQuiltableRef()

bool ChartCanvas::IsChartQuiltableRef ( int db_index)

Definition at line 2622 of file chcanv.cpp.

◆ isMarkEditing()

bool ChartCanvas::isMarkEditing ( void )
inline

Definition at line 478 of file chcanv.h.

◆ IsMeasureActive()

bool ChartCanvas::IsMeasureActive ( )
inline

Definition at line 404 of file chcanv.h.

◆ IsPianoContextMenuActive()

bool ChartCanvas::IsPianoContextMenuActive ( )
inline

Definition at line 696 of file chcanv.h.

◆ IsPrimaryCanvas()

bool ChartCanvas::IsPrimaryCanvas ( )
inline

Definition at line 214 of file chcanv.h.

◆ IsQuiltDelta()

bool ChartCanvas::IsQuiltDelta ( void )

Definition at line 2547 of file chcanv.cpp.

◆ isRouteEditing()

bool ChartCanvas::isRouteEditing ( void )
inline

Definition at line 475 of file chcanv.h.

◆ IsTileOverlayIndexInNoShow()

bool ChartCanvas::IsTileOverlayIndexInNoShow ( int index)

Definition at line 13971 of file chcanv.cpp.

◆ IsTileOverlayIndexInYesShow()

bool ChartCanvas::IsTileOverlayIndexInYesShow ( int index)

Definition at line 13965 of file chcanv.cpp.

◆ JaggyCircle()

void ChartCanvas::JaggyCircle ( ocpnDC & dc,
wxPen pen,
int x,
int y,
int radius )

Definition at line 6723 of file chcanv.cpp.

◆ JumpToPosition()

void ChartCanvas::JumpToPosition ( double lat,
double lon,
double scale )

Definition at line 4944 of file chcanv.cpp.

◆ LoadVP()

void ChartCanvas::LoadVP ( ViewPort & vp,
bool b_adjust = true )

Definition at line 5193 of file chcanv.cpp.

◆ LostMouseCapture()

void ChartCanvas::LostMouseCapture ( wxMouseCaptureLostEvent & event)

Definition at line 10111 of file chcanv.cpp.

◆ MouseEventChartBar()

bool ChartCanvas::MouseEventChartBar ( wxMouseEvent & event)

Definition at line 7516 of file chcanv.cpp.

◆ MouseEventIENCBar()

bool ChartCanvas::MouseEventIENCBar ( wxMouseEvent & event)

Definition at line 7541 of file chcanv.cpp.

◆ MouseEventMUIBar()

bool ChartCanvas::MouseEventMUIBar ( wxMouseEvent & event)

Definition at line 7555 of file chcanv.cpp.

◆ MouseEventOverlayWindows()

bool ChartCanvas::MouseEventOverlayWindows ( wxMouseEvent & event)

Definition at line 7447 of file chcanv.cpp.

◆ MouseEventProcessCanvas()

bool ChartCanvas::MouseEventProcessCanvas ( wxMouseEvent & event)

Processes mouse events for core chart panning and zooming operations.

This method handles the main chart navigation interactions:

  • Mouse wheel zooming with configurable sensitivity and optional smoothing.
  • Left-click chart centering. Centers chart on click point in non-drag scenarios.
  • Click-and-drag panning. Updates chart position continuously during drag.
Parameters
eventThe mouse event to process
Returns
true if event was processed, false to allow focus shifting between canvases.
Note
Interacts with route creation and measurement tools active states

Definition at line 9888 of file chcanv.cpp.

◆ MouseEventProcessObjects()

bool ChartCanvas::MouseEventProcessObjects ( wxMouseEvent & event)

Definition at line 8093 of file chcanv.cpp.

◆ MouseEventSetup()

bool ChartCanvas::MouseEventSetup ( wxMouseEvent & event,
bool b_handle_dclick = true )

g_btouch

Definition at line 7568 of file chcanv.cpp.

◆ MouseEventToolbar()

bool ChartCanvas::MouseEventToolbar ( wxMouseEvent & event)

Definition at line 7526 of file chcanv.cpp.

◆ OnDeferredFocusTimerEvent()

void ChartCanvas::OnDeferredFocusTimerEvent ( wxTimerEvent & event)

Definition at line 2689 of file chcanv.cpp.

◆ OnKeyChar()

void ChartCanvas::OnKeyChar ( wxKeyEvent & event)

Definition at line 2694 of file chcanv.cpp.

◆ OnKeyDown()

void ChartCanvas::OnKeyDown ( wxKeyEvent & event)

Definition at line 2734 of file chcanv.cpp.

◆ OnKeyUp()

void ChartCanvas::OnKeyUp ( wxKeyEvent & event)

Definition at line 3328 of file chcanv.cpp.

◆ OnKillFocus()

void ChartCanvas::OnKillFocus ( wxFocusEvent & WXUNUSEDevent)

Definition at line 1092 of file chcanv.cpp.

◆ OnPaint()

void ChartCanvas::OnPaint ( wxPaintEvent & event)

Definition at line 11403 of file chcanv.cpp.

◆ OnPianoMenuDisableChart()

void ChartCanvas::OnPianoMenuDisableChart ( wxCommandEvent & event)

Definition at line 14393 of file chcanv.cpp.

◆ OnPianoMenuEnableChart()

void ChartCanvas::OnPianoMenuEnableChart ( wxCommandEvent & event)

Definition at line 14382 of file chcanv.cpp.

◆ OnRouteFinishTimerEvent()

void ChartCanvas::OnRouteFinishTimerEvent ( wxTimerEvent & event)

Definition at line 1125 of file chcanv.cpp.

◆ OnSetFocus()

void ChartCanvas::OnSetFocus ( wxFocusEvent & WXUNUSEDevent)

Definition at line 1115 of file chcanv.cpp.

◆ OnToolLeftClick()

void ChartCanvas::OnToolLeftClick ( wxCommandEvent & event)

Definition at line 13644 of file chcanv.cpp.

◆ PaintCleanup()

void ChartCanvas::PaintCleanup ( )

Definition at line 12073 of file chcanv.cpp.

◆ PanCanvas()

bool ChartCanvas::PanCanvas ( double dx,
double dy )

Pans (moves) the canvas by the specified physical pixels in x and y directions.

Definition at line 5064 of file chcanv.cpp.

◆ PianoPopupMenu()

void ChartCanvas::PianoPopupMenu ( int x,
int y,
int selected_index,
const std::vector< int > & selected_dbIndex_array )

Definition at line 14317 of file chcanv.cpp.

◆ PopupMenuHandler()

void ChartCanvas::PopupMenuHandler ( wxCommandEvent & event)

Definition at line 10750 of file chcanv.cpp.

◆ ProcessNewGUIScale()

void ChartCanvas::ProcessNewGUIScale ( )

Definition at line 7091 of file chcanv.cpp.

◆ RebuildCursors()

void ChartCanvas::RebuildCursors ( )

Definition at line 935 of file chcanv.cpp.

◆ Refresh()

void ChartCanvas::Refresh ( bool eraseBackground = true,
const wxRect * rect = (const wxRect *)NULL )
virtual

Definition at line 12234 of file chcanv.cpp.

◆ ReloadVP()

void ChartCanvas::ReloadVP ( bool b_adjust = true)

Definition at line 5187 of file chcanv.cpp.

◆ RemoveChartFromQuilt()

void ChartCanvas::RemoveChartFromQuilt ( int dbIndex)

Definition at line 14433 of file chcanv.cpp.

◆ RenderAlertMessage()

void ChartCanvas::RenderAlertMessage ( wxDC & dc,
const ViewPort & vp )

Definition at line 14541 of file chcanv.cpp.

◆ ResetOwnshipOffset()

void ChartCanvas::ResetOwnshipOffset ( )
inline

Definition at line 825 of file chcanv.h.

◆ ResetWorldBackgroundChart()

void ChartCanvas::ResetWorldBackgroundChart ( )
inline

Definition at line 481 of file chcanv.h.

◆ RotateCanvas()

void ChartCanvas::RotateCanvas ( double dir)

Definition at line 4834 of file chcanv.cpp.

◆ selectCanvasChartDisplay()

void ChartCanvas::selectCanvasChartDisplay ( int type,
int family )

Definition at line 13906 of file chcanv.cpp.

◆ SelectChartFromStack()

void ChartCanvas::SelectChartFromStack ( int index,
bool bDir = false,
ChartTypeEnum New_Type = CHART_TYPE_DONTCARE,
ChartFamilyEnum New_Family = CHART_FAMILY_DONTCARE )

Definition at line 13806 of file chcanv.cpp.

◆ SelectdbChart()

void ChartCanvas::SelectdbChart ( int dbindex)

Definition at line 13863 of file chcanv.cpp.

◆ SelectQuiltRefChart()

void ChartCanvas::SelectQuiltRefChart ( int selected_index)

Definition at line 2044 of file chcanv.cpp.

◆ SelectQuiltRefdbChart()

void ChartCanvas::SelectQuiltRefdbChart ( int db_index,
bool b_autoscale = true )

Definition at line 2027 of file chcanv.cpp.

◆ SetAISCanvasDisplayStyle()

void ChartCanvas::SetAISCanvasDisplayStyle ( int StyleIndx)

Definition at line 13727 of file chcanv.cpp.

◆ SetAlertString()

void ChartCanvas::SetAlertString ( wxString str)
inline

Definition at line 585 of file chcanv.h.

◆ SetAttenAIS()

void ChartCanvas::SetAttenAIS ( bool show)

Definition at line 13721 of file chcanv.cpp.

◆ SetbFollow()

void ChartCanvas::SetbFollow ( void )

Definition at line 4888 of file chcanv.cpp.

◆ SetbShowCurrent()

void ChartCanvas::SetbShowCurrent ( bool f)
inline

Definition at line 485 of file chcanv.h.

◆ SetbShowTide()

void ChartCanvas::SetbShowTide ( bool f)
inline

Definition at line 487 of file chcanv.h.

◆ SetbTCUpdate()

void ChartCanvas::SetbTCUpdate ( bool f)
inline

Definition at line 483 of file chcanv.h.

◆ SetCanvasCursor()

void ChartCanvas::SetCanvasCursor ( wxMouseEvent & event)

Definition at line 10082 of file chcanv.cpp.

◆ SetCanvasRangeMeters()

void ChartCanvas::SetCanvasRangeMeters ( double range)

Definition at line 2276 of file chcanv.cpp.

◆ SetColorScheme()

void ChartCanvas::SetColorScheme ( ColorScheme cs)

Definition at line 3756 of file chcanv.cpp.

◆ SetCursor()

bool ChartCanvas::SetCursor ( const wxCursor & c)
virtual

Definition at line 12225 of file chcanv.cpp.

◆ SetCursorStatus()

void ChartCanvas::SetCursorStatus ( double cursor_lat,
double cursor_lon )

Definition at line 4367 of file chcanv.cpp.

◆ SetDisplaySizeMM()

void ChartCanvas::SetDisplaySizeMM ( double size)

Set the width of the screen in millimeters.

Definition at line 2401 of file chcanv.cpp.

◆ SetENCDisplayCategory()

void ChartCanvas::SetENCDisplayCategory ( int category)

Definition at line 14490 of file chcanv.cpp.

◆ SetFirstAuto()

void ChartCanvas::SetFirstAuto ( bool b_auto)
inline

Definition at line 311 of file chcanv.h.

◆ SetGroupIndex()

void ChartCanvas::SetGroupIndex ( int index,
bool autoswitch = false )

Definition at line 1379 of file chcanv.cpp.

◆ SetMUIBarPosition()

void ChartCanvas::SetMUIBarPosition ( )

Definition at line 7119 of file chcanv.cpp.

◆ SetOwnShipState()

void ChartCanvas::SetOwnShipState ( ownship_state_t state)
inline

Definition at line 494 of file chcanv.h.

◆ SetQuiltChartHiLiteIndex()

void ChartCanvas::SetQuiltChartHiLiteIndex ( int dbIndex)

Definition at line 2583 of file chcanv.cpp.

◆ SetQuiltChartHiLiteIndexArray()

void ChartCanvas::SetQuiltChartHiLiteIndexArray ( std::vector< int > hilite_array)

Definition at line 2587 of file chcanv.cpp.

◆ SetQuiltMode()

void ChartCanvas::SetQuiltMode ( bool b_quilt)

Definition at line 2556 of file chcanv.cpp.

◆ SetQuiltRefChart()

void ChartCanvas::SetQuiltRefChart ( int dbIndex)

Definition at line 5221 of file chcanv.cpp.

◆ SetShowAIS()

void ChartCanvas::SetShowAIS ( bool show)

Definition at line 13715 of file chcanv.cpp.

◆ SetShowDepthUnits()

void ChartCanvas::SetShowDepthUnits ( bool show)
inline

Definition at line 562 of file chcanv.h.

◆ SetShowENCAnchor()

void ChartCanvas::SetShowENCAnchor ( bool show)

Definition at line 14524 of file chcanv.cpp.

◆ SetShowENCBuoyLabels()

void ChartCanvas::SetShowENCBuoyLabels ( bool show)

Definition at line 14511 of file chcanv.cpp.

◆ SetShowENCDataQual()

void ChartCanvas::SetShowENCDataQual ( bool show)

Definition at line 14474 of file chcanv.cpp.

◆ SetShowENCDepth()

void ChartCanvas::SetShowENCDepth ( bool show)

Definition at line 14495 of file chcanv.cpp.

◆ SetShowENCLightDesc()

void ChartCanvas::SetShowENCLightDesc ( bool show)

Definition at line 14503 of file chcanv.cpp.

◆ SetShowENCLights()

void ChartCanvas::SetShowENCLights ( bool show)

Definition at line 14516 of file chcanv.cpp.

◆ SetShowENCText()

void ChartCanvas::SetShowENCText ( bool show)

Definition at line 14482 of file chcanv.cpp.

◆ SetShowFocusBar()

void ChartCanvas::SetShowFocusBar ( bool enable)
inline

Definition at line 582 of file chcanv.h.

◆ SetShowGPS()

void ChartCanvas::SetShowGPS ( bool show)

Definition at line 1284 of file chcanv.cpp.

◆ SetShowGPSCompassWindow()

void ChartCanvas::SetShowGPSCompassWindow ( bool bshow)

Definition at line 1294 of file chcanv.cpp.

◆ SetShowGrid()

void ChartCanvas::SetShowGrid ( bool show)
inline

Definition at line 564 of file chcanv.h.

◆ SetShowOutlines()

void ChartCanvas::SetShowOutlines ( bool show)
inline

Definition at line 566 of file chcanv.h.

◆ SetShowVisibleSectors()

void ChartCanvas::SetShowVisibleSectors ( bool val)
inline

Definition at line 489 of file chcanv.h.

◆ SetupCanvasQuiltMode()

void ChartCanvas::SetupCanvasQuiltMode ( void )

Definition at line 2097 of file chcanv.cpp.

◆ SetupGlCanvas()

void ChartCanvas::SetupGlCanvas ( )

Definition at line 1017 of file chcanv.cpp.

◆ SetUpMode()

void ChartCanvas::SetUpMode ( int mode)

Definition at line 3436 of file chcanv.cpp.

◆ SetUserOwnship()

bool ChartCanvas::SetUserOwnship ( )

Definition at line 2285 of file chcanv.cpp.

◆ SetViewPoint() [1/2]

bool ChartCanvas::SetViewPoint ( double lat,
double lon )

Set the viewport center point.

Centers the view on a specific lat/lon position.

Parameters
latLatitude in degrees
lonLongitude in degrees
Returns
true if view was changed successfully

Definition at line 5357 of file chcanv.cpp.

◆ SetViewPoint() [2/2]

bool ChartCanvas::SetViewPoint ( double lat,
double lon,
double scale_ppm,
double skew,
double rotation,
int projection = 0,
bool b_adjust = true,
bool b_refresh = true )

Set the viewport center point, scale, skew, rotation and projection.

Parameters
latLatitude of viewport center in degrees.
lonLongitude of viewport center in degrees.
scale_ppmRequested viewport scale in physical pixels per meter. This is the desired rendering scale before projection effects.
skewChart skew angle in radians.
rotationViewport rotation in radians.
projectionProjection type (default=0). If 0, maintains current projection.
b_adjustAllow small viewport adjustments for performance.
b_refreshRequest screen refresh after change.

Definition at line 5366 of file chcanv.cpp.

◆ SetViewPointByCorners()

bool ChartCanvas::SetViewPointByCorners ( double latSW,
double lonSW,
double latNE,
double lonNE )

Definition at line 5320 of file chcanv.cpp.

◆ SetVP()

void ChartCanvas::SetVP ( ViewPort & vp)

Definition at line 2662 of file chcanv.cpp.

◆ SetVPProjection()

bool ChartCanvas::SetVPProjection ( int projection)

Definition at line 5343 of file chcanv.cpp.

◆ SetVPRotation()

bool ChartCanvas::SetVPRotation ( double angle)

Definition at line 5362 of file chcanv.cpp.

◆ SetVPScale()

bool ChartCanvas::SetVPScale ( double sc,
bool b_refresh = true )

Sets the viewport scale while maintaining the center point.

Changes the chart display scale while preserving the current view center, orientation, skew, and projection settings. This is typically used for zoom operations.

Parameters
scaleThe new viewport scale to set (pixels per meter)
refreshWhether to refresh the display after changing the scale
Returns
bool True if the scale change was successful

Definition at line 5338 of file chcanv.cpp.

◆ ShowAISTargetList()

void ChartCanvas::ShowAISTargetList ( void )

Definition at line 10843 of file chcanv.cpp.

◆ ShowChartInfoWindow()

void ChartCanvas::ShowChartInfoWindow ( int x,
int dbIndex )

Definition at line 7240 of file chcanv.cpp.

◆ ShowCompositeInfoWindow()

void ChartCanvas::ShowCompositeInfoWindow ( int x,
int n_charts,
int scale,
const std::vector< int > & index_vector )

Definition at line 7155 of file chcanv.cpp.

◆ ShowCurrents()

void ChartCanvas::ShowCurrents ( bool bShow)

Definition at line 1348 of file chcanv.cpp.

◆ ShowGlobalToolbar()

void ChartCanvas::ShowGlobalToolbar ( )

Definition at line 10837 of file chcanv.cpp.

◆ ShowMarkPropertiesDialog()

void ChartCanvas::ShowMarkPropertiesDialog ( RoutePoint * markPoint)

Definition at line 10396 of file chcanv.cpp.

◆ ShowObjectQueryWindow()

void ChartCanvas::ShowObjectQueryWindow ( int x,
int y,
float zlat,
float zlon )

Definition at line 10115 of file chcanv.cpp.

◆ ShowRoutePropertiesDialog()

void ChartCanvas::ShowRoutePropertiesDialog ( wxString title,
Route * selected )

Definition at line 10454 of file chcanv.cpp.

◆ ShowTides()

void ChartCanvas::ShowTides ( bool bShow)

Definition at line 1323 of file chcanv.cpp.

◆ ShowTrackPropertiesDialog()

void ChartCanvas::ShowTrackPropertiesDialog ( Track * selected)

Definition at line 10498 of file chcanv.cpp.

◆ StartChartDragInertia()

void ChartCanvas::StartChartDragInertia ( )

Definition at line 3483 of file chcanv.cpp.

◆ StartMeasureRoute()

void ChartCanvas::StartMeasureRoute ( )

Definition at line 2632 of file chcanv.cpp.

◆ StartRoute()

void ChartCanvas::StartRoute ( void )

Definition at line 10759 of file chcanv.cpp.

◆ StartTimedMovement()

bool ChartCanvas::StartTimedMovement ( bool stoptimer = true)

Definition at line 3584 of file chcanv.cpp.

◆ StartTimedMovementTarget()

void ChartCanvas::StartTimedMovementTarget ( )

Definition at line 3656 of file chcanv.cpp.

◆ StartTimedMovementVP()

void ChartCanvas::StartTimedMovementVP ( double target_lat,
double target_lon,
int nstep )

Definition at line 3602 of file chcanv.cpp.

◆ StopMovement()

void ChartCanvas::StopMovement ( )

Definition at line 3566 of file chcanv.cpp.

◆ StopMovementTarget()

void ChartCanvas::StopMovementTarget ( )

Definition at line 3660 of file chcanv.cpp.

◆ StopMovementVP()

void ChartCanvas::StopMovementVP ( )

Definition at line 3652 of file chcanv.cpp.

◆ ThawPiano()

void ChartCanvas::ThawPiano ( )
inline

Definition at line 702 of file chcanv.h.

◆ TogglebFollow()

void ChartCanvas::TogglebFollow ( void )

Definition at line 4869 of file chcanv.cpp.

◆ ToggleCanvasQuiltMode()

void ChartCanvas::ToggleCanvasQuiltMode ( void )

Definition at line 13536 of file chcanv.cpp.

◆ ToggleChartOutlines()

void ChartCanvas::ToggleChartOutlines ( void )

Definition at line 3419 of file chcanv.cpp.

◆ ToggleCPAWarn()

void ChartCanvas::ToggleCPAWarn ( )

Definition at line 6981 of file chcanv.cpp.

◆ ToggleLookahead()

void ChartCanvas::ToggleLookahead ( )

Definition at line 3430 of file chcanv.cpp.

◆ TouchAISToolActive()

void ChartCanvas::TouchAISToolActive ( void )

Definition at line 13768 of file chcanv.cpp.

◆ TriggerDeferredFocus()

void ChartCanvas::TriggerDeferredFocus ( )

Definition at line 2673 of file chcanv.cpp.

◆ UnlockQuilt()

void ChartCanvas::UnlockQuilt ( )

Definition at line 2549 of file chcanv.cpp.

◆ Update()

void ChartCanvas::Update ( )
virtual

Definition at line 12287 of file chcanv.cpp.

◆ UpdateAIS()

void ChartCanvas::UpdateAIS ( )

Definition at line 6919 of file chcanv.cpp.

◆ UpdateAISTBTool()

void ChartCanvas::UpdateAISTBTool ( void )

Definition at line 13770 of file chcanv.cpp.

◆ UpdateAlerts()

void ChartCanvas::UpdateAlerts ( )

Definition at line 6869 of file chcanv.cpp.

◆ UpdateCanvasControlBar()

void ChartCanvas::UpdateCanvasControlBar ( void )

Definition at line 14206 of file chcanv.cpp.

◆ UpdateCanvasOnGroupChange()

void ChartCanvas::UpdateCanvasOnGroupChange ( void )

Definition at line 5307 of file chcanv.cpp.

◆ UpdateCanvasS52PLIBConfig()

void ChartCanvas::UpdateCanvasS52PLIBConfig ( )

Definition at line 11323 of file chcanv.cpp.

◆ UpdateFollowButtonState()

void ChartCanvas::UpdateFollowButtonState ( void )

Definition at line 4920 of file chcanv.cpp.

◆ UpdateGPSCompassStatusBox()

void ChartCanvas::UpdateGPSCompassStatusBox ( bool b_force_new)

Definition at line 13778 of file chcanv.cpp.

◆ UpdateShips()

void ChartCanvas::UpdateShips ( )

Definition at line 6821 of file chcanv.cpp.

◆ WarpPointerDeferred()

void ChartCanvas::WarpPointerDeferred ( int x,
int y )

Definition at line 11315 of file chcanv.cpp.

◆ ZoomCanvas()

void ChartCanvas::ZoomCanvas ( double factor,
bool can_zoom_to_cursor = true,
bool stoptimer = true )

Perform a smooth zoom operation on the chart canvas by the specified factor.

The zoom can either be centered on the cursor position or the center of the viewport.

Parameters
factorThe zoom factor to apply:
  • factor > 1: Zoom in, e.g. 2.0 makes objects twice as large
  • factor < 1: Zoom out, e.g. 0.5 makes objects half as large
can_zoom_to_cursorIf true, zoom operation will be centered on current cursor position. If false, zoom operation centers on current viewport center.
stoptimerIf true, stops any ongoing movement/zoom operations before starting this zoom. If false, allows this zoom to blend with existing operations.

Definition at line 4649 of file chcanv.cpp.

◆ ZoomCanvasSimple()

void ChartCanvas::ZoomCanvasSimple ( double factor)

Perform an immediate zoom operation without smooth transitions.

This is a simplified version of ZoomCanvas that applies the zoom immediately without animation or cursor-centering logic. Typically used for programmatic zooming.

Parameters
factorThe zoom factor to apply:
  • factor > 1: Zoom in, e.g. 2.0 makes objects twice as large
  • factor < 1: Zoom out, e.g. 0.5 makes objects half as large

Definition at line 4644 of file chcanv.cpp.

Friends And Related Symbol Documentation

◆ glChartCanvas

friend class glChartCanvas
friend

Definition at line 152 of file chcanv.h.

Member Data Documentation

◆ m_active_upload_port

wxString ChartCanvas::m_active_upload_port

Definition at line 630 of file chcanv.h.

◆ m_b_paint_enable

bool ChartCanvas::m_b_paint_enable

Definition at line 803 of file chcanv.h.

◆ m_bAppendingRoute

bool ChartCanvas::m_bAppendingRoute

Definition at line 775 of file chcanv.h.

◆ m_bFollow

bool ChartCanvas::m_bFollow

Definition at line 706 of file chcanv.h.

◆ m_bLookAhead

bool ChartCanvas::m_bLookAhead

Definition at line 753 of file chcanv.h.

◆ m_bMeasure_Active

bool ChartCanvas::m_bMeasure_Active

Definition at line 625 of file chcanv.h.

◆ m_bMeasure_DistCircle

bool ChartCanvas::m_bMeasure_DistCircle

Definition at line 774 of file chcanv.h.

◆ m_brepaint_piano

bool ChartCanvas::m_brepaint_piano

Definition at line 713 of file chcanv.h.

◆ m_bShowNavobjects

bool ChartCanvas::m_bShowNavobjects

Definition at line 750 of file chcanv.h.

◆ m_canvasIndex

int ChartCanvas::m_canvasIndex

Definition at line 612 of file chcanv.h.

◆ m_canvasMenu

CanvasMenuHandler* ChartCanvas::m_canvasMenu

Definition at line 779 of file chcanv.h.

◆ m_cursor_lat

double ChartCanvas::m_cursor_lat

The latitude in degrees corresponding to the most recently processed cursor position.

This variable does NOT continuously track the mouse cursor position. It is updated only:

  1. When processing left mouse clicks
  2. During panning operations via mouse dragging
  3. When the OnCursorTrackTimerEvent fires after mouse movement stops
  4. During certain object selection and editing operations

For code that needs the current geographic coordinates under the current mouse pointer, use GetCanvasPixPoint(mouse_x, mouse_y, lat, lon) instead of accessing this variable directly.

Definition at line 745 of file chcanv.h.

◆ m_cursor_lon

double ChartCanvas::m_cursor_lon

The longitude in degrees corresponding to the most recently processed cursor position.

This variable does NOT continuously track the mouse cursor position. It is updated only:

  1. When processing left mouse clicks
  2. During panning operations via mouse dragging
  3. When the OnCursorTrackTimerEvent fires after mouse movement stops
  4. During certain object selection and editing operations

For code that needs the current geographic coordinates under the current mouse pointer, use GetCanvasPixPoint(mouse_x, mouse_y, lat, lon) instead of accessing this variable directly.

Definition at line 729 of file chcanv.h.

◆ m_FinishRouteOnKillFocus

bool ChartCanvas::m_FinishRouteOnKillFocus

Definition at line 773 of file chcanv.h.

◆ m_groupIndex

int ChartCanvas::m_groupIndex

Definition at line 623 of file chcanv.h.

◆ m_nMeasureState

int ChartCanvas::m_nMeasureState

Definition at line 776 of file chcanv.h.

◆ m_pMeasureRoute

Route* ChartCanvas::m_pMeasureRoute

Definition at line 777 of file chcanv.h.

◆ m_pMouseRoute

Route* ChartCanvas::m_pMouseRoute

Definition at line 624 of file chcanv.h.

◆ m_pQuilt

Quilt* ChartCanvas::m_pQuilt

Definition at line 628 of file chcanv.h.

◆ m_prev_pMousePoint

RoutePoint* ChartCanvas::m_prev_pMousePoint

Definition at line 749 of file chcanv.h.

◆ m_prev_rlat

double ChartCanvas::m_prev_rlat

Definition at line 747 of file chcanv.h.

◆ m_prev_rlon

double ChartCanvas::m_prev_rlon

Definition at line 748 of file chcanv.h.

◆ m_quilt_noshow_index_array

std::vector<int> ChartCanvas::m_quilt_noshow_index_array

Definition at line 810 of file chcanv.h.

◆ m_routeState

int ChartCanvas::m_routeState

Definition at line 751 of file chcanv.h.

◆ m_singleChart

ChartBase* ChartCanvas::m_singleChart

Definition at line 627 of file chcanv.h.

◆ m_tile_noshow_index_array

std::vector<int> ChartCanvas::m_tile_noshow_index_array

Definition at line 808 of file chcanv.h.

◆ m_tile_yesshow_index_array

std::vector<int> ChartCanvas::m_tile_yesshow_index_array

Definition at line 809 of file chcanv.h.

◆ m_upMode

int ChartCanvas::m_upMode

Definition at line 752 of file chcanv.h.

◆ parent_frame

MyFrame* ChartCanvas::parent_frame

Definition at line 778 of file chcanv.h.

◆ pCursorArrow

wxCursor* ChartCanvas::pCursorArrow

Definition at line 708 of file chcanv.h.

◆ pCursorCross

wxCursor* ChartCanvas::pCursorCross

Definition at line 709 of file chcanv.h.

◆ pCursorPencil

wxCursor* ChartCanvas::pCursorPencil

Definition at line 707 of file chcanv.h.

◆ pCwin

TCWin* ChartCanvas::pCwin

Definition at line 711 of file chcanv.h.

◆ pPlugIn_Cursor

wxCursor* ChartCanvas::pPlugIn_Cursor

Definition at line 710 of file chcanv.h.

◆ pscratch_bm

wxBitmap* ChartCanvas::pscratch_bm

Definition at line 712 of file chcanv.h.

◆ r_rband

wxPoint ChartCanvas::r_rband

Definition at line 746 of file chcanv.h.

◆ undo

Undo* ChartCanvas::undo

Definition at line 406 of file chcanv.h.


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