Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
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, uint64_t 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, uint64_t 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, uint64_t 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, uint64_t 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
296 DLL_IMPORT_OR_EXPORT void convertMdValuesToXyzValues(double* mdValues, uint64_t mdCount, double* xyzPoints) const;
297
304 DLL_IMPORT_OR_EXPORT virtual double getStartMd() const = 0;
305
312 DLL_IMPORT_OR_EXPORT virtual double getFinishMd() const = 0;
313
322 DLL_IMPORT_OR_EXPORT virtual bool hasTangentVectors() const = 0;
323
334 DLL_IMPORT_OR_EXPORT virtual void getTangentVectors(double* tangentVectors) = 0;
335
350 DLL_IMPORT_OR_EXPORT void getInclinationsAndAzimuths(double * inclinations, double * azimuths);
351
352 //*****************
353 //*** PARENTAGE ***
354 //*****************
355
366 DLL_IMPORT_OR_EXPORT void virtual addParentTrajectory(double kickoffMd, double parentMd, WellboreTrajectoryRepresentation* parentTrajRep) = 0;
367
375
382 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getParentTrajectoryDor() const = 0;
383
391 DLL_IMPORT_OR_EXPORT virtual double getParentTrajectoryMd() const = 0;
392
398 DLL_IMPORT_OR_EXPORT std::vector<WellboreTrajectoryRepresentation*> getChildrenTrajectorySet() const;
399
400 //*****************
401 //***** FRAME *****
402 //*****************
403
409 DLL_IMPORT_OR_EXPORT std::vector<class RESQML2_NS::WellboreFrameRepresentation *> getWellboreFrameRepresentationSet() const;
410
417 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.
418
427 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.
428
429 //*****************
430 //***** SURVEY ****
431 //*****************
432
440 DLL_IMPORT_OR_EXPORT virtual void setDeviationSurvey(class DeviationSurveyRepresentation* deviationSurvey) = 0;
441
448 DLL_IMPORT_OR_EXPORT class DeviationSurveyRepresentation* getDeviationSurvey() const;
449
456 virtual COMMON_NS::DataObjectReference getDeviationSurveyDor() const = 0;
457
458 virtual COMMON_NS::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const override = 0;
459
460 virtual COMMON_NS::DataObjectReference getHdfProxyDor() const override = 0;
461
462 DLL_IMPORT_OR_EXPORT uint64_t getPatchCount() const final {return 1;}
463
469 DLL_IMPORT_OR_EXPORT virtual bool hasGeometry() const = 0;
470
472 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "WellboreTrajectoryRepresentation";
473
474 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
475
476 protected:
477
481 DLL_IMPORT_OR_EXPORT WellboreTrajectoryRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : AbstractRepresentation(partialObject) {}
482
483 WellboreTrajectoryRepresentation() {}
484
488 WellboreTrajectoryRepresentation(gsoap_resqml2_0_1::_resqml20__WellboreTrajectoryRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
489 WellboreTrajectoryRepresentation(gsoap_eml2_3::_resqml22__WellboreTrajectoryRepresentation* fromGsoap) : AbstractRepresentation(fromGsoap) {}
490
491 void loadTargetRelationships() override;
492 };
493}
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition AbstractLocal3dCrs.h:27
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:37
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 setMinimalGeometry(double startMd, double endMd)=0
virtual void setGeometry(double const *controlPoints, double const *tangentVectors, double const *controlPointParameters, uint64_t controlPointCount, int lineKind, eml2 ::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
virtual void setGeometry(double const *controlPoints, double const *controlPointParameters, uint64_t controlPointCount, int lineKind, eml2 ::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
virtual void getTangentVectors(double *tangentVectors)=0
virtual double getFinishMd() const =0
virtual common::DataObjectReference getMdDatumDor() const =0
virtual void setDeviationSurvey(class DeviationSurveyRepresentation *deviationSurvey)=0
void setGeometry(double const *controlPoints, double const *inclinations, double const *azimuths, double const *controlPointParameters, uint64_t controlPointCount, int lineKind, eml2 ::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)
virtual common::DataObjectReference getDeviationSurveyDor() const =0
std::vector< WellboreTrajectoryRepresentation * > getChildrenTrajectorySet() const
virtual void setMdDatum(MdDatum *mdDatum)=0
virtual common::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const override=0
void getInclinationsAndAzimuths(double *inclinations, double *azimuths)
class resqml2 ::WellboreFrameRepresentation * getWellboreFrameRepresentation(unsigned int index) const
WellboreTrajectoryRepresentation * getParentTrajectory() const
virtual void getMdValues(double *values) const =0
virtual void addParentTrajectory(double kickoffMd, double parentMd, WellboreTrajectoryRepresentation *parentTrajRep)=0
virtual void setGeometry(double const *controlPoints, double startMd, double endMd, uint64_t controlPointCount, int lineKind, eml2 ::AbstractHdfProxy *proxy=nullptr, AbstractLocal3dCrs *localCrs=nullptr)=0
unsigned int getWellboreFrameRepresentationCount() const
virtual common::DataObjectReference getParentTrajectoryDor() const =0
virtual double getParentTrajectoryMd() const =0
virtual gsoap_resqml2_0_1::eml20__LengthUom getMdUom() const =0
uint64_t getPatchCount() const final
Definition WellboreTrajectoryRepresentation.h:462
void convertMdValuesToXyzValues(double *mdValues, uint64_t mdCount, double *xyzPoints) const
virtual ~WellboreTrajectoryRepresentation()=default
virtual bool hasTangentVectors() const =0
resqml2::MdDatum * getMdDatum() const
std::vector< class resqml2 ::WellboreFrameRepresentation * > getWellboreFrameRepresentationSet() const
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 double getStartMd() const =0
class DeviationSurveyRepresentation * getDeviationSurvey() const