Fesapi 2.3.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
WellboreTrajectoryRepresentation.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include "AbstractRepresentation.h"
22
23namespace RESQML2_NS
24{
25 class WellboreInterpretation;
26
29 {
30 public:
31
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
virtual void getTangentVectors(double *tangentVectors)=0
virtual double getFinishMd() const =0
virtual common::DataObjectReference getMdDatumDor() const =0
class resqml2::WellboreFrameRepresentation * getWellboreFrameRepresentation(unsigned int index) const
virtual void setDeviationSurvey(class DeviationSurveyRepresentation *deviationSurvey)=0
virtual common::DataObjectReference getDeviationSurveyDor() const =0
std::vector< WellboreTrajectoryRepresentation * > getChildrenTrajectorySet() const
std::vector< class resqml2::WellboreFrameRepresentation * > getWellboreFrameRepresentationSet() const
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)
WellboreTrajectoryRepresentation * getParentTrajectory() const
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
virtual void addParentTrajectory(double kickoffMd, double parentMd, WellboreTrajectoryRepresentation *parentTrajRep)=0
unsigned int getWellboreFrameRepresentationCount() 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
virtual ~WellboreTrajectoryRepresentation()=default
virtual bool hasTangentVectors() const =0
resqml2::MdDatum * getMdDatum() const
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
class DeviationSurveyRepresentation * getDeviationSurvey() const