NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
ownship_interface.h
Go to the documentation of this file.
1 
9 #ifndef SDK_ECDISLAYER_OWNSHIP_INTERFACE_H_
10 #define SDK_ECDISLAYER_OWNSHIP_INTERFACE_H_
11 
12 #include <base/inc/platform.h>
13 #include <base/inc/base_types.h>
14 #include <base/inc/forward_declarations.h>
22 
23 SDK_VESSELS_BEGIN_NAMESPACE
24 
29 
34 public:
40  virtual SDKResult SDK_CALLTYPE GetOwnShipObject(
41  SDKUInt64 id, IOwnShipObject** own_ship_object) throw() = 0;
42 
43  SDK_IMPLEMENT_IID(IOwnShipDataset)
44  SDK_END_INTERFACE(IOwnShipDataset)
45 };
46 SDK_DECLARE_IID(IOwnShipDataset)
47 
48 const SDKUInt32 kTimePeriod_Undefined = 0;
49 const SDKUInt32 kTimeInterval_Undefined = 0;
50 
53 class IOwnShipObject : public IVessel {
54 public:
58  virtual SDKResult SDK_CALLTYPE SetPosition(
59  const SDKGeoPoint& position) throw() = 0;
60 
64  virtual SDKResult SDK_CALLTYPE GetPosition(
65  SDKGeoPoint& position) throw() = 0;
66 
70  virtual SDKResult SDK_CALLTYPE GetPastTrack(
71  SDKUInt32 time_period,
72  sdk::geometry::IGeometry** past_track) throw() = 0;
73 
77  virtual SDKResult SDK_CALLTYPE SetHistoricalPastPositions(
78  const IPastPositionsSP& positions) throw() = 0;
79 
83  virtual SDKResult SDK_CALLTYPE GetHistoricalPastTrack(
84  /*SDKUInt32 time_period, */
85  SDKUInt32 time_interval,
86  sdk::geometry::IGeometry** past_track) throw() = 0;
87 
92  virtual SDKResult SDK_CALLTYPE GetPastPositions(
93  SDKUInt32 time_period,
94  SDKUInt32 time_interval,
95  IPastPositionsSP& positions) throw() = 0;
96 
98  virtual SDKResult SDK_CALLTYPE GetHistoricalPastPositions(
99  SDKUInt32 time_interval,
100  IPastPositionsSP& positions) throw() = 0;
101 
103  virtual SDKResult SDK_CALLTYPE ResetPastTrack() throw() = 0;
104 
108  virtual SDKResult SDK_CALLTYPE SetDistanceLines(
109  const IDistanceLinesSP& positions) throw() = 0;
110 
112  virtual SDKResult SDK_CALLTYPE GetDistanceLines(
113  IDistanceLinesSP& positions) throw() = 0;
114 
120  virtual SDKResult SDK_CALLTYPE SetSpeedVectors(
121  double bow_value, double stern_value, double cs_value) throw() = 0;
122 
128  virtual SDKResult SDK_CALLTYPE GetSpeedVectors(
129  double& bow_value, double& stern_value, double& cs_value) throw() = 0;
130 
134  virtual SDKResult SDK_CALLTYPE SetPastPositions(
135  const IPastPositionsSP& positions) throw() = 0;
136 
137  SDK_IMPLEMENT_IID(IOwnShipObject)
138  SDK_END_INTERFACE(IOwnShipObject)
139 };
140 SDK_DECLARE_IID(IOwnShipObject)
141 
142 class IPastPositions : public ISDKComponent
145 {
146 public:
148  virtual SDKResult SDK_CALLTYPE Count(SDKUInt32& count) const throw() = 0;
149 
151  virtual SDKResult SDK_CALLTYPE GetPosition(SDKUInt32 index,
152  SDKGeoPoint& position) const throw() = 0;
153 
155  virtual SDKResult SDK_CALLTYPE GetUniversalTime(SDKUInt32 index,
156  SDKTime& utc) const throw() = 0;
157 
159  virtual SDKResult SDK_CALLTYPE GetPrevPosition(SDKUInt32 index,
160  SDKUInt32 step_num,
161  SDKGeoPoint& position) const throw() = 0;
162 
164  virtual SDKResult SDK_CALLTYPE GetNextPosition(SDKUInt32 index,
165  SDKUInt32 step_num,
166  SDKGeoPoint& position) const throw() = 0;
167 
168  SDK_IMPLEMENT_IID(IPastPositions)
169  SDK_END_INTERFACE(IPastPositions)
170 };
171 SDK_DECLARE_IID(IPastPositions)
172 
173 class IDistanceLines : public ISDKComponent
176 {
177 public:
179  virtual SDKResult SDK_CALLTYPE Count(SDKUInt32& count) const noexcept = 0;
180 
182  virtual SDKResult SDK_CALLTYPE GetHullPointPosition(SDKUInt32 index,
183  SDKGeoPoint& position) const noexcept = 0;
184 
186  virtual SDKResult SDK_CALLTYPE GetDestPointPosition(SDKUInt32 index,
187  SDKGeoPoint& position) const noexcept = 0;
188 
190  virtual SDKResult SDK_CALLTYPE GetHullPointType(SDKUInt32 index,
191  SDKUInt32& type) const noexcept = 0;
192 
194  virtual SDKResult SDK_CALLTYPE GetDistance(SDKUInt32 index,
195  double& distance) const noexcept = 0;
196 
198  virtual SDKResult SDK_CALLTYPE GetDestFeature(SDKUInt32 index,
199  IFeatureSP& feature) const noexcept = 0;
200 
202  virtual SDKResult SDK_CALLTYPE SetDestPointPositionByHPType(SDKUInt32 index,
203  const SDKGeoPoint& position) noexcept = 0;
204 
205  SDK_IMPLEMENT_IID(IDistanceLines)
206  SDK_END_INTERFACE(IDistanceLines)
207 };
208 SDK_DECLARE_IID(IDistanceLines)
209 
210 SDK_VESSELS_END_NAMESPACE
211 
212 #endif // SDK_ECDISLAYER_OWNSHIP_INTERFACE_H_
ownship_const.h
Defines constants for Own Ship.
IOwnShipObject::GetDistanceLines
virtual SDKResult SDK_CALLTYPE GetDistanceLines(IDistanceLinesSP &positions)=0
Returns the ownship distance lines.
IPastPositions::Count
virtual SDKResult SDK_CALLTYPE Count(SDKUInt32 &count) const =0
Retrieves the amount of past positions.
geometry.h
Describes interfaces that manages a geometry objects.
IOwnShipObject::SetPastPositions
virtual SDKResult SDK_CALLTYPE SetPastPositions(const IPastPositionsSP &positions)=0
Sets the past track associated with the Vessel object (overwrites the current track).
base_types.h
SDK base types.
IOwnShipObject::SetSpeedVectors
virtual SDKResult SDK_CALLTYPE SetSpeedVectors(double bow_value, double stern_value, double cs_value)=0
Sets the ownship speed vectors.
vessels_const.h
Defines Vessels constants.
IOwnShipDataset
Provides access to members that provide information about a OwnShip dataset.
Definition: ownship_interface.h:33
IOwnShipObject::GetHistoricalPastPositions
virtual SDKResult SDK_CALLTYPE GetHistoricalPastPositions(SDKUInt32 time_interval, IPastPositionsSP &positions)=0
Returns the historical past positions with the specified interval.
IDistanceLines::GetDistance
virtual SDKResult SDK_CALLTYPE GetDistance(SDKUInt32 index, double &distance) const noexcept=0
Retrieves the distance in NM.
IDistanceLines::GetDestFeature
virtual SDKResult SDK_CALLTYPE GetDestFeature(SDKUInt32 index, IFeatureSP &feature) const noexcept=0
Retrieves the related object.
vessels_interface.h
Common Vessels interface.
properties_interface.h
Object generic properties interface.
IOwnShipObject::GetPastPositions
virtual SDKResult SDK_CALLTYPE GetPastPositions(SDKUInt32 time_period, SDKUInt32 time_interval, IPastPositionsSP &positions)=0
Returns the past positions for the specified period and with the specified interval.
IVesselDataset
Provides access to members that provide information about a VesselDataset.
Definition: vessels_interface.h:68
IDistanceLines::Count
virtual SDKResult SDK_CALLTYPE Count(SDKUInt32 &count) const noexcept=0
Retrieves the amount of distance lines.
IDistanceLines::GetHullPointType
virtual SDKResult SDK_CALLTYPE GetHullPointType(SDKUInt32 index, SDKUInt32 &type) const noexcept=0
Retrieves the hull point type.
IDistanceLines::GetHullPointPosition
virtual SDKResult SDK_CALLTYPE GetHullPointPosition(SDKUInt32 index, SDKGeoPoint &position) const noexcept=0
Retrieves geo-coordinates of the hull point.
IDistanceLines::GetDestPointPosition
virtual SDKResult SDK_CALLTYPE GetDestPointPosition(SDKUInt32 index, SDKGeoPoint &position) const noexcept=0
Retrieves geo-coordinates of the destination point.
IDistanceLines::SetDestPointPositionByHPType
virtual SDKResult SDK_CALLTYPE SetDestPointPositionByHPType(SDKUInt32 index, const SDKGeoPoint &position) noexcept=0
Sets geo-coordinates of the destination point.
IOwnShipObject::GetPastTrack
virtual SDKResult SDK_CALLTYPE GetPastTrack(SDKUInt32 time_period, sdk::geometry::IGeometry **past_track)=0
Returns the past track associated with the Vessel object.
IOwnShipObject::SetDistanceLines
virtual SDKResult SDK_CALLTYPE SetDistanceLines(const IDistanceLinesSP &positions)=0
Sets the ownship distance lines.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
IOwnShipObject::GetPosition
virtual SDKResult SDK_CALLTYPE GetPosition(SDKGeoPoint &position)=0
Returns the current vessel position.
SDKGeoPoint
Geo point in degree units.
Definition: geometry_base_types.h:1727
IPastPositions::GetNextPosition
virtual SDKResult SDK_CALLTYPE GetNextPosition(SDKUInt32 index, SDKUInt32 step_num, SDKGeoPoint &position) const =0
Retrieves the next position.
sdk_component_interface.h
Common base SDK interfaces.
IVessel
Common interface for all of vessel objects.
Definition: vessels_interface.h:96
IDistanceLines
Distance lines enumerator.
Definition: ownship_interface.h:175
IPastPositions::GetPrevPosition
virtual SDKResult SDK_CALLTYPE GetPrevPosition(SDKUInt32 index, SDKUInt32 step_num, SDKGeoPoint &position) const =0
Retrieves the previous position.
IOwnShipObject::SetPosition
virtual SDKResult SDK_CALLTYPE SetPosition(const SDKGeoPoint &position)=0
Sets the current vessel position.
platform.h
Describes the platform constants.
IOwnShipObject
Single own ship object.
Definition: ownship_interface.h:53
IPastPositions::GetUniversalTime
virtual SDKResult SDK_CALLTYPE GetUniversalTime(SDKUInt32 index, SDKTime &utc) const =0
Retrieves the position universal time.
IOwnShipObject::ResetPastTrack
virtual SDKResult SDK_CALLTYPE ResetPastTrack()=0
Deletes the past track associated with the Vessel object.
IOwnShipObject::SetHistoricalPastPositions
virtual SDKResult SDK_CALLTYPE SetHistoricalPastPositions(const IPastPositionsSP &positions)=0
Sets the historical past track.
IOwnShipDataset::GetOwnShipObject
virtual SDKResult SDK_CALLTYPE GetOwnShipObject(SDKUInt64 id, IOwnShipObject **own_ship_object)=0
Returns the pointer to the IVessel interface associated with the Vessel object specified by id.
IOwnShipObject::GetHistoricalPastTrack
virtual SDKResult SDK_CALLTYPE GetHistoricalPastTrack(SDKUInt32 time_interval, sdk::geometry::IGeometry **past_track)=0
Returns the historical past track associated with the Vessel object.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
geometry_base_types.h
Geometry base types.
IPastPositions::GetPosition
virtual SDKResult SDK_CALLTYPE GetPosition(SDKUInt32 index, SDKGeoPoint &position) const =0
Retrieves the position geo-coordinates.
SDKTime
SDK_END_NAMESPACE typedef SDKInt64 SDKTime
Milliseconds from Unix epoch.
Definition: base_types.h:56
IOwnShipObject::GetSpeedVectors
virtual SDKResult SDK_CALLTYPE GetSpeedVectors(double &bow_value, double &stern_value, double &cs_value)=0
Returns the ownship speed vectors.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
IPastPositions
Past positions enumerator.
Definition: ownship_interface.h:144