#ifdef GVO_PERF_CHECK
const int64_t perfBegin = g_queryPerformanceCounter();
#endif
-
s_renderer.render( s_latestShipVector, s_latestShipVelocity, s_shipTexture.get(), s_shipRouteList.get() );
::ValidateRect( hwnd, NULL );
s_latestShipVelocity = status.m_shipVelocity;
s_config.m_initialSurveyCoord = s_latestSurveyCoord;
s_renderer.setShipPositionInWorld( s_latestSurveyCoord );
- if ( (s_latestTimeStamp + k_surveyCoordLostThreshold) <= status.m_timeStamp ) {
+ if ( (s_latestTimeStamp + k_surveyCoordLostThreshold) < status.m_timeStamp ) {
s_closeShipRoute();
}
s_latestTimeStamp = status.m_timeStamp;
FONT 11, "MS UI Gothic", 400, 0, 128
{
ICON IDR_MAINFRAME, IDC_STATIC, 14, 14, 16, 17, SS_ICON, WS_EX_LEFT
- CONTROL "GVONavish, Version 1.0", IDC_VERSION_LABEL, WC_STATIC, SS_LEFTNOWORDWRAP | SS_NOPREFIX, 42, 14, 149, 8, WS_EX_LEFT
- CONTROL "Copyright (C) 2014", IDC_COPYRIGHT_LABEL, WC_STATIC, SS_LEFTNOWORDWRAP, 42, 26, 149, 8, WS_EX_LEFT
+ CONTROL "GVONavish, Version 1.0", IDC_VERSION_LABEL, WC_STATIC, NOT WS_GROUP | SS_LEFTNOWORDWRAP | SS_NOPREFIX, 42, 14, 149, 8, WS_EX_LEFT
+ CONTROL "Copyright (C) 2014", IDC_COPYRIGHT_LABEL, WC_STATIC, NOT WS_GROUP | SS_LEFTNOWORDWRAP, 42, 26, 149, 8, WS_EX_LEFT
DEFPUSHBUTTON "OK", IDOK, 141, 52, 50, 14, WS_GROUP, WS_EX_LEFT
LTEXT "http://gvonavish.sourceforge.jp/", 0, 42, 39, 149, 8, SS_LEFT, WS_EX_LEFT
}
CAPTION "\8dq\98H\8aÇ\97\9d\83E\83B\83\93\83h\83E"
FONT 11, "MS UI Gothic"
{
- PUSHBUTTON "\8dq\98H\91I\91ð\82ð\89ð\8f\9c\82·\82é", IDM_DESELECT_ROUTE, 7, 7, 68, 14, 0, WS_EX_LEFT
- PUSHBUTTON "\90Ý\92è", IDM_ROUTE_MANAGE_OPTION, 179, 7, 28, 14, NOT WS_VISIBLE | WS_GROUP, WS_EX_LEFT
- CONTROL "", IDC_SHIPROUTELIST, WC_LISTVIEW, WS_GROUP | WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_SHOWSELALWAYS | LVS_OWNERDATA | LVS_SINGLESEL | LVS_REPORT, 0, 26, 214, 89, WS_EX_LEFT
+ PUSHBUTTON "\91I\91ð\89ð\8f\9c", IDM_DESELECT_ROUTE, 3, 3, 35, 14, 0, WS_EX_LEFT
+ PUSHBUTTON "\90Ý\92è", IDM_ROUTE_MANAGE_OPTION, 183, 3, 28, 14, NOT WS_VISIBLE | WS_GROUP, WS_EX_LEFT
+ CONTROL "", IDC_SHIPROUTELIST, WC_LISTVIEW, WS_GROUP | WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_SHOWSELALWAYS | LVS_OWNERDATA | LVS_SINGLESEL | LVS_REPORT, 0, 22, 214, 93, WS_EX_LEFT
+ PUSHBUTTON "\8dÅ\90V\8dq\98H\82ð\92¼\91O\8dq\98H\82Æ\90Ú\91±", IDM_JOINT_LATEST_ROUTE, 40, 3, 90, 14, 0, WS_EX_LEFT
}
::glDisable( GL_LIGHTING );
::glEnable( GL_CULL_FACE );
::glCullFace( GL_BACK );
+ ::wglMakeCurrent( NULL, NULL );
}
void GVORenderer::setWorldMap( const GVOWorldMap * worldMap )
{
+ ::wglMakeCurrent( m_hdcPrimary, m_hglrc );
m_worldMap = worldMap;
m_worldMapTexture = new GVOTexture();
m_worldMapTexture->setImage( worldMap->image() );
+ ::glFlush();
+ ::wglMakeCurrent( NULL, NULL );
}
::glLoadIdentity();
::glViewport( 0, 0, m_viewSize.cx, m_viewSize.cy );
::gluOrtho2D( 0, m_viewSize.cx, m_viewSize.cy, 0 );
+ ::glFlush();
+ ::wglMakeCurrent( NULL, NULL );
}
::wglMakeCurrent( m_hdcPrimary, m_hglrc );
std::auto_ptr<GVOTexture> texture( new GVOTexture() );
texture->setImage( image );
+ ::glFlush();
::wglMakeCurrent( NULL, NULL );
return texture.release();
}
GVOVector vector( s_denormalizedPoint( line.back() ), s_denormalizedPoint( point ) );
- m_length += static_cast<int64_t>(::round( vector.length() ));
+ m_length += vector.length();
const GVONormalizedPoint & prevPoint = line.back();
if ( prevPoint.isEqualValue( point ) ) {
// \8dq\98H\8aÔ\82Ì\92·\82³\82ð\91«\82·
const double betweenLength = GVOVector( s_denormalizedPoint( prevPoint ), s_denormalizedPoint( nextPoint ) ).length();
- m_length += static_cast<int64_t>(::round( betweenLength ));
+ m_length += betweenLength;
// \90¢\8aE\82ð\8c×\82¢\82Å\82¢\82È\82¢\82æ\82¤\82È\82ç\90ü\82ð\90Ú\91±\82·\82é
if ( (std::max( prevPoint.x(), nextPoint.x() ) - std::min(prevPoint.x(), nextPoint.x())) < k_worldLoopThreshold ) {
typedef std::deque<Line> Lines;
private:
Lines m_lines;
- int64_t m_length = 0;
+ double m_length = 0.0;
bool m_favorite = false;
bool m_hilight = false;
bool m_fixed = false; //!<@brief \8dq\98H\8cÅ\92è\83t\83\89\83O
m_fixed = isFixed;
}
- int64_t length() const
+ double length() const
{
return m_length;
}
GVOShipRoutePtr prevRoute = *itPrev;
m_shipRouteList.erase( itPrev );
+
+ // remove\82µ\82½\8e\9e\82É\92Ê\92m\83n\83\93\83h\83\89\82Å\91®\90«\82ª\95Ï\8dX\82³\82ê\82Ä\82µ\82Ü\82¤\82Ì\82Å\81A
+ // \82±\82Ì\8e\9e\93_\82Å\8b\92²\91®\90«\82ð\95Û\91¶\82µ\82Ä\82¨\82\81B
+ bool isHilight = prevRoute->isHilight() | baseRoute->isHilight();
if ( m_observer ) {
m_observer->onShipRouteListRemoveItem( prevRoute );
}
baseRoute->jointPreviousLinesWithRoute( *prevRoute );
+ baseRoute->setHilight( isHilight );
// \92Ê\92m
if ( m_observer ) {
{
int reverseIndex = m_routeList->reverseIndexFromShipRoute( shipRoute );
if ( 0 <= reverseIndex ) {
+ if ( shipRoute->isHilight() ) {
+ selectRow( m_selectionIndex, false );
+ selectRow( reverseIndex, true );
+ }
ListView_RedrawItems( m_listViewCtrl, reverseIndex, reverseIndex );
}
}
ListView_RedrawItems( m_listViewCtrl, m_selectionIndex, m_selectionIndex );
}
break;
+ case IDM_JOINT_LATEST_ROUTE:
+ if ( 1 < m_routeList->getList().size() ) {
+ m_routeList->joinPreviousRouteAtReverseIndex( 0 );
+ }
+ break;
default:
break;
}
//std::vector<wchar_t> buf( 4096 );
//::swprintf( &buf[0], buf.size(), L"%.1f km", length );
//str = &buf[0];
- str = std::to_wstring( route->length() );
+ str = std::to_wstring( static_cast<int>(::round( route->length() )) );
}
break;
default:
void GVOShipRouteManageView::selectRow( int index, bool isSelection )
{
+ if ( index < 0 ) {
+ return;
+ }
ListView_SetItemState( m_listViewCtrl, index, isSelection ? LVIS_SELECTED : 0, LVIS_SELECTED );
}
#define IDM_DESELECT_ROUTE 40019
#define IDM_DEBUG_CLOSE_ROUTE 40020
#define IDM_TOGGLE_FAVORITE 40021
+#define IDM_JOINT_LATEST_ROUTE 40022