FlowEngine 8.031
Photogrammetry Software Development Kit
Loading...
Searching...
No Matches
ProjectedCoordinateSystemInterface.h
Go to the documentation of this file.
1/*
2 *
3 * C@@o ____ _____ __ _
4 * oC8@@@@@@@o |___ \| __ \ / _| |
5 * o@@@@@@@@@@@@O __) | | | | |_| | _____ __
6 * O@O 8@@@@@@@@@O |__ <| | | | _| |/ _ \ \ /\ / /
7 * o@@@@@@@O OOOOOCo ___) | |__| | | | | (_) \ V V /
8 * C@@@@@@@@@@@@Oo |____/|_____/|_| |_|\___/ \_/\_/
9 * o8@@@@@@@@@@@@@@@@8OOCCCC
10 * oO@@@@@@@@@@@@@@@@@@@o 3Dflow s.r.l. - www.3dflow.net
11 * oO8@@@@@@@@@@@@o Copyright 2022
12 * oO88@@@@@@@@8OCo All Rights Reserved
13 * O@@@@@@@@@@@@@@@@@@@@@@@@@8OCCoooooooCCo
14 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O
15 * @@@Oo oO8@@@@@@@@@@@@@@@@8
16 *
17 */
18
19#ifndef FLOWENGINEPCS_H
20#define FLOWENGINEPCS_H
21
22#pragma once
23
24#include "CommonDef.h"
25
26namespace FlowEngine
27{
35 {
36 public:
37
38 FLE_DLL virtual ~ProjectedCoordinateSystemInterface() = default;
39
40 public:
41
44 FLE_DLL virtual bool isValid() const = 0;
45
46 public:
47
54 FLE_DLL virtual Result importFromWTK( ConstStringBuffer wtk ) = 0;
55
58
72 FLE_DLL virtual Result setGeoid( ConstStringBuffer filePath ) = 0;
73
76 FLE_DLL virtual Size getWellKnownTextLength() const = 0;
77
86 FLE_DLL virtual Result getWellKnownText( StringBuffer outWtk ) const = 0;
87
88 public:
89
91 FLE_DLL virtual Size getNameLength() const = 0;
92
102 FLE_DLL virtual Result getName( StringBuffer outName ) const = 0;
103
104 public:
105
107 FLE_DLL virtual Size getUnitNameLength() const = 0;
108
118 FLE_DLL virtual Result getUnitName( StringBuffer outUnitName ) const = 0;
119
120 public:
121
123 FLE_DLL virtual Size getProjectionNameLength() const = 0;
124
134 FLE_DLL virtual Result getProjectionName( StringBuffer outProjectionName ) const = 0;
135
137 FLE_DLL virtual void getProjectionParameters( double &outScaleFactor,
138 double &outCentralMeridian,
139 double &outLatitudeOfOrigin,
140 double &outFalseEasting,
141 double &outFalseNorthing ) const = 0;
142
143 public:
144
146 FLE_DLL virtual Size getSpheroidNameLength() const = 0;
147
157 FLE_DLL virtual Result getSpheroidName( StringBuffer outSpheroidName ) const = 0;
158
161 FLE_DLL virtual void getSpheroidParameters( double &outInverseFlattening,
162 double &outSemiMajorAxis ) const = 0;
163
164 public:
165
167 FLE_DLL virtual Size getPrimeMeridianNameLength() const = 0;
168
178 FLE_DLL virtual Result getPrimeMeridianName( StringBuffer outPrimeMeridianName ) const = 0;
179
181 FLE_DLL virtual Size getGeodeticDatumNameLength() const = 0;
182
192 FLE_DLL virtual Result getGeodeticDatumName( StringBuffer outGeodeticDatumName ) const = 0;
193
194 public:
195
198 FLE_DLL virtual Size getEPSGCodeLength() const = 0;
199
208 FLE_DLL virtual Result getEPSGCode( StringBuffer outId ) const = 0;
209
210 public:
211
218 FLE_DLL virtual Result convertToGS( Point3 &inOutCoordinates ) const = 0;
219
226 FLE_DLL virtual Result convertFromGS( Point3 &inOutCoordinates ) const = 0;
227 };
228
232
236}
237
238#endif
#define FLOWENGINE_FACTORY
Definition: CommonDef.h:32
Represents a Projected Coordinate System (PCS).
Definition: ProjectedCoordinateSystemInterface.h:35
virtual FLE_DLL Result convertToGS(Point3 &inOutCoordinates) const =0
virtual FLE_DLL Result getSpheroidName(StringBuffer outSpheroidName) const =0
virtual FLE_DLL ~ProjectedCoordinateSystemInterface()=default
virtual FLE_DLL Size getSpheroidNameLength() const =0
Retrieves the length of this PCS spheroid name.
virtual FLE_DLL Result getProjectionName(StringBuffer outProjectionName) const =0
virtual FLE_DLL Size getProjectionNameLength() const =0
Retrieves the length of this PCS projection name.
virtual FLE_DLL Result convertFromGS(Point3 &inOutCoordinates) const =0
virtual FLE_DLL Result setGeoid(ConstStringBuffer filePath)=0
Loads and associate a geoid to this PCS.
virtual FLE_DLL Result importFromWTK(ConstStringBuffer wtk)=0
virtual FLE_DLL Size getEPSGCodeLength() const =0
virtual FLE_DLL Result getPrimeMeridianName(StringBuffer outPrimeMeridianName) const =0
virtual FLE_DLL Size getWellKnownTextLength() const =0
virtual FLE_DLL Size getPrimeMeridianNameLength() const =0
virtual FLE_DLL Result getWellKnownText(StringBuffer outWtk) const =0
virtual FLE_DLL void getSpheroidParameters(double &outInverseFlattening, double &outSemiMajorAxis) const =0
virtual FLE_DLL Result loadFromWellKnownText(ConstStringBuffer wtk)=0
Equivalent to importFromWTK.
virtual FLE_DLL void getProjectionParameters(double &outScaleFactor, double &outCentralMeridian, double &outLatitudeOfOrigin, double &outFalseEasting, double &outFalseNorthing) const =0
Retrieves information about this PCS projection method parameters.
virtual FLE_DLL Result getGeodeticDatumName(StringBuffer outGeodeticDatumName) const =0
virtual FLE_DLL Size getNameLength() const =0
virtual FLE_DLL Result getUnitName(StringBuffer outUnitName) const =0
virtual FLE_DLL Result getEPSGCode(StringBuffer outId) const =0
virtual FLE_DLL Size getUnitNameLength() const =0
Retrieves the length of this PCS unit.
virtual FLE_DLL Result getName(StringBuffer outName) const =0
virtual FLE_DLL bool isValid() const =0
virtual FLE_DLL Size getGeodeticDatumNameLength() const =0
Definition: BoundingBoxInterface.cpp:26
void DestroyProjectedCoordinateSystem(ProjectedCoordinateSystemInterface *pcs)
Definition: ProjectedCoordinateSystemInterface.cpp:32
ProjectedCoordinateSystemInterface * CreateProjectedCoordinateSystem()
Definition: ProjectedCoordinateSystemInterface.cpp:27
std::size_t Size
Size type.
Definition: CommonDef.h:103
Result
Enumerates possible results generated by FlowEngine.
Definition: CommonDef.h:45
Specialization for a Buffer of characters.
Definition: CommonDef.h:255
Specialization for a const buffer characters.
Definition: CommonDef.h:296
a three dimensional point
Definition: CommonDef.h:375