My Project
DeviationSurveyRepresentation.h
1 /*-----------------------------------------------------------------------
2 Copyright F2I-CONSULTING, (2014-2017)
3 
4 philippe.verney@f2i-consulting.com
5 
6 This software is a computer program whose purpose is to access to data formatted using Energistics standards.
7 
8 This software is governed by the CeCILL-B license under French law and
9 abiding by the rules of distribution of free software. You can use,
10 modify and/ or redistribute the software under the terms of the CeCILL-B
11 license as circulated by CEA, CNRS and INRIA at the following URL
12 "http://www.cecill.info".
13 
14 As a counterpart to the access to the source code and rights to copy,
15 modify and redistribute granted by the license, users are provided only
16 with a limited warranty and the software's author, the holder of the
17 economic rights, and the successive licensors have only limited
18 liability.
19 
20 In this respect, the user's attention is drawn to the risks associated
21 with loading, using, modifying and/or developing or reproducing the
22 software by the user in light of its specific status of free software,
23 that may mean that it is complicated to manipulate, and that also
24 therefore means that it is reserved for developers and experienced
25 professionals having in-depth computer knowledge. Users are therefore
26 encouraged to load and test the software's suitability as regards their
27 requirements in conditions enabling the security of their systems and/or
28 data to be ensured and, more generally, to use and operate it in the
29 same conditions as regards security.
30 
31 The fact that you are presently reading this means that you have had
32 knowledge of the CeCILL-B license and that you accept its terms.
33 -----------------------------------------------------------------------*/
34 #pragma once
35 
36 #include "resqml2_0_1/WellboreTrajectoryRepresentation.h"
37 
38 namespace resqml2
39 {
40  class MdDatum;
41 }
42 
43 namespace resqml2_0_1
44 {
45  class WellboreTrajectoryRepresentation;
46 
48  {
49  public:
50 
54  DeviationSurveyRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) :AbstractRepresentation(partialObject) {}
55 
56 
65  DeviationSurveyRepresentation(class WellboreInterpretation* interp, const std::string & guid, const std::string & title, const bool & isFinal, resqml2::MdDatum * mdInfo);
66 
70  DeviationSurveyRepresentation(gsoap_resqml2_0_1::_resqml2__DeviationSurveyRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
71 
73 
74  static const char* XML_TAG;
75  virtual std::string getXmlTag() const {return XML_TAG;}
76 
77  /*
78  * Set the geometry of the representation by means of a parametric line without MD information.
79  * @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.
80  * @param stationCount Number of stations (including the first station location).
81  * @param mdUom Units of measure of the measured depths along this deviation survey.
82  * @param mds MD values for the position of the stations. Array length equals station count.
83  * @param angleUom Defines the units of measure for the azimuth and inclination
84  * @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.
85  * @param inclinations Dip (or inclination) angle for each station. Array length equals station count.
86  * @param proxy The HDF proxy which indicates in which HDF5 file the numerical values will be stored.
87  * It must be already opened for writing and won't be closed.
88  */
89  void setGeometry(double * firstStationLocation, const ULONG64 & stationCount,
90  const gsoap_resqml2_0_1::eml20__LengthUom & mdUom, double * mds,
91  const gsoap_resqml2_0_1::eml20__PlaneAngleUom & angleUom, double * azimuths, double * inclinations,
93 
97  void setMdDatum(resqml2::MdDatum* mdDatum);
98 
102  gsoap_resqml2_0_1::eml20__DataObjectReference* getMdDatumDor() const;
103 
107  resqml2::MdDatum * getMdDatum() const;
108 
112  std::string getMdDatumUuid() const;
113 
117  bool isFinal() const;
118 
122  ULONG64 getXyzPointCountOfPatch(const unsigned int & patchIndex) const;
123 
129  void getXyzPointsOfPatch(const unsigned int & patchIndex, double * xyzPoints) const;
130 
134  gsoap_resqml2_0_1::eml20__LengthUom getMdUom() const;
135 
139  gsoap_resqml2_0_1::eml20__PlaneAngleUom getAngleUom() const;
140 
146  void getMdValues(double* values);
147 
153  void getInclinations(double* values);
154 
161  void getAzimuths(double* values);
162 
166  std::vector<class WellboreFrameRepresentation*> getWellboreFrameRepresentationSet() const;
167 
172  unsigned int getWellboreFrameRepresentationCount() const;
173 
179  class WellboreFrameRepresentation* getWellboreFrameRepresentation(unsigned int index) const;
180 
184  const std::vector<class WellboreTrajectoryRepresentation*>& getWellboreTrajectoryRepresentationSet() const;
185 
190  unsigned int getWellboreTrajectoryRepresentationCount() const;
191 
197  class WellboreTrajectoryRepresentation* getWellboreTrajectoryRepresentation(const unsigned int & index) const;
198 
199  std::string getHdfProxyUuid() const;
200 
201  unsigned int getPatchCount() const {return 1;}
202 
203  protected:
204 
205  friend void WellboreTrajectoryRepresentation::setDeviationSurvey(DeviationSurveyRepresentation* deviationSurvey);
206 
207  void addTrajectory(class WellboreTrajectoryRepresentation* trajectory);
208 
209  std::vector<epc::Relationship> getAllEpcRelationships() const;
210  void importRelationshipSetFromEpc(common::EpcDocument* epcDoc);
211 
212  // XML backward relationships
213  std::vector<class WellboreTrajectoryRepresentation*> wbTrajectoryRepSet;
214  };
215 }
DeviationSurveyRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: DeviationSurveyRepresentation.h:54
DeviationSurveyRepresentation(gsoap_resqml2_0_1::_resqml2__DeviationSurveyRepresentation *fromGsoap)
Definition: DeviationSurveyRepresentation.h:70
Definition: WellboreInterpretation.h:40
Definition: DeviationSurveyRepresentation.h:47
Definition: EpcDocument.h:78
Definition: EpcDocument.h:168
Definition: WellboreTrajectoryRepresentation.h:45
virtual std::string getXmlTag() const
Definition: DeviationSurveyRepresentation.h:75
Definition: AbstractRepresentation.h:44
Definition: WellboreFrameRepresentation.h:46
Definition: MdDatum.h:46
Definition: EpcDocument.h:62
Definition: AbstractHdfProxy.h:45