My Project
IjkGridLatticeRepresentation.h
1 /*-----------------------------------------------------------------------
2 Copyright F2I-CONSULTING, (2014-2017)
3 
4 philippe.verney@f2i-consulting.com
5 
6 This software is a computer program whose purpose is to access to data formatted using Energistics standards.
7 
8 This software is governed by the CeCILL-B license under French law and
9 abiding by the rules of distribution of free software. You can use,
10 modify and/ or redistribute the software under the terms of the CeCILL-B
11 license as circulated by CEA, CNRS and INRIA at the following URL
12 "http://www.cecill.info".
13 
14 As a counterpart to the access to the source code and rights to copy,
15 modify and redistribute granted by the license, users are provided only
16 with a limited warranty and the software's author, the holder of the
17 economic rights, and the successive licensors have only limited
18 liability.
19 
20 In this respect, the user's attention is drawn to the risks associated
21 with loading, using, modifying and/or developing or reproducing the
22 software by the user in light of its specific status of free software,
23 that may mean that it is complicated to manipulate, and that also
24 therefore means that it is reserved for developers and experienced
25 professionals having in-depth computer knowledge. Users are therefore
26 encouraged to load and test the software's suitability as regards their
27 requirements in conditions enabling the security of their systems and/or
28 data to be ensured and, more generally, to use and operate it in the
29 same conditions as regards security.
30 
31 The fact that you are presently reading this means that you have had
32 knowledge of the CeCILL-B license and that you accept its terms.
33 -----------------------------------------------------------------------*/
34 #pragma once
35 
36 #include "resqml2_0_1/AbstractIjkGridRepresentation.h"
37 
38 namespace resqml2_0_1
39 {
40  class DLL_IMPORT_OR_EXPORT IjkGridLatticeRepresentation : public AbstractIjkGridRepresentation
41  {
42  private :
43  gsoap_resqml2_0_1::resqml2__Point3dLatticeArray* getArrayLatticeOfPoints3d() const;
44  public:
45 
47  const std::string & guid, const std::string & title,
48  const unsigned int & iCount, const unsigned int & jCount, const unsigned int & kCount);
49 
51  const std::string & guid, const std::string & title,
52  const unsigned int & iCount, const unsigned int & jCount, const unsigned int & kCount);
53 
57  IjkGridLatticeRepresentation(gsoap_resqml2_0_1::_resqml2__IjkGridRepresentation* fromGsoap): AbstractIjkGridRepresentation(fromGsoap) {}
58  IjkGridLatticeRepresentation(gsoap_resqml2_0_1::_resqml2__TruncatedIjkGridRepresentation* fromGsoap) : AbstractIjkGridRepresentation(fromGsoap) {}
59 
64 
68  bool isASeismicCube() const;
69 
73  bool isAFaciesCube() const;
74 
78  ULONG64 getXyzPointCountOfPatch(const unsigned int & patchIndex) const;
79 
85  void getXyzPointsOfPatch(const unsigned int & patchIndex, double * xyzPoints) const;
86 
92  double getXOrigin() const;
93 
99  double getYOrigin() const;
100 
106  double getZOrigin() const;
107 
113  double getXOriginInGlobalCrs() const;
114 
120  double getYOriginInGlobalCrs() const;
121 
127  double getZOriginInGlobalCrs() const;
128 
129  /*****************************************************
130  * Notice that, in seismic context, I is the slowest axis, J is the intermediate axis and K is the fastest axis.
131  * In reservoir grid, I is the fastest axis, J is the intermediate axis and K is slowest axis.
132  * It should be improved in future Resqml versions.
133  *****************************************************/
134 
140  double getXIOffset() const;
141 
147  double getYIOffset() const;
148 
154  double getZIOffset() const;
155 
161  double getXJOffset() const;
162 
168  double getYJOffset() const;
169 
175  double getZJOffset() const;
176 
182  double getXKOffset() const;
183 
189  double getYKOffset() const;
190 
196  double getZKOffset() const;
197 
202  double getISpacing() const;
203 
208  double getJSpacing() const;
209 
214  double getKSpacing() const;
215 
219  int getOriginInline() const;
220 
224  int getOriginCrossline() const;
225 
229  int getInlineIOffset() const;
230 
234  int getInlineJOffset() const;
235 
239  int getInlineKOffset() const;
240 
244  int getCrosslineIOffset() const;
245 
249  int getCrosslineJOffset() const;
250 
254  int getCrosslineKOffset() const;
255 
259  void setGeometryAsCoordinateLineNodes( const gsoap_resqml2_0_1::resqml2__PillarShape & mostComplexPillarGeometry,
260  const gsoap_resqml2_0_1::resqml2__KDirection & kDirectionKind,
261  const bool & isRightHanded,
262  const double & originX, const double & originY, const double & originZ,
263  const double & directionIX, const double & directionIY, const double & directionIZ, const double & spacingI,
264  const double & directionJX, const double & directionJY, const double & directionJZ, const double & spacingJ,
265  const double & directionKX, const double & directionKY, const double & directionKZ, const double & spacingK);
266 
271  void addSeismic3dCoordinatesToPatch(
272  const unsigned int patchIndex,
273  const double & startInline, const double & incrInline, const unsigned int & countInline,
274  const double & startCrossline, const double & incrCrossline, const unsigned int & countCrossline,
275  const unsigned int & countSample, AbstractRepresentation * seismicSupport);
276 
277  std::string getHdfProxyUuid() const;
278 
279  geometryKind getGeometryKind() const;
280  };
281 }
Definition: AbstractIjkGridRepresentation.h:46
Definition: AbstractLocal3dCrs.h:40
Definition: EpcDocument.h:78
IjkGridLatticeRepresentation(gsoap_resqml2_0_1::_resqml2__IjkGridRepresentation *fromGsoap)
Definition: IjkGridLatticeRepresentation.h:57
Definition: IjkGridLatticeRepresentation.h:40
~IjkGridLatticeRepresentation()
Definition: IjkGridLatticeRepresentation.h:63
Definition: AbstractFeatureInterpretation.h:45