NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
crs_projection.h
Go to the documentation of this file.
1 #ifndef SDK_CRS_PROJECTION_INTERFACE_H_
11 #define SDK_CRS_PROJECTION_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
19 
20 namespace sdk {
21 namespace crs {
22 
23 // Classes declared in this file.
24 FWD_DECL_INTERFACE(IProjection);
25 FWD_DECL_INTERFACE(IProjectionParameters);
26 FWD_DECL_INTERFACE(IUTMProjection);
27 
31 class IProjection : public ISDKComponent {
32 public:
35  virtual SDKResult SDK_CALLTYPE GetProjectionClassName(
36  SDKString& class_name) const throw() = 0;
37 
40  virtual SDKResult SDK_CALLTYPE SetProjectionClassName(
41  const SDKString& class_name) throw() = 0;
42 
44  virtual SDKResult SDK_CALLTYPE GetProjectionClassID(
45  ProjectionClassID& id) const throw() = 0;
47  virtual SDKResult SDK_CALLTYPE SetProjectionClassID(
48  ProjectionClassID class_id) throw() = 0;
49 
51  virtual SDKResult SDK_CALLTYPE GetProjectionParameters(
52  IProjectionParameters** projection_parameters) const throw() = 0;
54  virtual SDKResult SDK_CALLTYPE SetProjectionParameters(
55  IProjectionParameters* projection_parameters) throw() = 0;
56 
62  virtual SDKResult SDK_CALLTYPE Clone(IProjection** clone) throw() = 0;
63 
69  virtual SDKResult SDK_CALLTYPE GetProjectionProperty(
70  const ProjectionPropertyEnum& id,
71  SDKAny& val) throw() = 0;
72 
79  virtual SDKResult SDK_CALLTYPE GetLocalScale(
80  double lat, double lon, double& scale) const throw() = 0;
81 
82  SDK_IMPLEMENT_IID(IProjection)
83  SDK_END_INTERFACE(IProjection)
84 };
85 SDK_DECLARE_IID(IProjection)
86 
87 class IProjectionParameters : public ISDKComponent {
90 public:
92  virtual SDKUInt32 SDK_CALLTYPE GetCount() const throw() = 0;
93 
95  virtual SDKResult SDK_CALLTYPE GetParameterValue(
96  SDKUInt32 index, double& value) const throw() = 0;
97 
99  virtual SDKResult SDK_CALLTYPE GetParameterID(
100  SDKUInt32 index, ProjectionParameterEnum& id) const throw() = 0;
101 
103  virtual SDKResult SDK_CALLTYPE GetParameterValueByID(
104  ProjectionParameterEnum id, double& value) const throw() = 0;
105 
107  virtual void SDK_CALLTYPE SetParameterValueByID(
108  ProjectionParameterEnum id, double value) throw() = 0;
109 
110  SDK_IMPLEMENT_IID(IProjectionParameters)
111  SDK_END_INTERFACE(IProjectionParameters)
112 };
113 SDK_DECLARE_IID(IProjectionParameters)
114 
117 class IUTMProjection : public IProjection {
118 public:
120  virtual SDKResult SDK_CALLTYPE SetZone(
121  const SDKString& zone_str) throw() = 0;
122 
123  SDK_IMPLEMENT_IID(IUTMProjection)
124  SDK_END_INTERFACE(IUTMProjection)
125 };
126 SDK_DECLARE_IID(IUTMProjection)
127 
128 } // namespace crs
129 } // namespace sdk
130 
131 #endif // SDK_CRS_PROJECTION_INTERFACE_H_
sdk::crs::IProjectionParameters::SetParameterValueByID
virtual void SDK_CALLTYPE SetParameterValueByID(ProjectionParameterEnum id, double value)=0
Sets the projection parameter value specified by id.
sdk::crs::IProjectionParameters::GetParameterValue
virtual SDKResult SDK_CALLTYPE GetParameterValue(SDKUInt32 index, double &value) const =0
Returns an indexed parameter of the projection.
sdk::crs::IProjection::GetProjectionProperty
virtual SDKResult SDK_CALLTYPE GetProjectionProperty(const ProjectionPropertyEnum &id, SDKAny &val)=0
Retrieves the projection property.
sdk::crs::IProjectionParameters::GetParameterValueByID
virtual SDKResult SDK_CALLTYPE GetParameterValueByID(ProjectionParameterEnum id, double &value) const =0
Gets the projection parameter value specified by id.
base_types.h
SDK base types.
sdk::crs::IProjection::GetProjectionClassName
virtual SDKResult SDK_CALLTYPE GetProjectionClassName(SDKString &class_name) const =0
Gets the projection classification name (e.g. 'Mercator' or 'Transverse_Mercator').
sdk::crs::IProjection::GetProjectionParameters
virtual SDKResult SDK_CALLTYPE GetProjectionParameters(IProjectionParameters **projection_parameters) const =0
Gets the projection parameters.
sdk::crs::IProjectionParameters::GetCount
virtual SDKUInt32 SDK_CALLTYPE GetCount() const =0
Returns number of parameters in the set.
sdk::crs::IProjection::SetProjectionParameters
virtual SDKResult SDK_CALLTYPE SetProjectionParameters(IProjectionParameters *projection_parameters)=0
Sets the projection parameters.
sdk::crs::IProjectionParameters::GetParameterID
virtual SDKResult SDK_CALLTYPE GetParameterID(SDKUInt32 index, ProjectionParameterEnum &id) const =0
Returns an indexed parameter of the projection.
sdk::crs::IProjection::SetProjectionClassName
virtual SDKResult SDK_CALLTYPE SetProjectionClassName(const SDKString &class_name)=0
Sets the projection classification name (e.g. 'Mercator' or 'Transverse_Mercator').
sdk_string_handler.h
Wrappers and helper functions for SDKString.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::crs::IUTMProjection
Provides access to members that control the properties and methods for the UTM projection.
Definition: crs_projection.h:117
ProjectionPropertyEnum
ProjectionPropertyEnum
Defines the projection properties.
Definition: crs_const.h:299
sdk_component_interface.h
Common base SDK interfaces.
sdk::crs::IProjection::Clone
virtual SDKResult SDK_CALLTYPE Clone(IProjection **clone)=0
Creates the clone of this projection.
platform.h
Describes the platform constants.
sdk::crs::IProjection::GetProjectionClassID
virtual SDKResult SDK_CALLTYPE GetProjectionClassID(ProjectionClassID &id) const =0
Gets the projection classification identifier.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
crs_const.h
Defines constants for the coordinate systems.
sdk::crs::IProjectionParameters
Projection parameters.
Definition: crs_projection.h:89
ProjectionParameterEnum
ProjectionParameterEnum
Parameters for the different projections. Required parameters for all projections: ProjPar_Coordinate...
Definition: crs_const.h:235
ProjectionClassID
ProjectionClassID
Projection classes.
Definition: crs_const.h:311
sdk::crs::IProjection::SetProjectionClassID
virtual SDKResult SDK_CALLTYPE SetProjectionClassID(ProjectionClassID class_id)=0
Sets the projection classification identifier.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::crs::IProjection::GetLocalScale
virtual SDKResult SDK_CALLTYPE GetLocalScale(double lat, double lon, double &scale) const =0
Returns the scale at specified position.
sdk::crs::IProjection
Provides access to members that control the properties and methods for the projection.
Definition: crs_projection.h:31