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) |
Performs a step of smooth movement animation on the chart canvas. | |
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 | 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 430 of file chcanv.cpp.
ChartCanvas::~ChartCanvas | ( | ) |
Definition at line 862 of file chcanv.cpp.
void ChartCanvas::AddTileOverlayIndexToNoShow | ( | int | index | ) |
Definition at line 14003 of file chcanv.cpp.
void ChartCanvas::ApplyCanvasConfig | ( | canvasConfig * | pcc | ) |
Definition at line 1219 of file chcanv.cpp.
void ChartCanvas::ApplyGlobalSettings | ( | ) |
Definition at line 1269 of file chcanv.cpp.
void ChartCanvas::CancelMeasureRoute | ( | ) |
Definition at line 2650 of file chcanv.cpp.
void ChartCanvas::CancelMouseRoute | ( | ) |
Definition at line 12215 of file chcanv.cpp.
void ChartCanvas::CanvasApplyLocale | ( | ) |
Definition at line 1014 of file chcanv.cpp.
void ChartCanvas::canvasChartsRefresh | ( | int | dbi_hint | ) |
Definition at line 1503 of file chcanv.cpp.
void ChartCanvas::canvasRefreshGroupIndex | ( | void | ) |
Definition at line 1379 of file chcanv.cpp.
bool ChartCanvas::CheckEdgePan | ( | int | x, |
int | y, | ||
bool | bdragging, | ||
int | margin, | ||
int | delta | ||
) |
Definition at line 7319 of file chcanv.cpp.
bool ChartCanvas::CheckGroup | ( | int | igroup | ) |
Definition at line 1469 of file chcanv.cpp.
void ChartCanvas::CheckGroupValid | ( | bool | showMessage = true , |
bool | switchGroup0 = true |
||
) |
Definition at line 1278 of file chcanv.cpp.
void ChartCanvas::ClearbFollow | ( | void | ) |
Definition at line 4869 of file chcanv.cpp.
void ChartCanvas::ClearPianoRollover | ( | ) |
Definition at line 14224 of file chcanv.cpp.
void ChartCanvas::ClearQuiltChartHiLiteIndexArray | ( | ) |
Definition at line 2593 of file chcanv.cpp.
void ChartCanvas::ConfigureChartBar | ( | ) |
Definition at line 1311 of file chcanv.cpp.
void ChartCanvas::CreateMUIBar | ( | ) |
Definition at line 7098 of file chcanv.cpp.
void ChartCanvas::DestroyMuiBar | ( | ) |
Definition at line 7147 of file chcanv.cpp.
bool ChartCanvas::DoCanvasCOGSet | ( | void | ) |
Definition at line 3449 of file chcanv.cpp.
void ChartCanvas::DoCanvasStackDelta | ( | int | direction | ) |
Definition at line 13590 of file chcanv.cpp.
bool ChartCanvas::DoCanvasUpdate | ( | void | ) |
Definition at line 1573 of file chcanv.cpp.
void ChartCanvas::DoMovement | ( | long | dt | ) |
Performs a step of smooth movement animation on the chart canvas.
This function is called to update the canvas position, scale, or rotation during animated panning, zooming, or rotating operations. The amount of movement performed is determined by the elapsed time parameter dt
, and the operation continues as long as the internal movement timer is nonzero.
dt | Elapsed time in milliseconds since the last movement step. |
Definition at line 3666 of file chcanv.cpp.
void ChartCanvas::DoRotateCanvas | ( | double | rotation | ) |
Definition at line 4842 of file chcanv.cpp.
void ChartCanvas::DoTiltCanvas | ( | double | tilt | ) |
Definition at line 4852 of file chcanv.cpp.
void ChartCanvas::DoTimedMovement | ( | ) |
Definition at line 3648 of file chcanv.cpp.
void ChartCanvas::DoTimedMovementTarget | ( | ) |
Definition at line 3644 of file chcanv.cpp.
void ChartCanvas::DoTimedMovementVP | ( | ) |
Definition at line 3604 of file chcanv.cpp.
void ChartCanvas::DrawBlinkObjects | ( | void | ) |
Definition at line 12812 of file chcanv.cpp.
void ChartCanvas::DrawTCWindow | ( | int | x, |
int | y, | ||
void * | pIDX | ||
) |
Definition at line 13438 of file chcanv.cpp.
void ChartCanvas::EnablePaint | ( | bool | b_enable | ) |
Definition at line 2542 of file chcanv.cpp.
int ChartCanvas::FindClosestCanvasChartdbIndex | ( | int | scale | ) |
Definition at line 2508 of file chcanv.cpp.
wxString ChartCanvas::FindValidUploadPort | ( | ) |
Definition at line 13482 of file chcanv.cpp.
void ChartCanvas::FinishRoute | ( | void | ) |
Definition at line 10802 of file chcanv.cpp.
void ChartCanvas::FormatPianoKeys | ( | void | ) |
Definition at line 14341 of file chcanv.cpp.
double ChartCanvas::GetBestStartScale | ( | int | dbi_hint, |
const ViewPort & | vp | ||
) |
Definition at line 5226 of file chcanv.cpp.
double ChartCanvas::GetBestVPScale | ( | ChartBase * | pchart | ) |
Definition at line 2054 of file chcanv.cpp.
int ChartCanvas::GetCanvasChartNativeScale | ( | ) |
Definition at line 2477 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 4580 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 4555 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 4559 of file chcanv.cpp.
double ChartCanvas::GetCanvasRangeMeters | ( | ) |
Definition at line 2268 of file chcanv.cpp.
|
inline |
Return the number of logical pixels per meter for the screen.
|
inline |
ChartBase * ChartCanvas::GetChartAtCursor | ( | ) |
Definition at line 2487 of file chcanv.cpp.
|
inline |
void ChartCanvas::GetCursorLatLon | ( | double * | lat, |
double * | lon | ||
) |
Definition at line 4493 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 4500 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 4505 of file chcanv.cpp.
ChartBase * ChartCanvas::GetFirstQuiltChart | ( | ) |
Definition at line 2577 of file chcanv.cpp.
ChartBase * ChartCanvas::GetLargestScaleQuiltChart | ( | ) |
Definition at line 2573 of file chcanv.cpp.
wxRect ChartCanvas::GetMUIBarRect | ( | ) |
Definition at line 14558 of file chcanv.cpp.
int ChartCanvas::GetNextContextMenuId | ( | ) |
Definition at line 12221 of file chcanv.cpp.
ChartBase * ChartCanvas::GetNextQuiltChart | ( | ) |
Definition at line 2581 of file chcanv.cpp.
ChartBase * ChartCanvas::GetOverlayChartAtCursor | ( | ) |
Definition at line 2498 of file chcanv.cpp.
|
inline |
int ChartCanvas::GetPianoHeight | ( | ) |
Definition at line 1304 of file chcanv.cpp.
|
inline |
std::vector< int > ChartCanvas::GetQuiltCandidatedbIndexArray | ( | bool | flag1 = true , |
bool | flag2 = true |
||
) |
Definition at line 2597 of file chcanv.cpp.
int ChartCanvas::GetQuiltChartCount | ( | ) |
Definition at line 2583 of file chcanv.cpp.
std::vector< int > ChartCanvas::GetQuiltEclipsedStackdbIndexArray | ( | ) |
Definition at line 2614 of file chcanv.cpp.
std::vector< int > & ChartCanvas::GetQuiltExtendedStackdbIndexArray | ( | ) |
Definition at line 2606 of file chcanv.cpp.
std::vector< int > & ChartCanvas::GetQuiltFullScreendbIndexArray | ( | ) |
Definition at line 2610 of file chcanv.cpp.
std::vector< int > ChartCanvas::GetQuiltIndexArray | ( | void | ) |
Definition at line 2553 of file chcanv.cpp.
double ChartCanvas::GetQuiltMaxErrorFactor | ( | ) |
Definition at line 2620 of file chcanv.cpp.
bool ChartCanvas::GetQuiltMode | ( | void | ) |
Definition at line 2563 of file chcanv.cpp.
|
inline |
int ChartCanvas::GetQuiltRefChartdbIndex | ( | void | ) |
Definition at line 2602 of file chcanv.cpp.
int ChartCanvas::GetQuiltReferenceChartIndex | ( | void | ) |
Definition at line 2565 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 14017 of file chcanv.cpp.
void ChartCanvas::HandlePianoRClick | ( | int | x, |
int | y, | ||
int | selected_index, | ||
const std::vector< int > & | selected_dbIndex_array | ||
) |
Definition at line 14157 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 14170 of file chcanv.cpp.
void ChartCanvas::HideChartInfoWindow | ( | void | ) |
Definition at line 7286 of file chcanv.cpp.
void ChartCanvas::HideGlobalToolbar | ( | ) |
Definition at line 10855 of file chcanv.cpp.
void ChartCanvas::InvalidateAllQuiltPatchs | ( | void | ) |
Definition at line 2569 of file chcanv.cpp.
void ChartCanvas::InvalidateGL | ( | ) |
Definition at line 2469 of file chcanv.cpp.
void ChartCanvas::InvalidateQuilt | ( | void | ) |
Definition at line 2618 of file chcanv.cpp.
Definition at line 2628 of file chcanv.cpp.
bool ChartCanvas::IsChartQuiltableRef | ( | int | db_index | ) |
Definition at line 2624 of file chcanv.cpp.
bool ChartCanvas::IsQuiltDelta | ( | void | ) |
Definition at line 2549 of file chcanv.cpp.
bool ChartCanvas::IsTileOverlayIndexInNoShow | ( | int | index | ) |
Definition at line 13997 of file chcanv.cpp.
bool ChartCanvas::IsTileOverlayIndexInYesShow | ( | int | index | ) |
Definition at line 13991 of file chcanv.cpp.
void ChartCanvas::JaggyCircle | ( | ocpnDC & | dc, |
wxPen | pen, | ||
int | x, | ||
int | y, | ||
int | radius | ||
) |
Definition at line 6722 of file chcanv.cpp.
void ChartCanvas::JumpToPosition | ( | double | lat, |
double | lon, | ||
double | scale | ||
) |
Definition at line 4937 of file chcanv.cpp.
void ChartCanvas::LoadVP | ( | ViewPort & | vp, |
bool | b_adjust = true |
||
) |
Definition at line 5192 of file chcanv.cpp.
void ChartCanvas::LostMouseCapture | ( | wxMouseCaptureLostEvent & | event | ) |
Definition at line 10129 of file chcanv.cpp.
bool ChartCanvas::MouseEventChartBar | ( | wxMouseEvent & | event | ) |
Definition at line 7514 of file chcanv.cpp.
bool ChartCanvas::MouseEventIENCBar | ( | wxMouseEvent & | event | ) |
Definition at line 7539 of file chcanv.cpp.
bool ChartCanvas::MouseEventMUIBar | ( | wxMouseEvent & | event | ) |
Definition at line 7553 of file chcanv.cpp.
bool ChartCanvas::MouseEventOverlayWindows | ( | wxMouseEvent & | event | ) |
Definition at line 7446 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 9906 of file chcanv.cpp.
bool ChartCanvas::MouseEventProcessObjects | ( | wxMouseEvent & | event | ) |
Definition at line 8091 of file chcanv.cpp.
bool ChartCanvas::MouseEventSetup | ( | wxMouseEvent & | event, |
bool | b_handle_dclick = true |
||
) |
g_btouch
Definition at line 7566 of file chcanv.cpp.
bool ChartCanvas::MouseEventToolbar | ( | wxMouseEvent & | event | ) |
Definition at line 7524 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 3314 of file chcanv.cpp.
void ChartCanvas::OnKillFocus | ( | wxFocusEvent & | WXUNUSEDevent | ) |
Definition at line 1094 of file chcanv.cpp.
void ChartCanvas::OnPaint | ( | wxPaintEvent & | event | ) |
Definition at line 11439 of file chcanv.cpp.
void ChartCanvas::OnPianoMenuDisableChart | ( | wxCommandEvent & | event | ) |
Definition at line 14419 of file chcanv.cpp.
void ChartCanvas::OnPianoMenuEnableChart | ( | wxCommandEvent & | event | ) |
Definition at line 14408 of file chcanv.cpp.
void ChartCanvas::OnRouteFinishTimerEvent | ( | wxTimerEvent & | event | ) |
Definition at line 1127 of file chcanv.cpp.
void ChartCanvas::OnSetFocus | ( | wxFocusEvent & | WXUNUSEDevent | ) |
Definition at line 1117 of file chcanv.cpp.
void ChartCanvas::OnToolLeftClick | ( | wxCommandEvent & | event | ) |
Definition at line 13672 of file chcanv.cpp.
void ChartCanvas::PaintCleanup | ( | ) |
Definition at line 12073 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 5058 of file chcanv.cpp.
void ChartCanvas::PianoPopupMenu | ( | int | x, |
int | y, | ||
int | selected_index, | ||
const std::vector< int > & | selected_dbIndex_array | ||
) |
Definition at line 14343 of file chcanv.cpp.
void ChartCanvas::PopupMenuHandler | ( | wxCommandEvent & | event | ) |
Definition at line 10773 of file chcanv.cpp.
void ChartCanvas::ProcessNewGUIScale | ( | ) |
Definition at line 7090 of file chcanv.cpp.
void ChartCanvas::RebuildCursors | ( | ) |
Definition at line 937 of file chcanv.cpp.
|
virtual |
Definition at line 12234 of file chcanv.cpp.
void ChartCanvas::ReloadVP | ( | bool | b_adjust = true | ) |
Definition at line 5186 of file chcanv.cpp.
void ChartCanvas::RemoveChartFromQuilt | ( | int | dbIndex | ) |
Definition at line 14459 of file chcanv.cpp.
void ChartCanvas::RenderAlertMessage | ( | wxDC & | dc, |
const ViewPort & | vp | ||
) |
Definition at line 14567 of file chcanv.cpp.
void ChartCanvas::RotateCanvas | ( | double | dir | ) |
Definition at line 4827 of file chcanv.cpp.
void ChartCanvas::selectCanvasChartDisplay | ( | int | type, |
int | family | ||
) |
Definition at line 13932 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 13832 of file chcanv.cpp.
void ChartCanvas::SelectdbChart | ( | int | dbindex | ) |
Definition at line 13889 of file chcanv.cpp.
void ChartCanvas::SelectQuiltRefChart | ( | int | selected_index | ) |
Definition at line 2046 of file chcanv.cpp.
void ChartCanvas::SelectQuiltRefdbChart | ( | int | db_index, |
bool | b_autoscale = true |
||
) |
Definition at line 2029 of file chcanv.cpp.
void ChartCanvas::SetAISCanvasDisplayStyle | ( | int | StyleIndx | ) |
Definition at line 13753 of file chcanv.cpp.
void ChartCanvas::SetAttenAIS | ( | bool | show | ) |
Definition at line 13747 of file chcanv.cpp.
void ChartCanvas::SetbFollow | ( | void | ) |
Definition at line 4881 of file chcanv.cpp.
void ChartCanvas::SetCanvasCursor | ( | wxMouseEvent & | event | ) |
Definition at line 10100 of file chcanv.cpp.
void ChartCanvas::SetCanvasRangeMeters | ( | double | range | ) |
Definition at line 2278 of file chcanv.cpp.
void ChartCanvas::SetColorScheme | ( | ColorScheme | cs | ) |
Definition at line 3745 of file chcanv.cpp.
|
virtual |
Definition at line 12225 of file chcanv.cpp.
void ChartCanvas::SetCursorStatus | ( | double | cursor_lat, |
double | cursor_lon | ||
) |
Definition at line 4359 of file chcanv.cpp.
void ChartCanvas::SetDisplaySizeMM | ( | double | size | ) |
Set the width of the screen in millimeters.
Definition at line 2403 of file chcanv.cpp.
void ChartCanvas::SetENCDisplayCategory | ( | int | category | ) |
Definition at line 14516 of file chcanv.cpp.
void ChartCanvas::SetGroupIndex | ( | int | index, |
bool | autoswitch = false |
||
) |
Definition at line 1381 of file chcanv.cpp.
void ChartCanvas::SetMUIBarPosition | ( | ) |
Definition at line 7118 of file chcanv.cpp.
|
inline |
void ChartCanvas::SetQuiltChartHiLiteIndex | ( | int | dbIndex | ) |
Definition at line 2585 of file chcanv.cpp.
void ChartCanvas::SetQuiltChartHiLiteIndexArray | ( | std::vector< int > | hilite_array | ) |
Definition at line 2589 of file chcanv.cpp.
void ChartCanvas::SetQuiltMode | ( | bool | b_quilt | ) |
Definition at line 2558 of file chcanv.cpp.
void ChartCanvas::SetQuiltRefChart | ( | int | dbIndex | ) |
Definition at line 5220 of file chcanv.cpp.
void ChartCanvas::SetShowAIS | ( | bool | show | ) |
Definition at line 13741 of file chcanv.cpp.
void ChartCanvas::SetShowENCAnchor | ( | bool | show | ) |
Definition at line 14550 of file chcanv.cpp.
void ChartCanvas::SetShowENCBuoyLabels | ( | bool | show | ) |
Definition at line 14537 of file chcanv.cpp.
void ChartCanvas::SetShowENCDataQual | ( | bool | show | ) |
Definition at line 14500 of file chcanv.cpp.
void ChartCanvas::SetShowENCDepth | ( | bool | show | ) |
Definition at line 14521 of file chcanv.cpp.
void ChartCanvas::SetShowENCLightDesc | ( | bool | show | ) |
Definition at line 14529 of file chcanv.cpp.
void ChartCanvas::SetShowENCLights | ( | bool | show | ) |
Definition at line 14542 of file chcanv.cpp.
void ChartCanvas::SetShowENCText | ( | bool | show | ) |
Definition at line 14508 of file chcanv.cpp.
void ChartCanvas::SetShowGPS | ( | bool | show | ) |
Definition at line 1286 of file chcanv.cpp.
void ChartCanvas::SetShowGPSCompassWindow | ( | bool | bshow | ) |
Definition at line 1296 of file chcanv.cpp.
void ChartCanvas::SetupCanvasQuiltMode | ( | void | ) |
Definition at line 2099 of file chcanv.cpp.
void ChartCanvas::SetupGlCanvas | ( | ) |
Definition at line 1019 of file chcanv.cpp.
void ChartCanvas::SetUpMode | ( | int | mode | ) |
Definition at line 3422 of file chcanv.cpp.
bool ChartCanvas::SetUserOwnship | ( | ) |
Definition at line 2287 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 5356 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 5365 of file chcanv.cpp.
bool ChartCanvas::SetViewPointByCorners | ( | double | latSW, |
double | lonSW, | ||
double | latNE, | ||
double | lonNE | ||
) |
Definition at line 5319 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 5342 of file chcanv.cpp.
bool ChartCanvas::SetVPRotation | ( | double | angle | ) |
Definition at line 5361 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 5337 of file chcanv.cpp.
void ChartCanvas::ShowAISTargetList | ( | void | ) |
Definition at line 10867 of file chcanv.cpp.
void ChartCanvas::ShowChartInfoWindow | ( | int | x, |
int | dbIndex | ||
) |
Definition at line 7239 of file chcanv.cpp.
void ChartCanvas::ShowCompositeInfoWindow | ( | int | x, |
int | n_charts, | ||
int | scale, | ||
const std::vector< int > & | index_vector | ||
) |
Definition at line 7154 of file chcanv.cpp.
void ChartCanvas::ShowCurrents | ( | bool | bShow | ) |
Definition at line 1350 of file chcanv.cpp.
void ChartCanvas::ShowGlobalToolbar | ( | ) |
Definition at line 10861 of file chcanv.cpp.
void ChartCanvas::ShowMarkPropertiesDialog | ( | RoutePoint * | markPoint | ) |
Definition at line 10414 of file chcanv.cpp.
void ChartCanvas::ShowObjectQueryWindow | ( | int | x, |
int | y, | ||
float | zlat, | ||
float | zlon | ||
) |
Definition at line 10133 of file chcanv.cpp.
void ChartCanvas::ShowRoutePropertiesDialog | ( | wxString | title, |
Route * | selected | ||
) |
Definition at line 10472 of file chcanv.cpp.
void ChartCanvas::ShowTides | ( | bool | bShow | ) |
Definition at line 1325 of file chcanv.cpp.
void ChartCanvas::ShowTrackPropertiesDialog | ( | Track * | selected | ) |
Definition at line 10516 of file chcanv.cpp.
void ChartCanvas::StartChartDragInertia | ( | ) |
Definition at line 3469 of file chcanv.cpp.
void ChartCanvas::StartMeasureRoute | ( | ) |
Definition at line 2634 of file chcanv.cpp.
void ChartCanvas::StartRoute | ( | void | ) |
Definition at line 10782 of file chcanv.cpp.
bool ChartCanvas::StartTimedMovement | ( | bool | stoptimer = true | ) |
Definition at line 3570 of file chcanv.cpp.
void ChartCanvas::StartTimedMovementTarget | ( | ) |
Definition at line 3642 of file chcanv.cpp.
void ChartCanvas::StartTimedMovementVP | ( | double | target_lat, |
double | target_lon, | ||
int | nstep | ||
) |
Definition at line 3588 of file chcanv.cpp.
void ChartCanvas::StopMovement | ( | ) |
Definition at line 3552 of file chcanv.cpp.
void ChartCanvas::StopMovementTarget | ( | ) |
Definition at line 3646 of file chcanv.cpp.
void ChartCanvas::StopMovementVP | ( | ) |
Definition at line 3638 of file chcanv.cpp.
void ChartCanvas::TogglebFollow | ( | void | ) |
Definition at line 4862 of file chcanv.cpp.
void ChartCanvas::ToggleCanvasQuiltMode | ( | void | ) |
Definition at line 13564 of file chcanv.cpp.
void ChartCanvas::ToggleChartOutlines | ( | void | ) |
Definition at line 3405 of file chcanv.cpp.
void ChartCanvas::ToggleCPAWarn | ( | ) |
Definition at line 6980 of file chcanv.cpp.
void ChartCanvas::ToggleLookahead | ( | ) |
Definition at line 3416 of file chcanv.cpp.
void ChartCanvas::TouchAISToolActive | ( | void | ) |
Definition at line 13794 of file chcanv.cpp.
void ChartCanvas::TriggerDeferredFocus | ( | ) |
Definition at line 2674 of file chcanv.cpp.
void ChartCanvas::UnlockQuilt | ( | ) |
Definition at line 2551 of file chcanv.cpp.
|
virtual |
Definition at line 12287 of file chcanv.cpp.
void ChartCanvas::UpdateAIS | ( | ) |
Definition at line 6918 of file chcanv.cpp.
void ChartCanvas::UpdateAISTBTool | ( | void | ) |
Definition at line 13796 of file chcanv.cpp.
void ChartCanvas::UpdateAlerts | ( | ) |
Definition at line 6868 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasControlBar | ( | void | ) |
Definition at line 14232 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasOnGroupChange | ( | void | ) |
Definition at line 5306 of file chcanv.cpp.
void ChartCanvas::UpdateCanvasS52PLIBConfig | ( | ) |
Definition at line 11359 of file chcanv.cpp.
void ChartCanvas::UpdateFollowButtonState | ( | void | ) |
Definition at line 4913 of file chcanv.cpp.
void ChartCanvas::UpdateGPSCompassStatusBox | ( | bool | b_force_new | ) |
Definition at line 13804 of file chcanv.cpp.
void ChartCanvas::UpdateShips | ( | ) |
Definition at line 6820 of file chcanv.cpp.
void ChartCanvas::WarpPointerDeferred | ( | int | x, |
int | y | ||
) |
Definition at line 11351 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 4642 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 4636 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 |