Fesapi 2.1.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
AbstractRepresentation.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 <set>
22
23#include "../common/AbstractObject.h"
24
25namespace 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
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...
std::vector< class AbstractProperty * > getPropertySet() const
virtual ~AbstractRepresentation()=default
virtual common::DataObjectReference getLocalCrsDor(unsigned int patchIndex) const
class AbstractLocal3dCrs * getLocalCrs(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