Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
AbstractRepresentation.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 <set>
22 
23 #include "../common/AbstractObject.h"
24 
25 namespace RESQML2_NS
26 {
27  class AbstractValuesProperty;
28  class PointsProperty;
29 
31  class AbstractRepresentation : public COMMON_NS::AbstractObject
32  {
33  public:
34 
36  enum indexableElement { NODE = 0, EDGE = 1, FACE = 2, VOLUME = 3, PILLAR = 4 };
37 
39  virtual ~AbstractRepresentation() = default;
40 
51  DLL_IMPORT_OR_EXPORT class AbstractLocal3dCrs* getLocalCrs(unsigned int patchIndex) const;
52 
64  DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const;
65 
75  DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getHdfProxyDor() const = 0;
76 
82  DLL_IMPORT_OR_EXPORT std::vector<class AbstractProperty *> getPropertySet() const;
83 
84  GETTER_DATAOBJECTS(AbstractValuesProperty, ValuesProperty)
85  GETTER_DATAOBJECTS(PointsProperty, PointsProperty)
86 
87 
94  DLL_IMPORT_OR_EXPORT void setInterpretation(class AbstractFeatureInterpretation * interp);
95 
102  DLL_IMPORT_OR_EXPORT class AbstractFeatureInterpretation* getInterpretation() const;
103 
110  DLL_IMPORT_OR_EXPORT COMMON_NS::DataObjectReference getInterpretationDor() const;
111 
112  GETTER_DATAOBJECTS(SubRepresentation, SubRepresentation)
113  GETTER_DATAOBJECTS(SubRepresentation, FaultSubRepresentation)
115 
126  DLL_IMPORT_OR_EXPORT virtual uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const = 0;
127 
133  DLL_IMPORT_OR_EXPORT uint64_t getXyzPointCountOfAllPatches() const;
134 
148  DLL_IMPORT_OR_EXPORT virtual void getXyzPointsOfPatch(unsigned int patchIndex, double * xyzPoints) const = 0;
149 
162  DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatchInGlobalCrs(unsigned int patchIndex, double * xyzPoints) const;
163 
173  DLL_IMPORT_OR_EXPORT void getXyzPointsOfAllPatches(double * xyzPoints) const;
174 
181  DLL_IMPORT_OR_EXPORT bool isInSingleLocalCrs() const;
182 
189  DLL_IMPORT_OR_EXPORT bool isInSingleGlobalCrs() const;
190 
200  DLL_IMPORT_OR_EXPORT void getXyzPointsOfAllPatchesInGlobalCrs(double * xyzPoints) const;
201 
212  DLL_IMPORT_OR_EXPORT AbstractRepresentation* getSeismicSupportOfPatch(const unsigned int & patchIndex) const;
213 
221  DLL_IMPORT_OR_EXPORT std::set<AbstractRepresentation*> getAllSeismicSupport() const;
222 
228  DLL_IMPORT_OR_EXPORT virtual unsigned int getPatchCount() const = 0;
229 
238  DLL_IMPORT_OR_EXPORT void pushBackIntoRepresentationSet(class RepresentationSetRepresentation * repSet);
239 
263  DLL_IMPORT_OR_EXPORT void addSeismic3dCoordinatesToPatch(unsigned int patchIndex, double* inlines, double* crosslines, unsigned int pointCount,
264  RESQML2_NS::AbstractRepresentation* seismicSupport, EML2_NS::AbstractHdfProxy* proxy);
265 
284  DLL_IMPORT_OR_EXPORT void addSeismic3dCoordinatesToPatch(unsigned int patchIndex, double startInline, double incrInline, unsigned int countInline,
285  double startCrossline, double incrCrossline, unsigned int countCrossline,
286  RESQML2_NS::AbstractRepresentation* seismicSupport);
287 
306  DLL_IMPORT_OR_EXPORT void addSeismic2dCoordinatesToPatch(unsigned int patchIndex, double* lineAbscissa,
307  RESQML2_NS::AbstractRepresentation * seismicSupport, EML2_NS::AbstractHdfProxy * proxy);
308 
320  DLL_IMPORT_OR_EXPORT void getSeismicLineAbscissaOfPointsOfPatch(unsigned int patchIndex, double* values) const;
321 
334  DLL_IMPORT_OR_EXPORT void getInlinesOfPointsOfPatch(unsigned int patchIndex, double * values) const;
335 
349  DLL_IMPORT_OR_EXPORT void getCrosslinesOfPointsOfPatch(unsigned int patchIndex, double * values) const;
350 
352  static const char* XML_TAG;
353 
354  virtual void loadTargetRelationships();
355 
356  protected:
357 
365  DLL_IMPORT_OR_EXPORT AbstractRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
366 
369 
375  AbstractRepresentation(gsoap_resqml2_0_1::resqml20__AbstractRepresentation* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
376 
382  AbstractRepresentation(gsoap_eml2_3::resqml22__AbstractRepresentation* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
383 
392  virtual gsoap_resqml2_0_1::resqml20__PointGeometry* getPointGeometry2_0_1(unsigned int patchIndex) const;
393 
402  virtual gsoap_eml2_3::resqml22__PointGeometry* getPointGeometry2_2(unsigned int patchIndex) const;
403 
422  gsoap_resqml2_0_1::resqml20__PointGeometry* createPointGeometryPatch2_0_1(uint32_t patchIndex, double const * points, class AbstractLocal3dCrs const* localCrs, uint64_t const * numPoints, uint32_t numDimensionsInArray, EML2_NS::AbstractHdfProxy * proxy);
423 
442  gsoap_eml2_3::resqml22__PointGeometry* createPointGeometryPatch2_2(uint32_t patchIndex, double const * points, class AbstractLocal3dCrs const* localCrs, uint64_t const * numPoints, uint32_t numDimensionsInArray, EML2_NS::AbstractHdfProxy * proxy);
443 
451  COMMON_NS::DataObjectReference getHdfProxyDorFromPointGeometryPatch(gsoap_resqml2_0_1::resqml20__PointGeometry* patch) const;
452 
460  COMMON_NS::DataObjectReference getHdfProxyDorFromPointGeometryPatch(gsoap_eml2_3::resqml22__PointGeometry* patch) const;
461 
469  gsoap_resqml2_0_1::resqml20__Seismic3dCoordinates* getSeismic3dCoordinates2_0_1(unsigned int patchIndex) const;
470 
478  gsoap_eml2_3::resqml22__Seismic3dCoordinates* getSeismic3dCoordinates2_2(unsigned int patchIndex) const;
479  };
480 }
Proxy class for an abstract feature interpretation.
Definition: AbstractFeatureInterpretation.h:29
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
indexableElement
Definition: AbstractRepresentation.h:36
std::vector< class AbstractProperty * > getPropertySet() const
virtual common::DataObjectReference getHdfProxyDor() const =0
Gets the data object reference of the HDF proxy which is used for storing the numerical values of thi...
class AbstractLocal3dCrs * getLocalCrs(unsigned int patchIndex) const
virtual ~AbstractRepresentation()=default
virtual common::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const
Proxy class for an abstract values property.
Definition: AbstractValuesProperty.h:28
Proxy class for an points property.
Definition: PointsProperty.h:27
Proxy class for a representation set representation. This is the parent class of the framework repres...
Definition: RepresentationSetRepresentation.h:39
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition: SubRepresentation.h:38