Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and K is the slowest axis. Notice that seismic domain will more likely use a vertical axis as the fastest one where a reservori domain will more likely use a vertical axis as the fastest one. More...
#include <IjkGridLatticeRepresentation.h>
Public Member Functions | |
virtual | ~IjkGridLatticeRepresentation ()=default |
bool | isASeismicCube () const |
bool | isAFaciesCube () const |
void | getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const final |
virtual double | getXOrigin () const =0 |
virtual double | getYOrigin () const =0 |
virtual double | getZOrigin () const =0 |
double | getXOriginInGlobalCrs () const |
double | getYOriginInGlobalCrs () const |
double | getZOriginInGlobalCrs () const |
virtual double | getXIOffset () const =0 |
virtual double | getYIOffset () const =0 |
virtual double | getZIOffset () const =0 |
virtual double | getXJOffset () const =0 |
virtual double | getYJOffset () const =0 |
virtual double | getZJOffset () const =0 |
virtual double | getXKOffset () const =0 |
virtual double | getYKOffset () const =0 |
virtual double | getZKOffset () const =0 |
virtual double | getISpacing () const =0 |
virtual double | getJSpacing () const =0 |
virtual double | getKSpacing () const =0 |
virtual int | getOriginInline () const =0 |
virtual int | getOriginCrossline () const =0 |
virtual int | getInlineIOffset () const =0 |
virtual int | getInlineJOffset () const =0 |
virtual int | getInlineKOffset () const =0 |
virtual int | getCrosslineIOffset () const =0 |
virtual int | getCrosslineJOffset () const =0 |
virtual int | getCrosslineKOffset () 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 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 |
geometryKind | getGeometryKind () const final |
Public Member Functions inherited from resqml2::AbstractIjkGridRepresentation | |
AbstractIjkGridRepresentation (common ::DataObjectRepository *repo, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr) | |
AbstractIjkGridRepresentation (resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr) | |
AbstractIjkGridRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject, bool withTruncatedPillars=false) | |
virtual | ~AbstractIjkGridRepresentation () |
unsigned int | getICellCount () const |
void | setICellCount (unsigned int iCount) |
unsigned int | getJCellCount () const |
void | setJCellCount (unsigned int jCount) |
Sets the count of cells in the J direction. | |
uint64_t | getCellCount () const final |
unsigned int | getColumnCount () const |
unsigned int | getPillarCount () const |
uint64_t | getKGapsCount () const |
void | getKGaps (bool *kGaps) const |
uint64_t | getFaceCount () const |
unsigned int | getIPillarFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getJPillarFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getGlobalIndexPillarFromIjIndex (unsigned int iPillar, unsigned int jPillar) const |
unsigned int | getIColumnFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getJColumnFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getGlobalIndexColumnFromIjIndex (unsigned int iColumn, unsigned int jColumn) const |
unsigned int | getGlobalIndexCellFromIjkIndex (unsigned int iCell, unsigned int jCell, unsigned int kCell) const |
bool | isRightHanded () const |
void | getPillarsOfSplitCoordinateLines (unsigned int *pillarIndices, bool reverseIAxis=false, bool reverseJAxis=false) const |
void | getColumnsOfSplitCoordinateLines (unsigned int *columnIndices, bool reverseIAxis=false, bool reverseJAxis=false) const |
void | getColumnCountOfSplitCoordinateLines (unsigned int *columnIndexCountPerSplitCoordinateLine) const |
uint64_t | getSplitCoordinateLineCount () const |
uint64_t | getBlockSplitCoordinateLineCount () const |
uint64_t | getSplitNodeCount () const |
void | getPillarGeometryIsDefined (bool *pillarGeometryIsDefined, bool reverseIAxis=false, bool reverseJAxis=false) const |
bool | hasCellGeometryIsDefinedFlags () const |
void | getCellGeometryIsDefinedFlags (bool *cellGeometryIsDefinedFlags, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const |
void | setCellGeometryIsDefinedFlags (uint8_t *cellGeometryIsDefinedFlags, eml2 ::AbstractHdfProxy *proxy=nullptr) |
void | setAllCellGeometryFlagsToDefined () |
void | loadSplitInformation () |
void | loadBlockInformation (unsigned int iInterfaceStart, unsigned int iInterfaceEnd, unsigned int jInterfaceStart, unsigned int jInterfaceEnd, unsigned int kInterfaceStart, unsigned int kInterfaceEnd) |
void | unloadSplitInformation () |
bool | isColumnEdgeSplitted (unsigned int iColumn, unsigned int jColumn, unsigned int edge) const |
Checks either a given column edge is splitted or not. This method requires that you have already loaded the split information. | |
uint64_t | getXyzPointIndexFromCellCorner (unsigned int iCell, unsigned int jCell, unsigned int kCell, unsigned int corner) const |
Gets the XYZ point index in the HDF dataset from the corner of a cell. This method requires that you have already loaded the split information. | |
void | getXyzPointOfBlockFromCellCorner (unsigned int iCell, unsigned int jCell, unsigned int kCell, unsigned int corner, const double *xyzPoints, double &x, double &y, double &z) const |
Gets the x, y and z values of the corner of a cell of a given block. This method requires that you have already both loaded the block information and get the geometry of the block thanks to getXyzPointsOfBlock(). | |
uint64_t | getXyzPointCountOfKInterface () const |
uint64_t | getXyzPointCountOfBlock () const |
void | getXyzPointsOfKInterface (unsigned int kInterface, double *xyzPoints) |
virtual void | getXyzPointsOfKInterfaceSequence (unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double *xyzPoints) |
Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS. | |
virtual void | getXyzPointsOfBlock (double *xyzPoints) |
Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded. | |
virtual bool | isNodeGeometryCompressed () const |
gsoap_resqml2_0_1::resqml20__KDirection | getKDirection () const override |
virtual common::DataObjectReference | getHdfProxyDor () const override |
virtual uint64_t | getXyzPointCountOfPatch (unsigned int patchIndex) const override |
std::string | getXmlTag () const final |
uint64_t | getPatchCount () const override |
virtual std::string | getXmlNamespace () const override |
Additional Inherited Members | |
Public Types inherited from resqml2::AbstractIjkGridRepresentation | |
enum class | geometryKind { UNKNOWN = 0 , EXPLICIT = 1 , PARAMETRIC = 2 , LATTICE = 3 , NO_GEOMETRY = 4 } |
Static Public Attributes inherited from resqml2::AbstractIjkGridRepresentation | |
static constexpr char const * | XML_TAG = "IjkGridRepresentation" |
static constexpr char const * | XML_TAG_TRUNCATED = "TruncatedIjkGridRepresentation" |
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and K is the slowest axis. Notice that seismic domain will more likely use a vertical axis as the fastest one where a reservori domain will more likely use a vertical axis as the fastest one.
|
virtualdefault |
Destructor does nothing since the memory is managed by the gSOAP context.
|
pure virtual |
Pushes back a patch of seismic 3D coordinates.
std::logic_error | If this grid is partial. |
std::invalid_argument | If patchIndex does not identify a point geometry. |
std:invalid_argument | If seismicSupport is nullptr. |
std::invalid_argument | If it already exists some seismic 2d coordinates for this patch. |
patchIndex | Zero-based index of the patch to push. It must be consistent with the index of the geometry patch it is related to. | |
startInline | The start inline. | |
incrInline | The inline increment. | |
countInline | The count of inlines. | |
startCrossline | The start crossline. | |
incrCrossline | The crossline increment. | |
countCrossline | The count of crosslines. | |
countSample | The count of samples. | |
[in] | seismicSupport | The seismic support of the patch to push. |
|
pure virtual |
Gets the crossline I offset value.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the crossline J offset value.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the crossline K offset value.
std::logic_error | If this grid is partial. |
|
finalvirtual |
Gets the geometry kind of this IJK grid.
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
pure virtual |
Gets the inline I offset value.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the inline J offset value.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the inline K offset value.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the I spacing of this regular (seismic) grid. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the J spacing of this regular (seismic) grid. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the K spacing of this regular (seismic) grid. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the label of the first crossline.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the label of the first inline.
std::logic_error | If this grid is partial. |
|
pure virtual |
Gets the X coordinate of the I offset of this geometry. The X coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the X coordinate of the J offset of this geometry. The X coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the X coordinate of the K offset of this geometry. The X coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the X coordinate of the origin of this geometry. The X coordinate is given in the local CRS.
std::logic_error | If this grid is partial. |
double.NAN
. double resqml2::IjkGridLatticeRepresentation::getXOriginInGlobalCrs | ( | ) | const |
Gets the X coordinate origin of this geometry. The X coordinate is given in the global CRS.
std::logic_error | If this grid is partial. |
double.NAN
.
|
finalvirtual |
Please do note use: not implemented yet. Please use lattice information.
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
pure virtual |
Gets the Y coordinate of the I offset of this geometry. The Y coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Y coordinate of the J offset of this geometry. The Y coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Y coordinate of the K offset of this geometry. The Y coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Y coordinate of the origin of this geometry. The Y coordinate is given in the local CRS.
std::logic_error | If this grid is partial. |
double.NAN
. double resqml2::IjkGridLatticeRepresentation::getYOriginInGlobalCrs | ( | ) | const |
Gets the Y coordinate origin of this geometry. The Y coordinate is given in the global CRS.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Z coordinate of the I offset of this geometry. The Z coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Z coordinate of the J offset of this geometry. The Z coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Z coordinate of the K offset of this geometry. The Z coordinate is given in the local CRS. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::logic_error | If this grid is partial. |
double.NAN
.
|
pure virtual |
Gets the Z coordinate of the origin of this geometry. The Z coordinate is given in the local CRS.
std::logic_error | If this grid is partial. |
double.NAN
. double resqml2::IjkGridLatticeRepresentation::getZOriginInGlobalCrs | ( | ) | const |
Gets the Z coordinate origin of this geometry. The Z coordinate is given in the global CRS.
std::logic_error | If this grid is partial. |
double.NAN
. bool resqml2::IjkGridLatticeRepresentation::isAFaciesCube | ( | ) | const |
Indicates whether this instance corresponds to a facies cube or not.
bool resqml2::IjkGridLatticeRepresentation::isASeismicCube | ( | ) | const |
Indicates whether this instance corresponds to a seismic cube or not.
|
pure virtual |
Sets the geometry of this IJK grid as a regular IJK grid. I axis is fastest one in memory, whatever its direction is. K axis is fastest one in memory, whatever its direction is.
std::invalid_argument | If localCrs is nullptr and no default local 3d CRS is defined. |
mostComplexPillarGeometry | The most complex pillar shape which we can find on this IJK grid. | |
kDirectionKind | The K direction kind. | |
isRightHanded | Indicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions. | |
originX | The X coordinate of the origin. | |
originY | The Y coordinate of the origin. | |
originZ | The Z coordinate of the origin. | |
directionIX | The X coordinate of the I offset. | |
directionIY | The Y coordinate of the I offset. | |
directionIZ | The Z coordinate of the I offset. | |
spacingI | The spacing in the I direction. | |
directionJX | The X coordinate of the J offset. | |
directionJY | The Y coordinate of the J offset. | |
directionJZ | The Z coordinate of the J offset. | |
spacingJ | The spacing in the J direction. | |
directionKX | The X coordinate of the K offset. | |
directionKY | The Y coordinate of the K offset. | |
directionKZ | The Z coordinate of the K offset. | |
spacingK | The spacing in the K direction. | |
[in] | localCrs | (Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used. |