Fesapi  0.13.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
DeviationSurveyRepresentation.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_0_1/WellboreTrajectoryRepresentation.h"
22 
23 namespace RESQML2_NS
24 {
25  class MdDatum;
26 }
27 
28 namespace RESQML2_0_1_NS
29 {
30  class WellboreTrajectoryRepresentation;
31 
33  {
34  public:
35 
39  DeviationSurveyRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) :AbstractRepresentation(partialObject) {}
40 
41 
50  DeviationSurveyRepresentation(class WellboreInterpretation* interp, const std::string & guid, const std::string & title, const bool & isFinal, RESQML2_NS::MdDatum * mdInfo);
51 
55  DeviationSurveyRepresentation(gsoap_resqml2_0_1::_resqml2__DeviationSurveyRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
56 
58 
59  static const char* XML_TAG;
60  virtual std::string getXmlTag() const {return XML_TAG;}
61 
62  /*
63  * Set the geometry of the representation by means of a parametric line without MD information.
64  * @param firstStationLocation XYZ location of the first station of the deviation survey in the local CRS. It must be three doubles. It is not created and not deleted by this method.
65  * @param stationCount Number of stations (including the first station location).
66  * @param mdUom Units of measure of the measured depths along this deviation survey.
67  * @param mds MD values for the position of the stations. Array length equals station count.
68  * @param angleUom Defines the units of measure for the azimuth and inclination
69  * @param azimuths An array of azimuth angles, one for each survey station. The rotation is relative to the projected CRS north with a positive value indicating a clockwise rotation as seen from above. Array length equals station count.
70  * @param inclinations Dip (or inclination) angle for each station. Array length equals station count.
71  * @param proxy The HDF proxy which indicates in which HDF5 file the numerical values will be stored.
72  * It must be already opened for writing and won't be closed.
73  */
74  void setGeometry(double * firstStationLocation, const ULONG64 & stationCount,
75  const gsoap_resqml2_0_1::eml20__LengthUom & mdUom, double * mds,
76  const gsoap_resqml2_0_1::eml20__PlaneAngleUom & angleUom, double * azimuths, double * inclinations,
78 
82  void setMdDatum(RESQML2_NS::MdDatum* mdDatum);
83 
87  gsoap_resqml2_0_1::eml20__DataObjectReference* getMdDatumDor() const;
88 
92  RESQML2_NS::MdDatum * getMdDatum() const;
93 
97  std::string getMdDatumUuid() const;
98 
102  bool isFinal() const;
103 
107  ULONG64 getXyzPointCountOfPatch(const unsigned int & patchIndex) const;
108 
114  void getXyzPointsOfPatch(const unsigned int & patchIndex, double * xyzPoints) const;
115 
119  gsoap_resqml2_0_1::eml20__LengthUom getMdUom() const;
120 
124  gsoap_resqml2_0_1::eml20__PlaneAngleUom getAngleUom() const;
125 
131  void getMdValues(double* values);
132 
138  void getInclinations(double* values);
139 
146  void getAzimuths(double* values);
147 
151  std::vector<class WellboreFrameRepresentation*> getWellboreFrameRepresentationSet() const;
152 
157  unsigned int getWellboreFrameRepresentationCount() const;
158 
164  class WellboreFrameRepresentation* getWellboreFrameRepresentation(unsigned int index) const;
165 
169  const std::vector<class WellboreTrajectoryRepresentation*>& getWellboreTrajectoryRepresentationSet() const;
170 
175  unsigned int getWellboreTrajectoryRepresentationCount() const;
176 
182  class WellboreTrajectoryRepresentation* getWellboreTrajectoryRepresentation(const unsigned int & index) const;
183 
184  std::string getHdfProxyUuid() const;
185 
186  unsigned int getPatchCount() const {return 1;}
187 
188  protected:
189 
190  friend void WellboreTrajectoryRepresentation::setDeviationSurvey(DeviationSurveyRepresentation* deviationSurvey);
191 
192  void addTrajectory(class WellboreTrajectoryRepresentation* trajectory);
193 
194  std::vector<epc::Relationship> getAllEpcRelationships() const;
195  void importRelationshipSetFromEpc(COMMON_NS::EpcDocument* epcDoc);
196 
197  // XML backward relationships
198  std::vector<class WellboreTrajectoryRepresentation*> wbTrajectoryRepSet;
199  };
200 }
201 
Definition: WellboreTrajectoryRepresentation.h:30
DeviationSurveyRepresentation(gsoap_resqml2_0_1::_resqml2__DeviationSurveyRepresentation *fromGsoap)
Definition: DeviationSurveyRepresentation.h:55
virtual std::string getXmlTag() const
Definition: DeviationSurveyRepresentation.h:60
Definition: DeviationSurveyRepresentation.h:32
Definition: AbstractRepresentation.h:31
Definition: EpcDocument.h:65
Definition: EpcDocument.h:154
Definition: WellboreFrameRepresentation.h:31
Definition: AbstractHdfProxy.h:30
Definition: WellboreInterpretation.h:26
Definition: MdDatum.h:31
DeviationSurveyRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: DeviationSurveyRepresentation.h:39
Definition: EpcDocument.h:49