Fesapi 2.3.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
IjkGridExplicitRepresentation.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 "AbstractIjkGridRepresentation.h"
22
23namespace RESQML2_NS
24{
31 {
32 public:
36 virtual ~IjkGridExplicitRepresentation() = default;
37
45 DLL_IMPORT_OR_EXPORT void getXyzPointsOfKInterfaceSequence(unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double * xyzPoints) override;
46
54 DLL_IMPORT_OR_EXPORT void getXyzPointsOfBlock(double * xyzPoints) override;
55
142 DLL_IMPORT_OR_EXPORT virtual void setGeometryAsCoordinateLineNodes(
143 gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded,
144 double * points, EML2_NS::AbstractHdfProxy* proxy = nullptr,
145 unsigned long splitCoordinateLineCount = 0, unsigned int * pillarOfCoordinateLine = nullptr,
146 unsigned int * splitCoordinateLineColumnCumulativeCount = nullptr, unsigned int * splitCoordinateLineColumns = nullptr,
147 char * definedPillars = nullptr, RESQML2_NS::AbstractLocal3dCrs * localCrs = nullptr) = 0;
148
156 gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded,
157 const std::string & points, EML2_NS::AbstractHdfProxy* proxy = nullptr,
158 unsigned long splitCoordinateLineCount = 0, const std::string & pillarOfCoordinateLine = "",
159 const std::string & splitCoordinateLineColumnCumulativeCount = "", const std::string & splitCoordinateLineColumns = "",
160 const std::string & definedPillars = "", RESQML2_NS::AbstractLocal3dCrs * localCrs = nullptr) = 0;
161
162 DLL_IMPORT_OR_EXPORT bool isNodeGeometryCompressed() const final;
163
164 DLL_IMPORT_OR_EXPORT geometryKind getGeometryKind() const final;
165
166 protected:
170 IjkGridExplicitRepresentation(COMMON_NS::DataObjectRepository * repo,
171 const std::string & guid, const std::string & title,
172 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr) :
173 AbstractIjkGridRepresentation(repo, guid, title, iCount, jCount, kCount, kGaps, proxy) {}
174
175 IjkGridExplicitRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
176 const std::string & guid, const std::string & title,
177 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr) :
178 AbstractIjkGridRepresentation(interp, guid, title, iCount, jCount, kCount, kGaps, proxy) {}
179
183 IjkGridExplicitRepresentation(gsoap_resqml2_0_1::_resqml20__IjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
184 IjkGridExplicitRepresentation(gsoap_eml2_3::_resqml22__IjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
185 IjkGridExplicitRepresentation(gsoap_resqml2_0_1::_resqml20__TruncatedIjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
186 IjkGridExplicitRepresentation(gsoap_eml2_3::_resqml22__TruncatedIjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
187
188 virtual EML2_NS::AbstractHdfProxy* getPointDatasetPath(std::string & datasetPathInExternalFile, unsigned long & splitCoordinateLineCount) const = 0;
189 };
190}
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition: AbstractIjkGridRepresentation.h:34
geometryKind
Definition: AbstractIjkGridRepresentation.h:38
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates....
Definition: IjkGridExplicitRepresentation.h:31
virtual void setGeometryAsCoordinateLineNodes(gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, double *points, eml2::AbstractHdfProxy *proxy=nullptr, unsigned long splitCoordinateLineCount=0, unsigned int *pillarOfCoordinateLine=nullptr, unsigned int *splitCoordinateLineColumnCumulativeCount=nullptr, unsigned int *splitCoordinateLineColumns=nullptr, char *definedPillars=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage,...
virtual ~IjkGridExplicitRepresentation()=default
bool isNodeGeometryCompressed() const final
void getXyzPointsOfKInterfaceSequence(unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double *xyzPoints) override
Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local C...
void getXyzPointsOfBlock(double *xyzPoints) override
Gets all the XYZ points of the current block. XYZ points are given in the local CRS....
virtual void setGeometryAsCoordinateLineNodesUsingExistingDatasets(gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, const std::string &points, eml2::AbstractHdfProxy *proxy=nullptr, unsigned long splitCoordinateLineCount=0, const std::string &pillarOfCoordinateLine="", const std::string &splitCoordinateLineColumnCumulativeCount="", const std::string &splitCoordinateLineColumns="", const std::string &definedPillars="", resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage,...