Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
IjkGridExplicitRepresentation.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 "AbstractIjkGridRepresentation.h"
22 
23 namespace 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 
155  DLL_IMPORT_OR_EXPORT virtual void setGeometryAsCoordinateLineNodesUsingExistingDatasets(
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,...