NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
crs_factory.h
Go to the documentation of this file.
1 #ifndef SDK_CRS_FACTORY_INTERFACE_H_
12 #define SDK_CRS_FACTORY_INTERFACE_H_
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
17 #include <base/inc/sdk_results.h>
23 
24 namespace sdk {
25 namespace crs { // coordinate systems
26 
27 // Classes declared in other files.
28 FWD_DECL_INTERFACE(IBasicTransformation);
29 FWD_DECL_INTERFACE(IProjectionParameters);
30 FWD_DECL_INTERFACE(IProjection);
31 FWD_DECL_INTERFACE(IEllipsoid);
32 FWD_DECL_INTERFACE(IGeographicCoordinateSystem);
33 FWD_DECL_INTERFACE(IHorizontalCoordinateSystem);
34 FWD_DECL_INTERFACE(IVerticalCoordinateSystem);
35 FWD_DECL_INTERFACE(IProjectedCoordinateSystem);
36 
37 // Classes declared in this file.
38 FWD_DECL_INTERFACE(ICoordinateSystemFactory);
39 
43 public:
45  virtual SDKResult SDK_CALLTYPE CreateBasicTransformation(
46  IBasicTransformation** basic_transformation) throw() = 0;
47 
49  virtual SDKResult SDK_CALLTYPE CreateDefaultProjectionParameters(
50  ProjectionClassID projection_class,
51  IProjectionParameters** projection_parameters) throw() = 0;
52 
54  virtual SDKResult SDK_CALLTYPE CreateEllipsoid(
55  double semi_major_axis,
56  double semi_minor_axis,
57  LinearUnit axis_unit,
58  IEllipsoid** ellipsoid) throw() = 0;
59 
61  virtual SDKResult SDK_CALLTYPE CreateEllipsoidByHorizontalDatum(
62  HorizontalDatum hordat,
63  IEllipsoid** ellipsoid) throw() = 0;
64 
67  virtual SDKResult SDK_CALLTYPE CreateProjection(
68  ProjectionClassID projection_class,
69  IProjectionParameters* projection_parameters,
70  IProjection** projection) throw() = 0;
71 
73  virtual SDKResult SDK_CALLTYPE CreateGeographicCoordinateSystem(
74  AngularUnit angular_unit,
75  AngularUnitType angular_unit_type,
76  HorizontalDatum hordat,
77  IEllipsoid* ellipsoid,
78  IGeographicCoordinateSystem** gcrs) throw() = 0;
79 
81  virtual SDKResult SDK_CALLTYPE CreateProjectedCoordinateSystem(
82  HorizontalDatum hordat,
83  LinearUnit linear_unit,
85  IProjection* projection,
86  IProjectedCoordinateSystem** pcrs) throw() = 0;
87 
89  virtual SDKResult SDK_CALLTYPE CreateVerticalCoordinateSystem(
90  VerticalDatum verdat,
91  LinearUnit linear_unit,
92  PositiveDirection positive_direction,
93  IVerticalCoordinateSystem** vcrs) throw() = 0;
94 
96  virtual SDKResult SDK_CALLTYPE CreateGeodesicCalculator(
97  GeodesicCalculationType calculation_type,
98  IGeodesicCalculation** calc) throw() = 0;
99 
100  SDK_IMPLEMENT_IID(ICoordinateSystemFactory)
101  SDK_END_INTERFACE(ICoordinateSystemFactory)
102 };
103 SDK_DECLARE_IID(ICoordinateSystemFactory)
104 
105 } // namespace crs
106 } // namespace sdk
107 
108 #endif // SDK_CRS_FACTORY_INTERFACE_H_
sdk::crs::IEllipsoid
Provides access to members that control the properties of the ellipsoids.
Definition: crs_ellipsoid.h:30
sdk::crs::ICoordinateSystemFactory::CreateProjectedCoordinateSystem
virtual SDKResult SDK_CALLTYPE CreateProjectedCoordinateSystem(HorizontalDatum hordat, LinearUnit linear_unit, IGeographicCoordinateSystem *gcrs, IProjection *projection, IProjectedCoordinateSystem **pcrs)=0
Creates the projected coordinate system.
sdk::crs::ICoordinateSystemFactory::CreateDefaultProjectionParameters
virtual SDKResult SDK_CALLTYPE CreateDefaultProjectionParameters(ProjectionClassID projection_class, IProjectionParameters **projection_parameters)=0
Creates projection parameters specified by projection class.
sdk::crs::ICoordinateSystemFactory::CreateGeographicCoordinateSystem
virtual SDKResult SDK_CALLTYPE CreateGeographicCoordinateSystem(AngularUnit angular_unit, AngularUnitType angular_unit_type, HorizontalDatum hordat, IEllipsoid *ellipsoid, IGeographicCoordinateSystem **gcrs)=0
Creates the geographic coordinate system.
sdk::crs::IGeographicCoordinateSystem
Provides access to members that control access to all properties of horizontal (geographic) coordinat...
Definition: crs_geographic_coordinate_system.h:42
sdk_results.h
A list of SDK error/return results.
crs_geodesic_calculation.h
Describes the interface that manages the geodesic calculations.
base_types.h
SDK base types.
sdk::crs::IVerticalCoordinateSystem
Provides access to members that control access to the properties of the vertical coordinate system.
Definition: crs_vertical_coordinate_system.h:85
AngularUnitType
AngularUnitType
Describes the angular unit type for the geographic coordinate system.
Definition: crs_const.h:137
sdk::crs::GeodesicCalculationType
GeodesicCalculationType
Type of geodesic calculations.
Definition: crs_geodesic_calculation.h:28
sdk::crs::ICoordinateSystemFactory::CreateEllipsoidByHorizontalDatum
virtual SDKResult SDK_CALLTYPE CreateEllipsoidByHorizontalDatum(HorizontalDatum hordat, IEllipsoid **ellipsoid)=0
Creates an ellipsoid specified by the HorizontalDatum.
AngularUnit
double AngularUnit
Defines the angular unit. The value is the number of degrees per angular unit.
Definition: crs_const.h:133
sdk::crs::HorizontalDatum
HorizontalDatum
The horizontal datums.
Definition: crs_horizontal_coordinate_system.h:41
crs_projection.h
Describes the interface that manages projection parameters.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk_component_interface.h
Common base SDK interfaces.
sdk::crs::ICoordinateSystemFactory
Creates coordinate system objects.
Definition: crs_factory.h:42
sdk::crs::IProjectedCoordinateSystem
Provides access to members that control the properties and methods for the projected coordinate syste...
Definition: crs_projected_coordinate_system.h:35
sdk::crs::ICoordinateSystemFactory::CreateProjection
virtual SDKResult SDK_CALLTYPE CreateProjection(ProjectionClassID projection_class, IProjectionParameters *projection_parameters, IProjection **projection)=0
Creates projection specified by projection class and projection parameters.
sdk::crs::ICoordinateSystemFactory::CreateEllipsoid
virtual SDKResult SDK_CALLTYPE CreateEllipsoid(double semi_major_axis, double semi_minor_axis, LinearUnit axis_unit, IEllipsoid **ellipsoid)=0
Creates an ellipsoid.
platform.h
Describes the platform constants.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
crs_const.h
Defines constants for the coordinate systems.
sdk::crs::ICoordinateSystemFactory::CreateVerticalCoordinateSystem
virtual SDKResult SDK_CALLTYPE CreateVerticalCoordinateSystem(VerticalDatum verdat, LinearUnit linear_unit, PositiveDirection positive_direction, IVerticalCoordinateSystem **vcrs)=0
Creates the projected coordinate system.
crs_vertical_coordinate_system.h
Describes interfaces that manages the vertical coordinate system parameters.
sdk::crs::VerticalDatum
VerticalDatum
List of the vertical datums.
Definition: crs_vertical_coordinate_system.h:32
sdk::crs::ICoordinateSystemFactory::CreateBasicTransformation
virtual SDKResult SDK_CALLTYPE CreateBasicTransformation(IBasicTransformation **basic_transformation)=0
Creates a basic transformation object.
sdk::crs::IProjectionParameters
Projection parameters.
Definition: crs_projection.h:89
sdk::crs::PositiveDirection
PositiveDirection
Defines the positive direction.
Definition: crs_vertical_coordinate_system.h:77
crs_horizontal_coordinate_system.h
Describes the interface that manages a horizontal coordinate system parameters.
sdk::crs::ICoordinateSystemFactory::CreateGeodesicCalculator
virtual SDKResult SDK_CALLTYPE CreateGeodesicCalculator(GeodesicCalculationType calculation_type, IGeodesicCalculation **calc)=0
Returns the geodesic calculator.
ProjectionClassID
ProjectionClassID
Projection classes.
Definition: crs_const.h:311
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::crs::IGeodesicCalculation
Provides basic transformations.
Definition: crs_geodesic_calculation.h:42
LinearUnit
SDK_CRS_BEGIN_NAMESPACE typedef double LinearUnit
Defines the linear unit. The value is the number of meters per linear unit.
Definition: crs_const.h:128
sdk::crs::IProjection
Provides access to members that control the properties and methods for the projection.
Definition: crs_projection.h:31