Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
WellboreTrajectoryRepresentation.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 "AbstractRepresentation.h"
22 
23 namespace RESQML2_NS
24 {
25  class WellboreInterpretation;
26 
29  {
30  public:
31 
33  virtual ~WellboreTrajectoryRepresentation() = default;
34 
43  DLL_IMPORT_OR_EXPORT virtual void setMinimalGeometry(double startMd, double endMd) = 0;
44 
80  DLL_IMPORT_OR_EXPORT virtual void setGeometry(double const* controlPoints, double startMd, double endMd, unsigned int controlPointCount, int lineKind, EML2_NS::AbstractHdfProxy* proxy = nullptr, AbstractLocal3dCrs* localCrs = nullptr) = 0;
81 
120  DLL_IMPORT_OR_EXPORT virtual void setGeometry(double const* controlPoints, double const* controlPointParameters, unsigned int controlPointCount, int lineKind,
121  EML2_NS::AbstractHdfProxy* proxy = nullptr, AbstractLocal3dCrs* localCrs = nullptr) = 0;
122 
169  DLL_IMPORT_OR_EXPORT virtual void setGeometry(double const* controlPoints,
170  double const* tangentVectors, double const* controlPointParameters, unsigned int controlPointCount, int lineKind,
171  EML2_NS::AbstractHdfProxy* proxy = nullptr, AbstractLocal3dCrs* localCrs = nullptr) = 0;
172 
219  DLL_IMPORT_OR_EXPORT void setGeometry(double const* controlPoints,
220  double const* inclinations, double const* azimuths, double const* controlPointParameters, unsigned int controlPointCount, int lineKind,
221  EML2_NS::AbstractHdfProxy* proxy = nullptr, AbstractLocal3dCrs* localCrs = nullptr);
222 
234  DLL_IMPORT_OR_EXPORT virtual int getGeometryKind() const = 0;
235 
243  DLL_IMPORT_OR_EXPORT virtual void setMdDatum(MdDatum * mdDatum) = 0;
244 
250  DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum * getMdDatum() const;
251 
258  DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getMdDatumDor() const = 0;
259 
267  DLL_IMPORT_OR_EXPORT virtual bool hasMdValues() const = 0;
268 
274  DLL_IMPORT_OR_EXPORT virtual gsoap_resqml2_0_1::eml20__LengthUom getMdUom() const = 0;
275 
287  DLL_IMPORT_OR_EXPORT virtual void getMdValues(double* values) const = 0;
288 
295  DLL_IMPORT_OR_EXPORT virtual double getStartMd() const = 0;
296 
303  DLL_IMPORT_OR_EXPORT virtual double getFinishMd() const = 0;
304 
313  DLL_IMPORT_OR_EXPORT virtual bool hasTangentVectors() const = 0;
314 
325  DLL_IMPORT_OR_EXPORT virtual void getTangentVectors(double* tangentVectors) = 0;
326 
341  DLL_IMPORT_OR_EXPORT void getInclinationsAndAzimuths(double * inclinations, double * azimuths);
342 
343  //*****************
344  //*** PARENTAGE ***
345  //*****************
346 
357  DLL_IMPORT_OR_EXPORT void virtual addParentTrajectory(double kickoffMd, double parentMd, WellboreTrajectoryRepresentation* parentTrajRep) = 0;
358 
366 
373  DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getParentTrajectoryDor() const = 0;
374 
382  DLL_IMPORT_OR_EXPORT virtual double getParentTrajectoryMd() const = 0;
383 
389  DLL_IMPORT_OR_EXPORT std::vector<WellboreTrajectoryRepresentation*> getChildrenTrajectorySet() const;
390 
391  //*****************
392  //***** FRAME *****
393  //*****************
394 
400  DLL_IMPORT_OR_EXPORT std::vector<class RESQML2_NS::WellboreFrameRepresentation *> getWellboreFrameRepresentationSet() const;
401 
408  DLL_IMPORT_OR_EXPORT unsigned int getWellboreFrameRepresentationCount() const; // Necessary for now in SWIG context because I am not sure if I can always wrap a vector of polymorphic class yet.
409 
418  DLL_IMPORT_OR_EXPORT class RESQML2_NS::WellboreFrameRepresentation * getWellboreFrameRepresentation(unsigned int index) const; // Necessary for now in SWIG context because I am not sure if I can always wrap a vector of polymorphic class yet.
419 
420  //*****************
421  //***** SURVEY ****
422  //*****************
423 
431  DLL_IMPORT_OR_EXPORT virtual void setDeviationSurvey(class DeviationSurveyRepresentation* deviationSurvey) = 0;
432 
439  DLL_IMPORT_OR_EXPORT class DeviationSurveyRepresentation* getDeviationSurvey() const;
440 
447  virtual COMMON_NS::DataObjectReference getDeviationSurveyDor() const = 0;
448 
449  virtual COMMON_NS::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const override = 0;
450 
451  virtual COMMON_NS::DataObjectReference getHdfProxyDor() const override = 0;
452 
453  DLL_IMPORT_OR_EXPORT unsigned int getPatchCount() const final {return 1;}
454 
460  DLL_IMPORT_OR_EXPORT virtual bool hasGeometry() const = 0;
461 
463  DLL_IMPORT_OR_EXPORT static const char* XML_TAG;
464 
465  DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
466 
467  protected:
468 
472  DLL_IMPORT_OR_EXPORT WellboreTrajectoryRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : AbstractRepresentation(partialObject) {}
473 
474  WellboreTrajectoryRepresentation() {}
475 
479  WellboreTrajectoryRepresentation(gsoap_resqml2_0_1::_resqml20__WellboreTrajectoryRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
480  WellboreTrajectoryRepresentation(gsoap_eml2_3::_resqml22__WellboreTrajectoryRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
481 
482  void loadTargetRelationships() override;
483  };
484 }
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition: AbstractLocal3dCrs.h:27
Proxy class for an abstract representation.
Definition: AbstractRepresentation.h:32
A deviation survey representation. It Specifies the station data from a deviation survey.
Definition: DeviationSurveyRepresentation.h:41
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition: MdDatum.h:32
Representation of a wellbore trajectory.
Definition: WellboreTrajectoryRepresentation.h:29
virtual void setGeometry(double const *controlPoints, double const *tangentVectors, double const *controlPointParameters, unsigned int controlPointCount, int lineKind, eml2::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
virtual void setMinimalGeometry(double startMd, double endMd)=0
class resqml2::WellboreFrameRepresentation * getWellboreFrameRepresentation(unsigned int index) const
virtual void getTangentVectors(double *tangentVectors)=0
virtual double getFinishMd() const =0
virtual common::DataObjectReference getMdDatumDor() const =0
virtual void setDeviationSurvey(class DeviationSurveyRepresentation *deviationSurvey)=0
virtual common::DataObjectReference getDeviationSurveyDor() const =0
virtual void setMdDatum(MdDatum *mdDatum)=0
static const char * XML_TAG
Definition: WellboreTrajectoryRepresentation.h:463
virtual common::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const override=0
void getInclinationsAndAzimuths(double *inclinations, double *azimuths)
unsigned int getPatchCount() const final
Definition: WellboreTrajectoryRepresentation.h:453
virtual void getMdValues(double *values) const =0
virtual void setGeometry(double const *controlPoints, double startMd, double endMd, unsigned int controlPointCount, int lineKind, eml2::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
class DeviationSurveyRepresentation * getDeviationSurvey() const
virtual void addParentTrajectory(double kickoffMd, double parentMd, WellboreTrajectoryRepresentation *parentTrajRep)=0
unsigned int getWellboreFrameRepresentationCount() const
WellboreTrajectoryRepresentation * getParentTrajectory() const
virtual common::DataObjectReference getParentTrajectoryDor() const =0
virtual double getParentTrajectoryMd() const =0
virtual void setGeometry(double const *controlPoints, double const *controlPointParameters, unsigned int controlPointCount, int lineKind, eml2::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
virtual gsoap_resqml2_0_1::eml20__LengthUom getMdUom() const =0
std::vector< WellboreTrajectoryRepresentation * > getChildrenTrajectorySet() const
resqml2::MdDatum * getMdDatum() const
virtual ~WellboreTrajectoryRepresentation()=default
std::vector< class resqml2::WellboreFrameRepresentation * > getWellboreFrameRepresentationSet() const
virtual bool hasTangentVectors() const =0
void setGeometry(double const *controlPoints, double const *inclinations, double const *azimuths, double const *controlPointParameters, unsigned int controlPointCount, int lineKind, eml2::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)
virtual common::DataObjectReference getHdfProxyDor() const override=0
Gets the data object reference of the HDF proxy which is used for storing the numerical values of thi...
virtual std::string getXmlTag() const final
Definition: WellboreTrajectoryRepresentation.h:465
virtual double getStartMd() const =0