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<GVOShipRoute *> 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;
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 //GVOShipRoute * getRouteAtIndex( int index )
38 // if ( m_shipRouteList.size() <= (size_t)index ) {
41 // RouteList::iterator it;
42 // it = m_shipRouteList.begin();
43 // std::advance( it, index );
47 GVOShipRoute * getRouteAtReverseIndex( int reverseIndex )
49 if ( m_shipRouteList.size() <= (size_t)reverseIndex ) {
52 RouteList::iterator it;
53 it = m_shipRouteList.begin();
54 std::advance( it, indexFromReverseIndex( reverseIndex ) );
55 _ASSERT( *it != nullptr );
59 int indexFromShipRoute( GVOShipRoute & shipRoute )
61 RouteList::iterator it;
62 it = std::find( m_shipRouteList.begin(), m_shipRouteList.end(), &shipRoute );
63 if ( it == m_shipRouteList.end() ) {
66 return std::distance( m_shipRouteList.begin(), it );
69 void removeShipRouteAtReverseIndex( int reverseIndex );
73 void joinPreviousRouteAtReverseIndex( int reverseIndex );
75 int indexFromReverseIndex( int reverseIndex ) const
77 return m_shipRouteList.size() - reverseIndex - 1;
83 //!@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
84 class IGVOShipRouteListObserver {
86 IGVOShipRouteListObserver() = default;
87 virtual ~IGVOShipRouteListObserver() = default;
89 virtual void onShipRouteListAddRoute( GVOShipRoute & shipRoute ) = 0;
90 virtual void onShipRouteListUpdateRoute( GVOShipRoute & shipRoute ) = 0;
91 virtual void onShipRouteListRemoveItem( GVOShipRoute & shipRoute ) = 0;
92 virtual void onShipRouteListRemoveAllItems() = 0;