Fesapi  0.13.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
AbstractLocal3dCrs.h
1 /*-----------------------------------------------------------------------
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"; you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18 -----------------------------------------------------------------------*/
19 #pragma once
20 
21 #include "resqml2/MdDatum.h"
22 
23 namespace RESQML2_NS
24 {
25  class DLL_IMPORT_OR_EXPORT AbstractLocal3dCrs : public COMMON_NS::AbstractObject
26  {
27  protected:
28 
32  AbstractLocal3dCrs(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
33 
35 
39  AbstractLocal3dCrs(gsoap_resqml2_0_1::resqml2__AbstractLocal3dCrs* fromGsoap):
40  COMMON_NS::AbstractObject(fromGsoap) {}
41 
46  virtual double getZOffset() const = 0;
47 
48  public:
49 
53  virtual ~AbstractLocal3dCrs() {}
54 
59  void addRepresentation(class AbstractRepresentation* rep);
60 
64  double getOriginOrdinal1() const;
65 
69  double getOriginOrdinal2() const;
70 
75  double getOriginDepthOrElevation() const;
76 
82  double getArealRotation() const;
83 
87  bool isDepthOriented() const;
88 
92  bool isProjectedCrsDefinedWithEpsg() const;
93 
97  virtual bool isProjectedCrsUnknown() const;
98 
102  const std::string & getProjectedCrsUnknownReason() const;
103 
107  unsigned long long getProjectedCrsEpsgCode() const;
108 
112  bool isVerticalCrsDefinedWithEpsg() const;
113 
117  bool isVerticalCrsUnknown() const;
118 
122  const std::string & getVerticalCrsUnknownReason() const;
123 
127  unsigned long long getVerticalCrsEpsgCode() const;
128 
132  std::string getVerticalCrsUnitAsString() const;
133 
134  gsoap_resqml2_0_1::eml20__PlaneAngleUom getArealRotationUom() const;
135 
139  gsoap_resqml2_0_1::eml20__LengthUom getProjectedCrsUnit() const;
140 
144  std::string getProjectedCrsUnitAsString() const;
145 
149  gsoap_resqml2_0_1::eml20__LengthUom getVerticalCrsUnit() const;
150 
154  gsoap_resqml2_0_1::eml20__AxisOrder2d getAxisOrder() const;
155 
159  void setAxisOrder(const gsoap_resqml2_0_1::eml20__AxisOrder2d & axisOrder) const;
160 
161  void convertXyzPointsToGlobalCrs(double * xyzPoints, const ULONG64 & xyzPointCount, bool withoutTranslation = false) const;
162 
163  protected:
164 
165  std::vector<epc::Relationship> getAllEpcRelationships() const;
167 
168  // XML backward relationship
169  std::vector<class AbstractRepresentation*> repSet;
170  std::vector<MdDatum*> mdDatumSet;
171 
172  private:
177  void addMdDatum(MdDatum* mdInfo);
178 
179  friend void MdDatum::setLocalCrs(AbstractLocal3dCrs * localCrs);
180  };
181 }
182 
AbstractLocal3dCrs(gsoap_resqml2_0_1::resqml2__AbstractLocal3dCrs *fromGsoap)
Definition: AbstractLocal3dCrs.h:39
AbstractLocal3dCrs(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: AbstractLocal3dCrs.h:32
Definition: AbstractRepresentation.h:31
virtual ~AbstractLocal3dCrs()
Definition: AbstractLocal3dCrs.h:53
void setLocalCrs(class AbstractLocal3dCrs *localCrs)
Definition: MdDatum.cpp:75
Definition: EpcDocument.h:154
Definition: AbstractObject.h:27
void importRelationshipSetFromEpc(COMMON_NS::EpcDocument *epcDoc)
Definition: AbstractLocal3dCrs.h:166
Definition: MdDatum.h:31
Definition: AbstractLocal3dCrs.h:25
Definition: AbstractHdfProxy.h:28
Definition: EpcDocument.h:49