Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
IjkGridLatticeRepresentation.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 {
32  {
33  public:
37  virtual ~IjkGridLatticeRepresentation() = default;
38 
44  DLL_IMPORT_OR_EXPORT bool isASeismicCube() const;
45 
51  DLL_IMPORT_OR_EXPORT bool isAFaciesCube() const;
52 
54  DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(unsigned int patchIndex, double* xyzPoints) const final;
55 
64  DLL_IMPORT_OR_EXPORT virtual double getXOrigin() const = 0;
65 
74  DLL_IMPORT_OR_EXPORT virtual double getYOrigin() const = 0;
75 
84  DLL_IMPORT_OR_EXPORT virtual double getZOrigin() const = 0;
85 
93  DLL_IMPORT_OR_EXPORT double getXOriginInGlobalCrs() const;
94 
102  DLL_IMPORT_OR_EXPORT double getYOriginInGlobalCrs() const;
103 
111  DLL_IMPORT_OR_EXPORT double getZOriginInGlobalCrs() const;
112 
121  DLL_IMPORT_OR_EXPORT virtual double getXIOffset() const = 0;
122 
131  DLL_IMPORT_OR_EXPORT virtual double getYIOffset() const = 0;
132 
141  DLL_IMPORT_OR_EXPORT virtual double getZIOffset() const = 0;
142 
151  DLL_IMPORT_OR_EXPORT virtual double getXJOffset() const = 0;
152 
161  DLL_IMPORT_OR_EXPORT virtual double getYJOffset() const = 0;
162 
171  DLL_IMPORT_OR_EXPORT virtual double getZJOffset() const = 0;
172 
181  DLL_IMPORT_OR_EXPORT virtual double getXKOffset() const = 0;
182 
191  DLL_IMPORT_OR_EXPORT virtual double getYKOffset() const = 0;
192 
201  DLL_IMPORT_OR_EXPORT virtual double getZKOffset() const = 0;
202 
211  DLL_IMPORT_OR_EXPORT virtual double getISpacing() const = 0;
212 
220  DLL_IMPORT_OR_EXPORT virtual double getJSpacing() const = 0;
221 
230  DLL_IMPORT_OR_EXPORT virtual double getKSpacing() const = 0;
231 
239  DLL_IMPORT_OR_EXPORT virtual int getOriginInline() const = 0;
240 
248  DLL_IMPORT_OR_EXPORT virtual int getOriginCrossline() const = 0;
249 
257  DLL_IMPORT_OR_EXPORT virtual int getInlineIOffset() const = 0;
258 
266  DLL_IMPORT_OR_EXPORT virtual int getInlineJOffset() const = 0;
267 
275  DLL_IMPORT_OR_EXPORT virtual int getInlineKOffset() const = 0;
276 
284  DLL_IMPORT_OR_EXPORT virtual int getCrosslineIOffset() const = 0;
285 
293  DLL_IMPORT_OR_EXPORT virtual int getCrosslineJOffset() const = 0;
294 
302  DLL_IMPORT_OR_EXPORT virtual int getCrosslineKOffset() const = 0;
303 
335  DLL_IMPORT_OR_EXPORT virtual void setGeometryAsCoordinateLineNodes(gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry,
336  gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind,
337  bool isRightHanded,
338  double originX, double originY, double originZ,
339  double directionIX, double directionIY, double directionIZ, double spacingI,
340  double directionJX, double directionJY, double directionJZ, double spacingJ,
341  double directionKX, double directionKY, double directionKZ, double spacingK, RESQML2_NS::AbstractLocal3dCrs * localCrs = nullptr) = 0;
342 
363  DLL_IMPORT_OR_EXPORT virtual void addSeismic3dCoordinatesToPatch(
364  unsigned int patchIndex,
365  double startInline, double incrInline, unsigned int countInline,
366  double startCrossline, double incrCrossline, unsigned int countCrossline,
367  unsigned int countSample, RESQML2_NS::AbstractRepresentation * seismicSupport) = 0;
368 
369  DLL_IMPORT_OR_EXPORT geometryKind getGeometryKind() const final;
370 
371  protected:
372  IjkGridLatticeRepresentation(COMMON_NS::DataObjectRepository * repo,
373  const std::string & guid, const std::string & title,
374  unsigned int iCount, unsigned int jCount, unsigned int kCount) :
375  AbstractIjkGridRepresentation(repo, guid, title, iCount, jCount, kCount, nullptr) {}
376 
377  IjkGridLatticeRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
378  const std::string & guid, const std::string & title,
379  unsigned int iCount, unsigned int jCount, unsigned int kCount) :
380  AbstractIjkGridRepresentation(interp, guid, title, iCount, jCount, kCount, nullptr) {}
381 
385  IjkGridLatticeRepresentation(gsoap_resqml2_0_1::_resqml20__IjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
386  IjkGridLatticeRepresentation(gsoap_eml2_3::_resqml22__IjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
387  IjkGridLatticeRepresentation(gsoap_resqml2_0_1::_resqml20__TruncatedIjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
388  IjkGridLatticeRepresentation(gsoap_eml2_3::_resqml22__TruncatedIjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
389  };
390 }
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition: AbstractIjkGridRepresentation.h:34
geometryKind
Definition: AbstractIjkGridRepresentation.h:38
The main use case for this class is the representation of a seismic cubes. Notice that,...
Definition: IjkGridLatticeRepresentation.h:32
virtual double getZOrigin() const =0
virtual double getXJOffset() const =0
virtual int getCrosslineJOffset() const =0
virtual double getXIOffset() const =0
virtual double getYIOffset() const =0
virtual double getJSpacing() const =0
virtual double getYKOffset() const =0
virtual double getKSpacing() const =0
virtual int getInlineKOffset() const =0
virtual double getXOrigin() const =0
virtual double getZJOffset() const =0
virtual double getZKOffset() const =0
virtual ~IjkGridLatticeRepresentation()=default
virtual double getYJOffset() const =0
void getXyzPointsOfPatch(unsigned int patchIndex, double *xyzPoints) const final
virtual int getCrosslineKOffset() const =0
geometryKind getGeometryKind() const final
virtual int getOriginInline() const =0
virtual int getOriginCrossline() const =0
virtual void addSeismic3dCoordinatesToPatch(unsigned int patchIndex, double startInline, double incrInline, unsigned int countInline, double startCrossline, double incrCrossline, unsigned int countCrossline, unsigned int countSample, resqml2::AbstractRepresentation *seismicSupport)=0
virtual int getInlineIOffset() const =0
virtual void setGeometryAsCoordinateLineNodes(gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, double originX, double originY, double originZ, double directionIX, double directionIY, double directionIZ, double spacingI, double directionJX, double directionJY, double directionJZ, double spacingJ, double directionKX, double directionKY, double directionKZ, double spacingK, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
virtual double getISpacing() const =0
virtual double getZIOffset() const =0
virtual int getInlineJOffset() const =0
virtual int getCrosslineIOffset() const =0
virtual double getYOrigin() const =0
virtual double getXKOffset() const =0