4 #include "GVOShipRoute.h"
5 #include "GVONormalizedPoint.h"
7 class GVOShipRouteList;
8 class IGVOShipRouteListObserver;
10 //!@brief
\8dq
\98H
\83\8a\83X
\83g
\8aÇ
\97\9d\83N
\83\89\83X
11 class GVOShipRouteList {
13 typedef std::list<GVOShipRoutePtr> RouteList;
16 RouteList m_shipRouteList;
17 IGVOShipRouteListObserver * m_observer = nullptr;
18 size_t m_maxRouteCountWithoutFavorits = 30; //!<@brief
\82¨
\8bC
\82É
\93ü
\82è
\82ð
\8f\9c\8aO
\82µ
\82½
\8dq
\98H
\95Û
\91¶
\90\94
21 GVOShipRouteList() = default;
22 ~GVOShipRouteList() = default;
24 //!@note
\82 \82ñ
\82Ü
\82è
\8ds
\8bV
\82ª
\97Ç
\82¢
\8e\96\82¶
\82á
\82È
\82¢
\82¯
\82ê
\82Ç
\81B
25 bool saveToFile( const std::wstring & filePath );
27 //!@note
\82 \82ñ
\82Ü
\82è
\8ds
\8bV
\82ª
\97Ç
\82¢
\8e\96\82¶
\82á
\82È
\82¢
\82¯
\82ê
\82Ç
\81B
28 bool loadFromFile( const std::wstring & filePath );
31 void setObserver( IGVOShipRouteListObserver * observer )
33 m_observer = observer;
38 void addRoutePoint(const GVONormalizedPoint point);
40 const RouteList & getList() const
42 return m_shipRouteList;
45 GVOShipRoutePtr getRouteAtReverseIndex( int reverseIndex )
47 if ( m_shipRouteList.size() <= (size_t)reverseIndex ) {
50 RouteList::iterator it;
51 it = m_shipRouteList.begin();
52 std::advance( it, indexFromReverseIndex( reverseIndex ) );
53 _ASSERT( *it != nullptr );
57 int reverseIndexFromShipRoute( GVOShipRoutePtr shipRoute ) const
59 auto it = std::find( m_shipRouteList.crbegin(), m_shipRouteList.crend(), shipRoute );
60 if ( it == m_shipRouteList.crend() ) {
63 const int reverseIndex = std::distance( m_shipRouteList.crbegin(), it );
67 void removeShipRoute( GVOShipRoutePtr shipRoute );
71 void joinPreviousRouteAtReverseIndex( int reverseIndex );
73 int indexFromReverseIndex( int reverseIndex ) const
75 return m_shipRouteList.size() - reverseIndex - 1;
81 //!@brief
\8dq
\98H
\8aÇ
\97\9d\83\8a\83X
\83g
\82ð
\8aÄ
\8e\8b\82·
\82é
\83C
\83\93\83^
\81[
\83t
\83F
\81[
\83X
82 class IGVOShipRouteListObserver {
84 IGVOShipRouteListObserver() = default;
85 virtual ~IGVOShipRouteListObserver() = default;
87 virtual void onShipRouteListAddRoute( GVOShipRoutePtr shipRoute ) = 0;
88 virtual void onShipRouteListUpdateRoute( GVOShipRoutePtr shipRoute ) = 0;
89 virtual void onShipRouteListRemoveItem( GVOShipRoutePtr shipRoute ) = 0;
90 virtual void onShipRouteListRemoveAllItems() = 0;