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;
14 RouteList m_shipRouteList;
15 IGVOShipRouteListObserver * m_observer = nullptr;
16 size_t m_maxRouteCountWithoutFavorits = 30; //!<@brief
\82¨
\8bC
\82É
\93ü
\82è
\82ð
\8f\9c\8aO
\82µ
\82½
\8dq
\98H
\95Û
\91¶
\90\94
19 GVOShipRouteList() = default;
20 ~GVOShipRouteList() = default;
22 void setObserver( IGVOShipRouteListObserver * observer )
24 m_observer = observer;
29 void addRoutePoint(const GVONormalizedPoint point);
31 const RouteList & getList() const
33 return m_shipRouteList;
36 GVOShipRoutePtr getRouteAtReverseIndex( int reverseIndex )
38 if ( m_shipRouteList.size() <= (size_t)reverseIndex ) {
41 RouteList::iterator it;
42 it = m_shipRouteList.begin();
43 std::advance( it, indexFromReverseIndex( reverseIndex ) );
44 _ASSERT( *it != nullptr );
48 int reverseIndexFromShipRoute( GVOShipRoutePtr shipRoute ) const
50 auto it = std::find( m_shipRouteList.crbegin(), m_shipRouteList.crend(), shipRoute );
51 if ( it == m_shipRouteList.crend() ) {
54 const int reverseIndex = std::distance( m_shipRouteList.crbegin(), it );
58 //void removeShipRouteAtReverseIndex( int reverseIndex );
60 void removeShipRoute( GVOShipRoutePtr shipRoute );
64 void joinPreviousRouteAtReverseIndex( int reverseIndex );
66 int indexFromReverseIndex( int reverseIndex ) const
68 return m_shipRouteList.size() - reverseIndex - 1;
74 //!@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
75 class IGVOShipRouteListObserver {
77 IGVOShipRouteListObserver() = default;
78 virtual ~IGVOShipRouteListObserver() = default;
80 virtual void onShipRouteListAddRoute( GVOShipRoutePtr shipRoute ) = 0;
81 virtual void onShipRouteListUpdateRoute( GVOShipRoutePtr shipRoute ) = 0;
82 virtual void onShipRouteListRemoveItem( GVOShipRoutePtr shipRoute ) = 0;
83 virtual void onShipRouteListRemoveAllItems() = 0;