void EBL::CentreOnLatLon( double lat, double lon ) { ODPoint *pStartPoint = m_pODPointList->GetFirst()->GetData(); pStartPoint->m_lat = lat; pStartPoint->m_lon = lon; pStartPoint->m_ODPointName = _("Start"); if(pStartPoint->GetIconName() != wxEmptyString) { pStartPoint->SetIconName( g_sEBLStartIconName ); pStartPoint->ReLoadIcon(); } m_bCentreOnBoat = false; m_bSaveUpdates = true; UpdateEBL(); if(g_pEBLPropDialog && g_pEBLPropDialog->IsShown()) g_pEBLPropDialog->UpdateProperties(); RequestRefresh( g_ocpn_draw_pi->m_parent_window ); return; }
void PointMan::DeleteAllODPoints( bool b_delete_used ) { // Iterate on the ODPoint list, deleting all wxODPointListNode *node = m_pODPointList->GetFirst(); while( node ) { ODPoint *prp = node->GetData(); // if argument is false, then only delete non-path ODPoints if( !prp->m_bIsInLayer && ( prp->GetIconName() != _T("mob") ) && ( ( b_delete_used && prp->m_bKeepXPath ) || !prp->m_bIsInPath ) ) { DestroyODPoint(prp); if(prp->m_sTypeString == wxT("ODPoint")) delete prp; else if(prp->m_sTypeString == wxT("Text Point")) { delete (TextPoint *)node->GetData(); } node = m_pODPointList->GetFirst(); } else node = node->GetNext(); } return; }
void EBL::CentreOnLatLon( double lat, double lon ) { ODPoint *pStartPoint = m_pODPointList->GetFirst()->GetData(); ODPoint *pEndPoint = m_pODPointList->GetLast()->GetData(); pStartPoint->m_lat = lat; pStartPoint->m_lon = lon; DistanceBearingMercator_Plugin(pEndPoint->m_lat, pEndPoint->m_lon, pStartPoint->m_lat, pStartPoint->m_lon, &m_dEBLAngle, &m_dLength); m_bRotateWithBoat = false; m_bCentreOnBoat = false; pStartPoint->m_ODPointName = _("Start"); if(pStartPoint->GetIconName() != wxEmptyString) { pStartPoint->SetIconName( g_sEBLStartIconName ); pStartPoint->ReLoadIcon(); } m_bCentreOnBoat = false; m_bSaveUpdates = true; UpdateEBL(); if(g_pEBLPropDialog && g_pEBLPropDialog->IsShown()) g_pEBLPropDialog->UpdateProperties(); RequestRefresh( g_ocpn_draw_pi->m_parent_window ); return; }