OpenCPN Partial API docs
|
ChartCanvas - Main chart display and interaction component. More...
#include <chcanv.h>
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) |
ChartStack * | GetpCurrentStack () |
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 () |
TCWin * | getTCWin () |
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 () |
ViewPort * | GetpVP () |
void | SetVP (ViewPort &) |
ChartBase * | GetChartAtCursor () |
ChartBase * | GetOverlayChartAtCursor () |
Piano * | GetPiano () |
int | GetPianoHeight () |
bool | isRouteEditing (void) |
bool | isMarkEditing (void) |
GSHHSChart * | GetWorldBackgroundChart () |
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 () |
MUIBar * | GetMUIBar () |
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) |
ViewPort & | GetVP () |
wxString | FindValidUploadPort () |
ChartBase * | GetLargestScaleQuiltChart () |
ChartBase * | GetFirstQuiltChart () |
ChartBase * | GetNextQuiltChart () |
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) |
ocpnCompass * | GetCompass () |
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 () |
Route * | GetSelectedRoute () const |
Track * | GetSelectedTrack () const |
RoutePoint * | GetSelectedRoutePoint () 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 () |
Friends | |
class | glChartCanvas |
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.
ChartCanvas::ChartCanvas | ( | wxFrame * | frame, |
int | canvasIndex, | ||
wxWindow * | nmea_log | ||
) |
Definition at line 429 of file chcanv.cpp.
ChartCanvas::~ChartCanvas | ( | ) |
Definition at line 861 of file chcanv.cpp.
void ChartCanvas::AddTileOverlayIndexToNoShow | ( | int | index | ) |
Definition at line 13984 of file chcanv.cpp.
void ChartCanvas::ApplyCanvasConfig | ( | canvasConfig * | pcc | ) |
Definition at line 1218 of file chcanv.cpp.
void ChartCanvas::ApplyGlobalSettings | ( | ) |
Definition at line 1268 of file chcanv.cpp.
void ChartCanvas::CancelMeasureRoute | ( | ) |
Definition at line 2650 of file chcanv.cpp.
void ChartCanvas::CancelMouseRoute | ( | ) |
Definition at line 12222 of file chcanv.cpp.
void ChartCanvas::CanvasApplyLocale | ( | ) |
Definition at line 1013 of file chcanv.cpp.
void ChartCanvas::canvasChartsRefresh | ( | int | dbi_hint | ) |
Definition at line 1502 of file chcanv.cpp.
void ChartCanvas::canvasRefreshGroupIndex | ( | void | ) |
Definition at line 1378 of file chcanv.cpp.
bool ChartCanvas::CheckEdgePan | ( | int | x, |
int | y, | ||
bool | bdragging, | ||
int | margin, | ||
int | delta | ||
) |
Definition at line 7327 of file chcanv.cpp.
bool ChartCanvas::CheckGroup | ( | int | igroup | ) |
Definition at line 1468 of file chcanv.cpp.
void ChartCanvas::CheckGroupValid | ( | bool | showMessage = true , |
bool | switchGroup0 = true |
||
) |
Definition at line 1277 of file chcanv.cpp.
void ChartCanvas::ClearbFollow | ( | void | ) |
Definition at line 4878 of file chcanv.cpp.
void ChartCanvas::ClearPianoRollover | ( | ) |
Definition at line 14205 of file chcanv.cpp.
void ChartCanvas::ClearQuiltChartHiLiteIndexArray | ( | ) |
Definition at line 2592 of file chcanv.cpp.
void ChartCanvas::ConfigureChartBar | ( | ) |
Definition at line 1310 of file chcanv.cpp.
void ChartCanvas::CreateMUIBar | ( | ) |
Definition at line 7106 of file chcanv.cpp.
void ChartCanvas::DestroyMuiBar | ( | ) |
Definition at line 7155 of file chcanv.cpp.
bool ChartCanvas::DoCanvasCOGSet | ( | void | ) |
Definition at line 3465 of file chcanv.cpp.
void ChartCanvas::DoCanvasStackDelta | ( | int | direction | ) |
Definition at line 13569 of file chcanv.cpp.
bool ChartCanvas::DoCanvasUpdate | ( | void | ) |
Definition at line 1572 of file chcanv.cpp.
void ChartCanvas::DoMovement | ( | long | dt | ) |
Definition at line 3682 of file chcanv.cpp.
void ChartCanvas::DoRotateCanvas | ( | double | rotation | ) |
Definition at line 4851 of file chcanv.cpp.
void ChartCanvas::DoTiltCanvas | ( | double | tilt | ) |
Definition at line 4861 of file chcanv.cpp.
void ChartCanvas::DoTimedMovement | ( | ) |
Definition at line 3664 of file chcanv.cpp.
void ChartCanvas::DoTimedMovementTarget | ( | ) |
Definition at line 3660 of file chcanv.cpp.
void ChartCanvas::DoTimedMovementVP | ( | ) |
Definition at line 3620 of file chcanv.cpp.
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.
factor | The zoom factor to apply:
|
can_zoom_to_cursor | If true, zoom operation will be centered on cursor position. If false, zoom operation centers on viewport center. |
Definition at line 4671 of file chcanv.cpp.
void ChartCanvas::DrawBlinkObjects | ( | void | ) |
Definition at line 12791 of file chcanv.cpp.
void ChartCanvas::DrawTCWindow | ( | int | x, |
int | y, | ||
void * | pIDX | ||
) |
Definition at line 13417 of file chcanv.cpp.
void ChartCanvas::EnablePaint | ( | bool | b_enable | ) |
Definition at line 2541 of file chcanv.cpp.
int ChartCanvas::FindClosestCanvasChartdbIndex | ( | int | scale | ) |
Definition at line 2507 of file chcanv.cpp.
wxString ChartCanvas::FindValidUploadPort | ( | ) |
Definition at line 13461 of file chcanv.cpp.
void ChartCanvas::FinishRoute | ( | void | ) |
Definition at line 10785 of file chcanv.cpp.
void ChartCanvas::FormatPianoKeys | ( | void | ) |
Definition at line 14322 of file chcanv.cpp.
double ChartCanvas::GetBestStartScale | ( | int | dbi_hint, |
const ViewPort & | vp | ||
) |
Definition at line 5234 of file chcanv.cpp.
double ChartCanvas::GetBestVPScale | ( | ChartBase * | pchart | ) |
Definition at line 2053 of file chcanv.cpp.
int ChartCanvas::GetCanvasChartNativeScale | ( | ) |
Definition at line 2476 of file chcanv.cpp.
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.
x | X-coordinate in physical pixels |
y | Y-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. |
Definition at line 4590 of file chcanv.cpp.
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.
rlat | Latitude in degrees |
rlon | Longitude in degrees |
r | [out] Pointer to wxPoint to receive the canvas pixel coordinates in physical pixels, as rounded integer values. |
Definition at line 4565 of file chcanv.cpp.
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.
vp | ViewPort containing projection parameters and canvas settings |
rlat | Latitude in degrees |
rlon | Longitude in degrees |
r | [out] Pointer to wxPoint to receive the canvas pixel coordinates in physical pixels, as rounded integer values. |
Definition at line 4569 of file chcanv.cpp.
double ChartCanvas::GetCanvasRangeMeters | ( | ) |
Definition at line 2267 of file chcanv.cpp.
|
inline |
Return the number of logical pixels per meter for the screen.
|
inline |
ChartBase * ChartCanvas::GetChartAtCursor | ( | ) |
Definition at line 2486 of file chcanv.cpp.
|
inline |
void ChartCanvas::GetCursorLatLon | ( | double * | lat, |
double * | lon | ||
) |
Definition at line 4503 of file chcanv.cpp.
|
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:
|
inline |
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.
rlat | Latitude in degrees |
rlon | Longitude in degrees |
r | [out] Pointer to wxPoint2DDouble to receive the canvas pixel coordinates as unrounded floating point values |
Definition at line 4510 of file chcanv.cpp.
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.
vp | ViewPort containing projection parameters and canvas settings |
rlat | Latitude in degrees |
rlon | Longitude in degrees |
r | [out] Pointer to wxPoint2DDouble to receive the canvas pixel coordinates as unrounded floating point values |
Definition at line 4515 of file chcanv.cpp.
ChartBase * ChartCanvas::GetFirstQuiltChart | ( | ) |
Definition at line 2576 of file chcanv.cpp.
ChartBase * ChartCanvas::GetLargestScaleQuiltChart | ( | ) |
Definition at line 2572 of file chcanv.cpp.
wxRect ChartCanvas::GetMUIBarRect | ( | ) |
Definition at line 14539 of file chcanv.cpp.
int ChartCanvas::GetNextContextMenuId | ( | ) |
Definition at line 12228 of file chcanv.cpp.
ChartBase * ChartCanvas::GetNextQuiltChart | ( | ) |
Definition at line 2580 of file chcanv.cpp.
ChartBase * ChartCanvas::GetOverlayChartAtCursor | ( | ) |
Definition at line 2497 of file chcanv.cpp.
|
inline |
int ChartCanvas::GetPianoHeight | ( | ) |
Definition at line 1303 of file chcanv.cpp.
|
inline |
std::vector< int > ChartCanvas::GetQuiltCandidatedbIndexArray | ( | bool | flag1 = true , |
bool | flag2 = true |
||
) |
Definition at line 2596 of file chcanv.cpp.
int ChartCanvas::GetQuiltChartCount | ( | ) |
Definition at line 2582 of file chcanv.cpp.
std::vector< int > ChartCanvas::GetQuiltEclipsedStackdbIndexArray | ( | ) |
Definition at line 2613 of file chcanv.cpp.
std::vector< int > & ChartCanvas::GetQuiltExtendedStackdbIndexArray | ( | ) |
Definition at line 2605 of file chcanv.cpp.
std::vector< int > & ChartCanvas::GetQuiltFullScreendbIndexArray | ( | ) |
Definition at line 2609 of file chcanv.cpp.
std::vector< int > ChartCanvas::GetQuiltIndexArray | ( | void | ) |
Definition at line 2552 of file chcanv.cpp.
double ChartCanvas::GetQuiltMaxErrorFactor | ( | ) |
Definition at line 2619 of file chcanv.cpp.
bool ChartCanvas::GetQuiltMode | ( | void | ) |
Definition at line 2562 of file chcanv.cpp.
|
inline |
int ChartCanvas::GetQuiltRefChartdbIndex | ( | void | ) |
Definition at line 2601 of file chcanv.cpp.
int ChartCanvas::GetQuiltReferenceChartIndex | ( | void | ) |
Definition at line 2564 of file chcanv.cpp.
|
inline |
ViewPort & ChartCanvas::GetVP | ( | ) |
Definition at line 2661 of file chcanv.cpp.
|
inline |
|
inline |
|
inline |
void ChartCanvas::HandlePianoClick | ( | int | selected_index, |
const std::vector< int > & | selected_dbIndex_array | ||
) |
Definition at line 13998 of file chcanv.cpp.
void ChartCanvas::HandlePianoRClick | ( | int | x, |
int | y, | ||
int | selected_index, | ||
const std::vector< int > & | selected_dbIndex_array | ||
) |
Definition at line 14138 of file chcanv.cpp.
void ChartCanvas::HandlePianoRollover | ( | int | selected_index, |
const std::vector< int > & | selected_dbIndex_array, | ||
int | n_charts, | ||
int | scale | ||
) |
Definition at line 14151 of file chcanv.cpp.
void ChartCanvas::HideChartInfoWindow | ( | void | ) |
Definition at line 7294 of file chcanv.cpp.
void ChartCanvas::HideGlobalToolbar | ( | ) |
Definition at line 10837 of file chcanv.cpp.
void ChartCanvas::InvalidateAllQuiltPatchs | ( | void | ) |
Definition at line 2568 of file chcanv.cpp.
void ChartCanvas::InvalidateGL | ( | ) |
Definition at line 2468 of file chcanv.cpp.
void ChartCanvas::InvalidateQuilt | ( | void | ) |
Definition at line 2617 of file chcanv.cpp.
Definition at line 2627 of file chcanv.cpp.
bool ChartCanvas::IsChartQuiltableRef | ( | int | db_index | ) |
Definition at line 2623 of file chcanv.cpp.
bool ChartCanvas::IsQuiltDelta | ( | void | ) |
Definition at line 2548 of file chcanv.cpp.
bool ChartCanvas::IsTileOverlayIndexInNoShow | ( | int | index | ) |
Definition at line 13978 of file chcanv.cpp.
bool ChartCanvas::IsTileOverlayIndexInYesShow | ( | int | index | ) |
Definition at line 13972 of file chcanv.cpp.
void ChartCanvas::JaggyCircle | ( | ocpnDC & | dc, |
wxPen | pen, | ||
int | x, | ||
int | y, | ||
int | radius | ||
) |
Definition at line 6730 of file chcanv.cpp.
void ChartCanvas::JumpToPosition | ( | double | lat, |
double | lon, | ||
double | scale | ||
) |
Definition at line 4946 of file chcanv.cpp.
void ChartCanvas::LoadVP | ( | ViewPort & | vp, |
bool | b_adjust = true |
||
) |
Definition at line 5200 of file chcanv.cpp.
void ChartCanvas::LostMouseCapture | ( | wxMouseCaptureLostEvent & | event | ) |
Definition at line 10117 of file chcanv.cpp.
bool ChartCanvas::MouseEventChartBar | ( | wxMouseEvent & | event | ) |
Definition at line 7522 of file chcanv.cpp.
bool ChartCanvas::MouseEventIENCBar | ( | wxMouseEvent & | event | ) |
Definition at line 7547 of file chcanv.cpp.
bool ChartCanvas::MouseEventMUIBar | ( | wxMouseEvent & | event | ) |
Definition at line 7561 of file chcanv.cpp.
bool ChartCanvas::MouseEventOverlayWindows | ( | wxMouseEvent & | event | ) |
Definition at line 7454 of file chcanv.cpp.
bool ChartCanvas::MouseEventProcessCanvas | ( | wxMouseEvent & | event | ) |
Processes mouse events for core chart panning and zooming operations.
This method handles the main chart navigation interactions:
event | The mouse event to process |
Definition at line 9894 of file chcanv.cpp.
bool ChartCanvas::MouseEventProcessObjects | ( | wxMouseEvent & | event | ) |
Definition at line 8099 of file chcanv.cpp.
bool ChartCanvas::MouseEventSetup | ( | wxMouseEvent & | event, |
bool | b_handle_dclick = true |
||
) |
g_btouch
Definition at line 7574 of file chcanv.cpp.
bool ChartCanvas::MouseEventToolbar | ( | wxMouseEvent & | event | ) |
Definition at line 7532 of file chcanv.cpp.
void ChartCanvas::OnDeferredFocusTimerEvent | ( | wxTimerEvent & | event | ) |
Definition at line 2690 of file chcanv.cpp.
void ChartCanvas::OnKeyChar | ( | wxKeyEvent & | event | ) |
Definition at line 2695 of file chcanv.cpp.
void ChartCanvas::OnKeyDown | ( | wxKeyEvent & | event | ) |
Definition at line 2735 of file chcanv.cpp.
void ChartCanvas::OnKeyUp | ( | wxKeyEvent & | event | ) |
Definition at line 3330 of file chcanv.cpp.
void ChartCanvas::OnKillFocus | ( | wxFocusEvent & | WXUNUSEDevent | ) |
Definition at line 1093 of file chcanv.cpp.
void ChartCanvas::OnPaint | ( | wxPaintEvent & | event | ) |
Definition at line 11409 of file chcanv.cpp.
void ChartCanvas::OnPianoMenuDisableChart | ( | wxCommandEvent & | event | ) |
Definition at line 14400 of file chcanv.cpp.
void ChartCanvas::OnPianoMenuEnableChart | ( | wxCommandEvent & | event | ) |
Definition at line 14389 of file chcanv.cpp.
void ChartCanvas::OnRouteFinishTimerEvent | ( | wxTimerEvent & | event | ) |
Definition at line 1126 of file chcanv.cpp.
void ChartCanvas::OnSetFocus | ( | wxFocusEvent & | WXUNUSEDevent | ) |
Definition at line 1116 of file chcanv.cpp.
void ChartCanvas::OnToolLeftClick | ( | wxCommandEvent & | event | ) |
Definition at line 13651 of file chcanv.cpp.
void ChartCanvas::PaintCleanup | ( | ) |
Definition at line 12080 of file chcanv.cpp.
bool ChartCanvas::PanCanvas | ( | double | dx, |
double | dy | ||
) |
Pans (moves) the canvas by the specified physical pixels in x and y directions.
Definition at line 5066 of file chcanv.cpp.
void ChartCanvas::PianoPopupMenu | ( | int | x, |
int | y, | ||
int | selected_index, | ||
const std::vector< int > & | selected_dbIndex_array | ||
) |
Definition at line 14324 of file chcanv.cpp.
void ChartCanvas::PopupMenuHandler | ( | wxCommandEvent & | event | ) |
Definition at line 10756 of file chcanv.cpp.
void ChartCanvas::ProcessNewGUIScale | ( | ) |
Definition at line 7098 of file chcanv.cpp.
void ChartCanvas::RebuildCursors | ( | ) |
Definition at line 936 of file chcanv.cpp.
|
virtual |
Definition at line 12241 of file chcanv.cpp.
void ChartCanvas::ReloadVP | ( | bool | b_adjust = true | ) |
Definition at line 5194 of file chcanv.cpp.
void ChartCanvas::RemoveChartFromQuilt | ( | int | dbIndex | ) |
Definition at line 14440 of file chcanv.cpp.
void ChartCanvas::RenderAlertMessage | ( | wxDC & | dc, |
const ViewPort & | vp | ||
) |
Definition at line 14548 of file chcanv.cpp.
void ChartCanvas::RotateCanvas | ( | double | dir | ) |
Definition at line 4836 of file chcanv.cpp.
void ChartCanvas::selectCanvasChartDisplay | ( | int | type, |
int | family | ||
) |
Definition at line 13913 of file chcanv.cpp.
void ChartCanvas::SelectChartFromStack | ( | int | index, |
bool | bDir = false , |
||
ChartTypeEnum | New_Type = CHART_TYPE_DONTCARE , |
||
ChartFamilyEnum | New_Family = CHART_FAMILY_DONTCARE |
||
) |
Definition at line 13813 of file chcanv.cpp.
void ChartCanvas::SelectdbChart | ( | int | dbindex | ) |
Definition at line 13870 of file chcanv.cpp.
void ChartCanvas::SelectQuiltRefChart | ( | int | selected_index | ) |
Definition at line 2045 of file chcanv.cpp.
void ChartCanvas::SelectQuiltRefdbChart | ( | int | db_index, |
bool | b_autoscale = true |
||
) |
Definition at line 2028 of file chcanv.cpp.
void ChartCanvas::SetAISCanvasDisplayStyle | ( | int | StyleIndx | ) |
Definition at line 13734 of file chcanv.cpp.
void ChartCanvas::SetAttenAIS | ( | bool | show | ) |
Definition at line 13728 of file chcanv.cpp.
void ChartCanvas::SetbFollow | ( | void | ) |
Definition at line 4890 of file chcanv.cpp.
void ChartCanvas::SetCanvasCursor | ( | wxMouseEvent & | event | ) |
Definition at line 10088 of file chcanv.cpp.
void ChartCanvas::SetCanvasRangeMeters | ( | double | range | ) |
Definition at line 2277 of file chcanv.cpp.
void ChartCanvas::SetColorScheme | ( | ColorScheme | cs | ) |
Definition at line 3758 of file chcanv.cpp.
|
virtual |
Definition at line 12232 of file chcanv.cpp.
void ChartCanvas::SetCursorStatus | ( | double | cursor_lat, |
double | cursor_lon | ||
) |
Definition at line 4369 of file chcanv.cpp.
void ChartCanvas::SetDisplaySizeMM | ( | double | size | ) |
Set the width of the screen in millimeters.
Definition at line 2402 of file chcanv.cpp.
void ChartCanvas::SetENCDisplayCategory | ( | int | category | ) |
Definition at line 14497 of file chcanv.cpp.
void ChartCanvas::SetGroupIndex | ( | int | index, |
bool | autoswitch = false |
||
) |
Definition at line 1380 of file chcanv.cpp.
void ChartCanvas::SetMUIBarPosition | ( | ) |
Definition at line 7126 of file chcanv.cpp.
|
inline |
void ChartCanvas::SetQuiltChartHiLiteIndex | ( | int | dbIndex | ) |
Definition at line 2584 of file chcanv.cpp.
void ChartCanvas::SetQuiltChartHiLiteIndexArray | ( | std::vector< int > | hilite_array | ) |
Definition at line 2588 of file chcanv.cpp.
void ChartCanvas::SetQuiltMode | ( | bool | b_quilt | ) |
Definition at line 2557 of file chcanv.cpp.
void ChartCanvas::SetQuiltRefChart | ( | int | dbIndex | ) |
Definition at line 5228 of file chcanv.cpp.
void ChartCanvas::SetShowAIS | ( | bool | show | ) |
Definition at line 13722 of file chcanv.cpp.
void ChartCanvas::SetShowENCAnchor | ( | bool | show | ) |
Definition at line 14531 of file chcanv.cpp.
void ChartCanvas::SetShowENCBuoyLabels | ( | bool | show | ) |
Definition at line 14518 of file chcanv.cpp.
void ChartCanvas::SetShowENCDataQual | ( | bool | show | ) |
Definition at line 14481 of file chcanv.cpp.
void ChartCanvas::SetShowENCDepth | ( | bool | show | ) |
Definition at line 14502 of file chcanv.cpp.
void ChartCanvas::SetShowENCLightDesc | ( | bool | show | ) |
Definition at line 14510 of file chcanv.cpp.
void ChartCanvas::SetShowENCLights | ( | bool | show | ) |
Definition at line 14523 of file chcanv.cpp.
void ChartCanvas::SetShowENCText | ( | bool | show | ) |
Definition at line 14489 of file chcanv.cpp.
void ChartCanvas::SetShowGPS | ( | bool | show | ) |
Definition at line 1285 of file chcanv.cpp.
void ChartCanvas::SetShowGPSCompassWindow | ( | bool | bshow | ) |
Definition at line 1295 of file chcanv.cpp.
void ChartCanvas::SetupCanvasQuiltMode | ( | void | ) |
Definition at line 2098 of file chcanv.cpp.
void ChartCanvas::SetupGlCanvas | ( | ) |
Definition at line 1018 of file chcanv.cpp.
void ChartCanvas::SetUpMode | ( | int | mode | ) |
Definition at line 3438 of file chcanv.cpp.
bool ChartCanvas::SetUserOwnship | ( | ) |
Definition at line 2286 of file chcanv.cpp.
bool ChartCanvas::SetViewPoint | ( | double | lat, |
double | lon | ||
) |
Set the viewport center point.
Centers the view on a specific lat/lon position.
lat | Latitude in degrees |
lon | Longitude in degrees |
Definition at line 5364 of file chcanv.cpp.
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.
lat | Latitude of viewport center in degrees. |
lon | Longitude of viewport center in degrees. |
scale_ppm | Requested viewport scale in physical pixels per meter. This is the desired rendering scale before projection effects. |
skew | Chart skew angle in radians. |
rotation | Viewport rotation in radians. |
projection | Projection type (default=0). If 0, maintains current projection. |
b_adjust | Allow small viewport adjustments for performance. |
b_refresh | Request screen refresh after change. |
Definition at line 5373 of file chcanv.cpp.
bool ChartCanvas::SetViewPointByCorners | ( | double | latSW, |
double | lonSW, | ||
double | latNE, | ||
double | lonNE | ||
) |
Definition at line 5327 of file chcanv.cpp.
void ChartCanvas::SetVP | ( | ViewPort & | vp | ) |
Definition at line 2663 of file chcanv.cpp.
bool ChartCanvas::SetVPProjection | ( | int | projection | ) |
Definition at line 5350 of file chcanv.cpp.
bool ChartCanvas::SetVPRotation | ( | double | angle | ) |
Definition at line 5369 of file chcanv.cpp.
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.
scale | The new viewport scale to set (pixels per meter) |
refresh | Whether to refresh the display after changing the scale |
Definition at line 5345 of file chcanv.cpp.
void ChartCanvas::ShowAISTargetList | ( | void | ) |
Definition at line 10849 of file chcanv.cpp.
void ChartCanvas::ShowChartInfoWindow | ( | int | x, |
int | dbIndex | ||
) |
Definition at line 7247 of file chcanv.cpp.
void ChartCanvas::ShowCompositeInfoWindow | ( | int | x, |
int | n_charts, | ||
int | scale, | ||
const std::vector< int > & | index_vector | ||
) |
Definition at line 7162 of file chcanv.cpp.
void ChartCanvas::ShowCurrents | ( | bool | bShow | ) |
Definition at line 1349 of file chcanv.cpp.
void ChartCanvas::ShowGlobalToolbar | ( | ) |
Definition at line 10843 of file chcanv.cpp.
void ChartCanvas::ShowMarkPropertiesDialog | ( | RoutePoint * | markPoint | ) |
Definition at line 10402 of file chcanv.cpp.
void ChartCanvas::ShowObjectQueryWindow | ( | int | x, |
int | y, | ||
float | zlat, | ||
float | zlon | ||
) |
Definition at line 10121 of file chcanv.cpp.
void ChartCanvas::ShowRoutePropertiesDialog | ( | wxString | title, |
Route * | selected | ||
) |
Definition at line 10460 of file chcanv.cpp.
void ChartCanvas::ShowTides | ( | bool | bShow | ) |
Definition at line 1324 of file chcanv.cpp.
void ChartCanvas::ShowTrackPropertiesDialog | ( | Track * | selected | ) |
Definition at line 10504 of file chcanv.cpp.
void ChartCanvas::StartChartDragInertia | ( | ) |
Definition at line 3485 of file chcanv.cpp.
void ChartCanvas::StartMeasureRoute | ( | ) |
Definition at line 2633 of file chcanv.cpp.
void ChartCanvas::StartRoute | ( | void | ) |
Definition at line 10765 of file chcanv.cpp.
bool ChartCanvas::StartTimedMovement | ( | bool | stoptimer = true | ) |
Definition at line 3586 of file chcanv.cpp.
void ChartCanvas::StartTimedMovementTarget | ( | ) |
Definition at line 3658 of file chcanv.cpp.
void ChartCanvas::StartTimedMovementVP | ( | double | target_lat, |
double | target_lon, | ||
int | nstep | ||
) |
Definition at line 3604 of file chcanv.cpp.
void ChartCanvas::StopMovement | ( | ) |
Definition at line 3568 of file chcanv.cpp.
void ChartCanvas::StopMovementTarget | ( | ) |
Definition at line 3662 of file chcanv.cpp.
void ChartCanvas::StopMovementVP | ( | ) |
Definition at line 3654 of file chcanv.cpp.
void ChartCanvas::TogglebFollow | ( | void | ) |
Definition at line 4871 of file chcanv.cpp.
void ChartCanvas::ToggleCanvasQuiltMode | ( | void | ) |
Definition at line 13543 of file chcanv.cpp.
void ChartCanvas::ToggleChartOutlines | ( | void | ) |
Definition at line 3421 of file chcanv.cpp.
void ChartCanvas::ToggleCPAWarn | ( | ) |
Definition at line 6988 of file chcanv.cpp.
void ChartCanvas::ToggleLookahead | ( | ) |
Definition at line 3432 of file chcanv.cpp.
void ChartCanvas::TouchAISToolActive | ( | void | ) |
Definition at line 13775 of file chcanv.cpp.
void ChartCanvas::TriggerDeferredFocus | ( | ) |
Definition at line 2674 of file chcanv.cpp.
void ChartCanvas::UnlockQuilt | ( | ) |
Definition at line 2550 of file chcanv.cpp.
|
virtual |
Definition at line 12294 of file chcanv.cpp.
void ChartCanvas::UpdateAIS | ( | ) |
Definition at line 6926 of file chcanv.cpp.
void ChartCanvas::UpdateAISTBTool | ( | void | ) |
Definition at line 13777 of file chcanv.cpp.
void ChartCanvas::UpdateAlerts | ( | ) |
Definition at line 6876 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasControlBar | ( | void | ) |
Definition at line 14213 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasOnGroupChange | ( | void | ) |
Definition at line 5314 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasS52PLIBConfig | ( | ) |
Definition at line 11329 of file chcanv.cpp.
void ChartCanvas::UpdateFollowButtonState | ( | void | ) |
Definition at line 4922 of file chcanv.cpp.
void ChartCanvas::UpdateGPSCompassStatusBox | ( | bool | b_force_new | ) |
Definition at line 13785 of file chcanv.cpp.
void ChartCanvas::UpdateShips | ( | ) |
Definition at line 6828 of file chcanv.cpp.
void ChartCanvas::WarpPointerDeferred | ( | int | x, |
int | y | ||
) |
Definition at line 11321 of file chcanv.cpp.
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.
factor | The zoom factor to apply:
|
can_zoom_to_cursor | If true, zoom operation will be centered on current cursor position. If false, zoom operation centers on current viewport center. |
stoptimer | If true, stops any ongoing movement/zoom operations before starting this zoom. If false, allows this zoom to blend with existing operations. |
Definition at line 4651 of file chcanv.cpp.
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.
factor | The zoom factor to apply:
|
Definition at line 4646 of file chcanv.cpp.
|
friend |
CanvasMenuHandler* ChartCanvas::m_canvasMenu |
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:
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.
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:
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.
RoutePoint* ChartCanvas::m_prev_pMousePoint |