Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Classes | Public Member Functions | List of all members
resqml2::IjkGridParametricRepresentation Class Referenceabstract

An IJK Grid parametric representation define the cell corner positions by means of parameters along the pillars of the grid. Adjacent cell corner are supposed to be located the same so they are not repeated unless you define split lines or split nodes. More...

#include <IjkGridParametricRepresentation.h>

Inheritance diagram for resqml2::IjkGridParametricRepresentation:
resqml2::AbstractIjkGridRepresentation resqml2::AbstractColumnLayerGridRepresentation resqml2::AbstractGridRepresentation resqml2::AbstractRepresentation common::AbstractObject resqml2_0_1::IjkGridParametricRepresentation resqml2_2::IjkGridParametricRepresentation

Public Member Functions

virtual ~IjkGridParametricRepresentation ()
 
void getXyzPointsOfKInterfaceSequence (unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double *xyzPoints) final
 Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS. More...
 
void getXyzPointsOfBlock (double *xyzPoints) final
 Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded. More...
 
virtual unsigned int getControlPointMaxCountPerPillar () const =0
 
void getControlPoints (double *controlPoints, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const
 
virtual bool hasControlPointParameters () const =0
 
void getControlPointParameters (double *controlPointParameters, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const
 
virtual bool isParametricLineKindConstant () const =0
 
virtual short getConstantParametricLineKind () const =0
 
void getParametricLineKind (short *pillarKind, bool reverseIAxis=false, bool reverseJAxis=false) const
 
void getParametersOfNodes (double *parameters, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const
 
void getParametersOfNodesOfKInterfaceSequence (unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double *parameters)
 
void setGeometryAsParametricNonSplittedPillarNodes (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, bool isRightHanded, double const *parameters, double const *controlPoints, double const *controlPointParameters, unsigned int controlPointMaxCountPerPillar, short const *pillarKind, eml2::AbstractHdfProxy *proxy=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr)
 
void setGeometryAsParametricNonSplittedPillarNodesUsingExistingDatasets (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, const std::string &parameters, const std::string &controlPoints, const std::string &controlPointParameters, unsigned int controlPointMaxCountPerPillar, const std::string &pillarKind, const std::string &definedPillars, eml2::AbstractHdfProxy *proxy=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr)
 
virtual void setGeometryAsParametricSplittedPillarNodes (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, bool isRightHanded, double const *parameters, double const *controlPoints, double const *controlPointParameters, unsigned int controlPointMaxCountPerPillar, short const *pillarKind, eml2::AbstractHdfProxy *proxy, unsigned long splitCoordinateLineCount, unsigned int const *pillarOfCoordinateLine, unsigned int const *splitCoordinateLineColumnCumulativeCount, unsigned int const *splitCoordinateLineColumns, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
 
virtual void setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, const std::string &parameters, const std::string &controlPoints, const std::string &controlPointParameters, unsigned int controlPointMaxCountPerPillar, const std::string &pillarKind, const std::string &definedPillars, eml2::AbstractHdfProxy *proxy, unsigned long splitCoordinateLineCount, const std::string &pillarOfCoordinateLine, const std::string &splitCoordinateLineColumnCumulativeCount, const std::string &splitCoordinateLineColumns, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
 
void setGeometryAsParametricSplittedPillarNodes (bool isRightHanded, double const *parameters, double const *controlPoints, double const *controlPointParameters, unsigned int controlPointCountPerPillar, short pillarKind, eml2::AbstractHdfProxy *proxy, unsigned long splitCoordinateLineCount, unsigned int const *pillarOfCoordinateLine, unsigned int const *splitCoordinateLineColumnCumulativeCount, unsigned int const *splitCoordinateLineColumns, resqml2::AbstractLocal3dCrs *localCrs=nullptr)
 
virtual void setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets (gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, const std::string &parameters, const std::string &controlPoints, const std::string &controlPointParameters, unsigned int controlPointCountPerPillar, short pillarKind, eml2::AbstractHdfProxy *proxy, unsigned long splitCoordinateLineCount, const std::string &pillarOfCoordinateLine, const std::string &splitCoordinateLineColumnCumulativeCount, const std::string &splitCoordinateLineColumns, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0
 
bool isNodeGeometryCompressed () const final
 
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. More...
 
uint64_t getCellCount () const final
 
unsigned int getColumnCount () const
 
unsigned int getPillarCount () const
 
unsigned int getKGapsCount () const
 
void getKGaps (bool *kGaps) const
 
unsigned int 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
 
unsigned long getSplitCoordinateLineCount () const
 
unsigned long getBlockSplitCoordinateLineCount () const
 
uint64_t getSplitNodeCount () const
 
void getPillarGeometryIsDefined (bool *pillarGeometryIsDefined, bool reverseIAxis=false, bool reverseJAxis=false) const
 
bool hasEnabledCellInformation () const
 
void getEnabledCells (bool *enabledCells, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const
 
void setEnabledCells (unsigned char *enabledCells, eml2::AbstractHdfProxy *proxy=nullptr)
 
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. More...
 
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. More...
 
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(). More...
 
uint64_t getXyzPointCountOfKInterface () const
 
uint64_t getXyzPointCountOfBlock () const
 
void getXyzPointsOfKInterface (unsigned int kInterface, double *xyzPoints)
 
gsoap_resqml2_0_1::resqml20__KDirection getKDirection () const override
 
virtual common::DataObjectReference getHdfProxyDor () const override
 Gets the data object reference of the HDF proxy which is used for storing the numerical values of this representation (i.e. its geometry). More...
 
virtual uint64_t getXyzPointCountOfPatch (unsigned int patchIndex) const override
 
virtual void getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const override
 Gets all the xyz points of a particular patch of this representation. xyz points are given in the local CRS. More...
 
std::string getXmlTag () const final
 
unsigned int getPatchCount () const override
 
virtual std::string getXmlNamespace () const override
 
- Public Member Functions inherited from resqml2::AbstractColumnLayerGridRepresentation
virtual ~AbstractColumnLayerGridRepresentation ()=default
 
unsigned int getKCellCount () const
 
void setKCellCount (unsigned int kCount)
 
void setIntervalAssociationWithStratigraphicOrganizationInterpretation (uint64_t *stratiUnitIndices, uint64_t nullValue, resqml2::AbstractStratigraphicOrganizationInterpretation *stratiOrgInterp, eml2::AbstractHdfProxy *hdfProxy=nullptr)
 
common::DataObjectReference getStratigraphicOrganizationInterpretationDor () const final
 
bool hasIntervalStratigraphicUnitIndices () const
 
uint64_t getIntervalStratigraphicUnitIndices (uint64_t *stratiUnitIndices)
 
gsoap_resqml2_0_1::resqml20__PillarShape getMostComplexPillarGeometry () const
 
- Public Member Functions inherited from resqml2::AbstractGridRepresentation
virtual ~AbstractGridRepresentation ()=default
 
std::vector< class GridConnectionSetRepresentation * > getGridConnectionSetRepresentationSet () const
 
unsigned int getGridConnectionSetRepresentationCount () const
 
class GridConnectionSetRepresentationgetGridConnectionSetRepresentation (unsigned int index) const
 
AbstractGridRepresentationgetParentGrid () const
 
common::DataObjectReference getParentGridDor () const
 
std::vector< resqml2::AbstractGridRepresentation * > getChildGridSet () const
 
unsigned int getChildGridCount () const
 
AbstractGridRepresentationgetChildGrid (unsigned int index) const
 
void setParentWindow (uint64_t *cellIndices, uint64_t cellIndexCount, class UnstructuredGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr)
 
void setParentWindow (unsigned int *columnIndices, unsigned int columnIndexCount, unsigned int kLayerIndexRegridStart, unsigned int *childCellCountPerInterval, unsigned int *parentCellCountPerInterval, unsigned int intervalCount, class AbstractColumnLayerGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *childCellWeights=nullptr)
 
void setParentWindow (unsigned int iCellIndexRegridStart, unsigned int *childCellCountPerIInterval, unsigned int *parentCellCountPerIInterval, unsigned int iIntervalCount, unsigned int jCellIndexRegridStart, unsigned int *childCellCountPerJInterval, unsigned int *parentCellCountPerJInterval, unsigned int jIntervalCount, unsigned int kCellIndexRegridStart, unsigned int *childCellCountPerKInterval, unsigned int *parentCellCountPerKInterval, unsigned int kIntervalCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr)
 
void setParentWindow (unsigned int iCellIndexRegridStart, unsigned int constantChildCellCountPerIInterval, unsigned int constantParentCellCountPerIInterval, unsigned int iIntervalCount, unsigned int jCellIndexRegridStart, unsigned int constantChildCellCountPerJInterval, unsigned int constantParentCellCountPerJInterval, unsigned int jIntervalCount, unsigned int kCellIndexRegridStart, unsigned int constantChildCellCountPerKInterval, unsigned int constantParentCellCountPerKInterval, unsigned int kIntervalCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr)
 Indicates that this grid takes place into another IJK parent grid. This method assumes that the count of cells per regrid interval is constant in both child and parent grids. More...
 
void setParentWindow (unsigned int iCellIndexRegridStart, unsigned int iChildCellCount, unsigned int iParentCellCount, unsigned int jCellIndexRegridStart, unsigned int jChildCellCount, unsigned int jParentCellCount, unsigned int kCellIndexRegridStart, unsigned int kChildCellCount, unsigned int kParentCellCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr)
 
void setForcedNonRegridedParentCell (uint64_t *cellIndices, uint64_t cellIndexCount)
 
void setCellOverlap (uint64_t parentChildCellPairCount, uint64_t *parentChildCellPair, const std::string &volumeUom, double *overlapVolumes=nullptr)
 
int64_t getParentCellIndexCount () const
 
void getParentCellIndices (uint64_t *parentCellIndices) const
 
int64_t getParentColumnIndexCount () const
 
void getParentColumnIndices (uint64_t *parentColumnIndices) const
 
uint64_t getRegridStartIndexOnParentGrid (char dimension) const
 
uint64_t getRegridIntervalCount (char dimension) const
 
bool isRegridCellCountPerIntervalConstant (char dimension, bool childVsParentCellCount) const
 
uint64_t getRegridConstantCellCountPerInterval (char dimension, bool childVsParentCellCount) const
 
void getRegridCellCountPerInterval (char dimension, uint64_t *childCellCountPerInterval, bool childVsParentCellCount) const
 
bool hasRegridChildCellWeights (char dimension) const
 
void getRegridChildCellWeights (char dimension, double *childCellWeights) const
 
bool hasForcedNonRegridedParentCell () const
 
void setCellAssociationWithStratigraphicOrganizationInterpretation (uint64_t *stratiUnitIndices, uint64_t nullValue, class AbstractStratigraphicOrganizationInterpretation *stratiOrgInterp)
 
class AbstractStratigraphicOrganizationInterpretationgetStratigraphicOrganizationInterpretation () const
 
bool hasCellStratigraphicUnitIndices () const
 
uint64_t getCellStratigraphicUnitIndices (uint64_t *stratiUnitIndices)
 
void setCellAssociationWithRockFluidOrganizationInterpretation (uint64_t *rockFluidUnitIndices, uint64_t nullValue, class RockFluidOrganizationInterpretation *rockFluidOrgInterp)
 
class RockFluidOrganizationInterpretationgetRockFluidOrganizationInterpretation () const
 
virtual common::DataObjectReference getRockFluidOrganizationInterpretationDor () const
 
bool hasCellFluidPhaseUnitIndices () const
 
uint64_t getCellFluidPhaseUnitIndices (uint64_t *rockfluidUnitIndices)
 
bool isTruncated () const
 
uint64_t getTruncatedFaceCount () const
 
void getNodeIndicesOfTruncatedFaces (uint64_t *nodeIndices) const
 
void getCumulativeNodeCountPerTruncatedFace (uint64_t *nodeCountPerFace) const
 
void getNodeCountPerTruncatedFace (uint64_t *nodeCountPerFace) const
 
uint64_t getTruncatedCellCount () const
 
void getTruncatedCellIndices (uint64_t *cellIndices) const
 
void getTruncatedFaceIndicesOfTruncatedCells (uint64_t *faceIndices) const
 
void getCumulativeTruncatedFaceCountPerTruncatedCell (uint64_t *cumulativeFaceCountPerCell) const
 
void getTruncatedFaceCountPerTruncatedCell (uint64_t *faceCountPerCell) const
 
void getNonTruncatedFaceIndicesOfTruncatedCells (uint64_t *faceIndices) const
 
void getCumulativeNonTruncatedFaceCountPerTruncatedCell (uint64_t *cumulativeFaceCountPerCell) const
 
void getNonTruncatedFaceCountPerTruncatedCell (uint64_t *faceCountPerCell) const
 
void getTruncatedFaceIsRightHanded (unsigned char *cellFaceIsRightHanded) const
 
void loadTargetRelationships ()
 
- Public Member Functions inherited from resqml2::AbstractRepresentation
virtual ~AbstractRepresentation ()=default
 
class AbstractLocal3dCrsgetLocalCrs (unsigned int patchIndex) const
 
virtual common::DataObjectReference getLocalCrsDor (unsigned int patchIndex) const
 
std::vector< class AbstractProperty * > getPropertySet () const
 
void setInterpretation (class AbstractFeatureInterpretation *interp)
 
class AbstractFeatureInterpretationgetInterpretation () const
 
common::DataObjectReference getInterpretationDor () const
 
uint64_t getXyzPointCountOfAllPatches () const
 
void getXyzPointsOfPatchInGlobalCrs (unsigned int patchIndex, double *xyzPoints) const
 Gets all the xyz points of a particular patch of this representation. xyz points are given in the global CRS. More...
 
void getXyzPointsOfAllPatches (double *xyzPoints) const
 Gets all the xyz points of all patches of this representation. xyz points are given in the local CRS. More...
 
bool isInSingleLocalCrs () const
 
bool isInSingleGlobalCrs () const
 
void getXyzPointsOfAllPatchesInGlobalCrs (double *xyzPoints) const
 
AbstractRepresentationgetSeismicSupportOfPatch (const unsigned int &patchIndex) const
 
std::set< AbstractRepresentation * > getAllSeismicSupport () const
 
void pushBackIntoRepresentationSet (class RepresentationSetRepresentation *repSet)
 
void addSeismic3dCoordinatesToPatch (unsigned int patchIndex, double *inlines, double *crosslines, unsigned int pointCount, resqml2::AbstractRepresentation *seismicSupport, eml2::AbstractHdfProxy *proxy)
 
void addSeismic3dCoordinatesToPatch (unsigned int patchIndex, double startInline, double incrInline, unsigned int countInline, double startCrossline, double incrCrossline, unsigned int countCrossline, resqml2::AbstractRepresentation *seismicSupport)
 
void addSeismic2dCoordinatesToPatch (unsigned int patchIndex, double *lineAbscissa, resqml2::AbstractRepresentation *seismicSupport, eml2::AbstractHdfProxy *proxy)
 
void getSeismicLineAbscissaOfPointsOfPatch (unsigned int patchIndex, double *values) const
 
void getInlinesOfPointsOfPatch (unsigned int patchIndex, double *values) const
 
void getCrosslinesOfPointsOfPatch (unsigned int patchIndex, double *values) const
 
- Public Member Functions inherited from common::AbstractObject
bool isPartial () const
 
virtual bool isTopLevelElement () const
 
std::string getUuid () const
 
std::string getTitle () const
 
std::string getEditor () const
 
time_t getCreation () const
 
tm getCreationAsTimeStructure () const
 
std::string getOriginator () const
 
std::string getDescription () const
 
time_t getLastUpdate () const
 
tm getLastUpdateAsTimeStructure () const
 
std::string getFormat () const
 
std::string getDescriptiveKeywords () const
 
std::string getVersion () const
 
void setTitle (const std::string &title)
 
void setEditor (const std::string &editor)
 
void setCreation (time_t creation)
 
void setCreation (const tm &creation)
 
void setOriginator (const std::string &originator)
 
void setDescription (const std::string &description)
 
void setLastUpdate (time_t lastUpdate)
 
void setLastUpdate (const tm &lastUpdate)
 
void setDescriptiveKeywords (const std::string &descriptiveKeywords)
 
void setVersion (const std::string &version)
 
void setMetadata (const std::string &title, const std::string &editor, time_t creation, const std::string &originator, const std::string &description, time_t lastUpdate, const std::string &descriptiveKeywords)
 
void serializeIntoStream (std::ostream *stream)
 
void setGsoapProxy (gsoap_resqml2_0_1::eml20__AbstractCitedDataObject *gsoapProxy)
 
void setGsoapProxy (gsoap_eml2_1::eml21__AbstractObject *gsoapProxy)
 
gsoap_resqml2_0_1::eml20__AbstractCitedDataObject * getEml20GsoapProxy () const
 
gsoap_eml2_1::eml21__AbstractObject * getEml21GsoapProxy () const
 
gsoap_eml2_2::eml22__AbstractObject * getEml22GsoapProxy () const
 
void setGsoapProxy (gsoap_eml2_2::eml22__AbstractObject *gsoapProxy)
 
gsoap_eml2_3::eml23__AbstractObject * getEml23GsoapProxy () const
 
void setGsoapProxy (gsoap_eml2_3::eml23__AbstractObject *gsoapProxy)
 
soap * getGsoapContext () const
 
int getGsoapType () const
 
gsoap_resqml2_0_1::eml20__DataObjectReference * newResqmlReference () const
 
gsoap_eml2_1::eml21__DataObjectReference * newEmlReference () const
 
gsoap_eml2_2::eml22__DataObjectReference * newEml22Reference () const
 
gsoap_eml2_3::eml23__DataObjectReference * newEml23Reference () const
 
gsoap_resqml2_0_1::resqml20__ContactElementReference * newContactElementReference2_0_1 () const
 
gsoap_eml2_3::resqml22__ContactElement * newContactElementReference2_2 () const
 
common::DataObjectRepositorygetRepository () const
 
virtual std::string getXmlNamespaceVersion () const
 
virtual std::string getContentType () const
 
virtual std::string getQualifiedType () const
 
virtual std::string getPartNameInEpcDocument () const
 
std::string serializeIntoString ()
 
void addAlias (const std::string &authority, const std::string &title)
 
unsigned int getAliasCount () const
 
std::string getAliasAuthorityAtIndex (unsigned int index) const
 
std::string getAliasTitleAtIndex (unsigned int index) const
 
std::vector< eml2::Activity * > getActivitySet () const
 
unsigned int getActivityCount () const
 
eml2::ActivitygetActivity (unsigned int index) const
 
void pushBackExtraMetadata (const std::string &key, const std::string &value)
 
std::unordered_map< std::string, std::string > getExtraMetadataSet () const
 
std::vector< std::string > getExtraMetadata (const std::string &key) const
 
unsigned int getExtraMetadataCount () const
 
std::string getExtraMetadataKeyAtIndex (unsigned int index) const
 
std::string getExtraMetadataStringValueAtIndex (unsigned int index) const
 

Additional Inherited Members

- Public Types inherited from resqml2::AbstractIjkGridRepresentation
enum  geometryKind {
  UNKNOWN = 0 , EXPLICIT = 1 , PARAMETRIC = 2 , LATTICE = 3 ,
  NO_GEOMETRY = 4
}
 
- Public Types inherited from resqml2::AbstractRepresentation
enum  indexableElement {
  NODE = 0 , EDGE = 1 , FACE = 2 , VOLUME = 3 ,
  PILLAR = 4
}
 
- Public Types inherited from common::AbstractObject
enum  hdfDatatypeEnum {
  UNKNOWN = 0 , DOUBLE = 1 , FLOAT = 2 , LONG_64 = 3 ,
  ULONG_64 = 4 , INT = 5 , UINT = 6 , SHORT = 7 ,
  USHORT = 8 , CHAR = 9 , UCHAR = 10
}
 
- Static Public Member Functions inherited from common::AbstractObject
static void setFormat (const std::string &vendor, const std::string &applicationName, const std::string &applicationVersionNumber)
 
- Static Public Attributes inherited from resqml2::AbstractIjkGridRepresentation
static const char * XML_TAG
 
static const char * XML_TAG_TRUNCATED
 
- Static Public Attributes inherited from resqml2::AbstractGridRepresentation
static const char * XML_TAG
 
- Static Public Attributes inherited from resqml2::AbstractRepresentation
static const char * XML_TAG
 

Detailed Description

An IJK Grid parametric representation define the cell corner positions by means of parameters along the pillars of the grid. Adjacent cell corner are supposed to be located the same so they are not repeated unless you define split lines or split nodes.

Constructor & Destructor Documentation

◆ ~IjkGridParametricRepresentation()

virtual resqml2::IjkGridParametricRepresentation::~IjkGridParametricRepresentation ( )
inlinevirtual

Destructor cleans the pillars information memory if allocated.

Reimplemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

Member Function Documentation

◆ getConstantParametricLineKind()

virtual short resqml2::IjkGridParametricRepresentation::getConstantParametricLineKind ( ) const
pure virtual

Gets the constant parametric line kind of this IJK parametric grid.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::logic_errorIf this grid is not actually a parametric one or if the getting of the constant parametric line kind is not supported yet for this grid.
Returns
The constant parametric line kind.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ getControlPointMaxCountPerPillar()

virtual unsigned int resqml2::IjkGridParametricRepresentation::getControlPointMaxCountPerPillar ( ) const
pure virtual

Gets the maximum control points count on a pillar of this grid.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::range_errorIf the knot count of this grid is strictly greater than unsigned int max.
std::logic_errorIf the computing of the maximum control points count is not yet supported for this grid.
Returns
The maximum control points count on a pillar of this grid.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ getControlPointParameters()

void resqml2::IjkGridParametricRepresentation::getControlPointParameters ( double *  controlPointParameters,
bool  reverseIAxis = false,
bool  reverseJAxis = false,
bool  reverseKAxis = false 
) const

Gets all the control point parameters of each pillar of this IJK parametric grid.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::range_errorIf the knot count of this grid is strictly greater than unsigned int max.
std::logic_errorIf the reading of the control point parameters of this grid is not supported yet.
Parameters
[out]controlPointParametersAn array for receiving the control point parameters. It must be preallocated with a size of (getICellCount() + 1) * (getJCellCount() + 1) * getControlPointMaxCountPerPillar(). They are ordered first (quickest) by pillar and then (slowest) by control point : cp0 of pillar0, cp0 of pillar1, cp0 of pillar3, ..., cp0 of pillarCount-1, cp1 of pillar0, cp1 of pillar1, etc... Pad with nan values if necessary. For information, pillars are ordered first (quicket) by I and then (slowest) by J. Only relevant in case it contains at least one non vertical or non Z linear parametric line.
reverseIAxis(Optional) True to reverse i axis. Default value is false.
reverseJAxis(Optional) True to reverse j axis. Default value is false.
reverseKAxis(Optional) True to reverse k axis. Default value is false.

◆ getControlPoints()

void resqml2::IjkGridParametricRepresentation::getControlPoints ( double *  controlPoints,
bool  reverseIAxis = false,
bool  reverseJAxis = false,
bool  reverseKAxis = false 
) const

Gets all the control points of each pillar of this IJK parametric grid.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::range_errorIf the knot count of this grid is strictly greater than unsigned int max.
std::logic_errorIf the reading of the control points of this grid is not supported yet.
Parameters
[out]controlPointsAn array for receiving the control points. It must be preallocated with a size of (getICellCount() + 1) * (getJCellCount() + 1) * getControlPointMaxCountPerPillar() * 3. They are ordered first (quickest) by pillar and then (slowest) by control point : cp0 of pillar0, cp0 of pillar1, cp0 of pillar3, ..., cp0 of pillarCount-1, cp1 of pillar0, cp1 of pillar1, etc... Pad with nan values if necessary. For information, pillars are ordered first (quicket) by I and then (slowest) by J.
reverseIAxis(Optional) True to reverse i axis. Default value is false.
reverseJAxis(Optional) True to reverse j axis. Default value is false.
reverseKAxis(Optional) True to reverse k axis. Default value is false.

◆ getGeometryKind()

geometryKind resqml2::IjkGridParametricRepresentation::getGeometryKind ( ) const
finalvirtual

Gets the geometry kind of this IJK grid.

Returns
The geometry kind of this IJK grid.

Reimplemented from resqml2::AbstractIjkGridRepresentation.

◆ getParametersOfNodes()

void resqml2::IjkGridParametricRepresentation::getParametersOfNodes ( double *  parameters,
bool  reverseIAxis = false,
bool  reverseJAxis = false,
bool  reverseKAxis = false 
) const

Gets all the parameters of each node of this IJK parametric grid. They are ordered first (quickest) by coordinate line and then (slowest) by K level.

Exceptions
std::invalid_argumentIf there is no geometry on this IJK grid.
std::range_errorIf the count of split coordinate lines is strictly greater than unsigned int max.
std::logic_errorIf the reading of nodes parameters is not yet supported for this grid.
Parameters
[out]parametersAn array for receiving the parameter of each node. It must be preallocated with a size of ((getICellCount() + 1) * (getJCellCount() + 1) + getSplitCoordinateLineCount()) * (getKCellCount() + 1). They are ordered first (quickest) by coordinate line and then (slowest) by K level.
reverseIAxis(Optional) True to reverse i axis. Default value is false.
reverseJAxis(Optional) True to reverse j axis. Default value is false.
reverseKAxis(Optional) True to reverse k axis. Default value is false.

◆ getParametersOfNodesOfKInterfaceSequence()

void resqml2::IjkGridParametricRepresentation::getParametersOfNodesOfKInterfaceSequence ( unsigned int  kInterfaceStart,
unsigned int  kInterfaceEnd,
double *  parameters 
)

Gets all the parameters of each node of a particular sequence of K interfaces of this IJK parametric grid.

Exceptions
std::invalid_argumentIf there is no geometry on this IJK grid.
std::logic_errorIf the reading of nodes parameters is not yet supported for this sequence of K interfaces.
std::out_of_rangeIf kInterfaceStart > getKCellCount() || kInterfaceEnd > getKCellCount()).
std::range_errorIf kInterfaceStart > kInterfaceEnd
std::invalid_argumentIf parameters is nullptr.
Parameters
kInterfaceStartThe K index of the starting interface taken from zero to getKCellCount().
kInterfaceEndThe K index of the ending interface taken from zero to getKCellCount().
[out]parametersAn array for receiving the parameter of each node. It must be pre allocated with a size of getXyzPointCountOfKInterface() * (kInterfaceEnd - kInterfaceStart + 1). They are ordered first (quickest) by coordinate line and then (slowest) by K level.

◆ getParametricLineKind()

void resqml2::IjkGridParametricRepresentation::getParametricLineKind ( short *  pillarKind,
bool  reverseIAxis = false,
bool  reverseJAxis = false 
) const

Gets the kind of each parametric line representing a pillar.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf the parametric line kind count is inconsistent with the pillar count. @€xception std::logic_error If getting the parametric lines kind is not yet supported for this grid.
Parameters
[out]pillarKindAn array for receiving the parametric lines kind. It must be preallocated with a size of (getICellCount() + 1) * (getJCellCount() + 1). Semantic of values is: 0 = vertical, 1 = linear spline, 2 = natural cubic spline, 3 = cubic spline, 4 = Z linear cubic spline, 5 = minimum-curvature spline, (-1) = null: no line.
reverseIAxis(Optional) True to reverse i axis. Default value is false.
reverseJAxis(Optional) True to reverse j axis. Default value is false.

◆ getXyzPointsOfBlock()

void resqml2::IjkGridParametricRepresentation::getXyzPointsOfBlock ( double *  xyzPoints)
finalvirtual

Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded.

Exceptions
std::logic_errorIf the computing of XYZ points is not yet supported from this parametric grid.
std::invalid_argumentIf the block information is not loaded.
std::invalid_argumentIf xyzPoints is nullptr.
Parameters
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is coordinate dimension (XYZ) and second dimension is vertex dimension. It must be pre allocated with a size of 3 * getXyzPointCountOfBlock().

Reimplemented from resqml2::AbstractIjkGridRepresentation.

◆ getXyzPointsOfKInterfaceSequence()

void resqml2::IjkGridParametricRepresentation::getXyzPointsOfKInterfaceSequence ( unsigned int  kInterfaceStart,
unsigned int  kInterfaceEnd,
double *  xyzPoints 
)
finalvirtual

Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS.

Exceptions
std::out_of_rangeIf kInterfaceStart > getKCellCount() or kInterfaceEnd > getKCellCount() + getKGapsCount().
std::range_errorIf kInterfaceStart > kInterfaceEnd.
std::invalid_argumentIf xyzPoints is nullptr.
Parameters
kInterfaceStartThe K index of the starting interface taken from zero to getKCellCount().
kInterfaceEndThe K index of the ending interface taken from zero to getKCellCount() + getKGapsCount().
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is coordinate dimension (XYZ) and second dimension is vertex dimension. It must be preallocated with a size of 3 * getXyzPointCountOfKInterface() * (kInterfaceEnd - kInterfaceStart + 1).

Reimplemented from resqml2::AbstractIjkGridRepresentation.

◆ hasControlPointParameters()

virtual bool resqml2::IjkGridParametricRepresentation::hasControlPointParameters ( ) const
pure virtual

Checks if this IJK parametric grid contains some parameters on some control points. It happens when the grid contains at least one non vertical or a non Z linear parametric line.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::logic_errorIf the checking for the existance of control point parameters is not yet supported for this grid.
Returns
True if there exists some control point parameters, false if not.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ isNodeGeometryCompressed()

bool resqml2::IjkGridParametricRepresentation::isNodeGeometryCompressed ( ) const
finalvirtual

Checks whether the node geometry dataset is compressed or not.

Exceptions
std::invalid_argumentIf this grid has no geometry.
Returns
True if the node geometry dataset is compressed, false if not.

Reimplemented from resqml2::AbstractIjkGridRepresentation.

◆ isParametricLineKindConstant()

virtual bool resqml2::IjkGridParametricRepresentation::isParametricLineKindConstant ( ) const
pure virtual

Checks if the parametric lines kind is constant in this IJK parametric grid.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::logic_errorIf this grid is not actually a parametric one or if the checking for the parametric lines kind constantness is not supported yet for this grid.
Returns
True if the parametric lines kind is constant, false if not.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ setGeometryAsParametricNonSplittedPillarNodes()

void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricNonSplittedPillarNodes ( gsoap_resqml2_0_1::resqml20__PillarShape  mostComplexPillarGeometry,
bool  isRightHanded,
double const *  parameters,
double const *  controlPoints,
double const *  controlPointParameters,
unsigned int  controlPointMaxCountPerPillar,
short const *  pillarKind,
eml2::AbstractHdfProxy proxy = nullptr,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)

Sets the geometry of this IJK grid as parametric pillar nodes where no pillar is splitted. Defined pillars are deduced from pillarKind == -1.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
mostComplexPillarGeometryThe most complex pillar shape which we can find on this IJK grid.
isRightHandedIndicates that this IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
[in]parametersThe parameter values (regarding the pillars) of each node of the grid.
[in]controlPointsThe control points of the pillars of the grid. They are ordered first (quickest) by pillar and then (slowest) by control point : cp0 of pillar0, cp0 of pillar1, cp0 of pillar3, ..., cp0 of pillarCount-1, cp1 of pillar0, cp1 of pillar1, etc... Pad with nan values if necessary.
[in]controlPointParametersThe value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid.
controlPointMaxCountPerPillarThe maximum count of control points which defines a pillar of this grid.
[in]pillarKindThe kind of each pillar: 0 = vertical, 1 = linear spline, 2 = natural cubic spline, 3 = cubic spline, 4 = Z linear cubic spline, 5 = minimum-curvature spline, (-1) = null: no line.
[in,out]proxy(Optional) The HDF proxy where all numerical values will be stored. If nullptr (default), then the default HDF proxy of the repository will be used.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

◆ setGeometryAsParametricNonSplittedPillarNodesUsingExistingDatasets()

void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricNonSplittedPillarNodesUsingExistingDatasets ( gsoap_resqml2_0_1::resqml20__PillarShape  mostComplexPillarGeometry,
gsoap_resqml2_0_1::resqml20__KDirection  kDirectionKind,
bool  isRightHanded,
const std::string &  parameters,
const std::string &  controlPoints,
const std::string &  controlPointParameters,
unsigned int  controlPointMaxCountPerPillar,
const std::string &  pillarKind,
const std::string &  definedPillars,
eml2::AbstractHdfProxy proxy = nullptr,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)

Sets the geometry of this IJK grid as parametric pillar nodes where no pillar is splitted. Defined pillars are deduced from pillarKind == -1. Same as setGeometryAsParametricNonSplittedPillarNodes() where the HDF datasets are already written in the the file.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
mostComplexPillarGeometryThe most complex pillar shape which we can find on this IJK grid.
kDirectionKindThe K direction kind.
isRightHandedIndicates that this IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
parametersPath to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid.
controlPointsPath to the HDF dataset containing the the control points of the pillars of the grid.
controlPointParametersPath to the HDF dataset containing the value of the parameter at each control points.
controlPointMaxCountPerPillarThe maximum count of control points which defines a pillar of this grid.
pillarKindPath to the HDF dataset containing the kind of each pillar.
definedPillarsPath to the HDF dataset where the defined pillars are identified : 0 value for not defined (i.e control points are NaN points, i.e pillarKind == -1) else the pillar is defined. This information overrides any pillar geometry information.
[in,out]proxy(Optional) The HDF proxy where all numerical values will be stored. If nullptr (default), then the default HDF proxy of the repository will be used.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

◆ setGeometryAsParametricSplittedPillarNodes() [1/2]

void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricSplittedPillarNodes ( bool  isRightHanded,
double const *  parameters,
double const *  controlPoints,
double const *  controlPointParameters,
unsigned int  controlPointCountPerPillar,
short  pillarKind,
eml2::AbstractHdfProxy proxy,
unsigned long  splitCoordinateLineCount,
unsigned int const *  pillarOfCoordinateLine,
unsigned int const *  splitCoordinateLineColumnCumulativeCount,
unsigned int const *  splitCoordinateLineColumns,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)

Set the geometry of the IJK grid as parametric pillar nodes where at least one pillar is supposed to be splitted and where all pillars are of the same kind. All pillars are assumed to be defined using this method.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
isRightHandedIndicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
[in]parametersThe parameter values (regarding the pillars) of each node of the grid.
[in]controlPointsThe control points of the pillars of the grid. They are ordered first (quickest) by pillar and then (slowest) by control point : cp0 of pillar0, cp0 of pillar1, cp0 of pillar3, ..., cp0 of pillarCount-1, cp1 of pillar0, cp1 of pillar1, etc... Pad with nan values if necessary.
[in]controlPointParametersThe value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid.
controlPointCountPerPillarThe maximum count of control points which defines a pillar of this grid.
pillarKindThe constant kind of each pillar : 0 = vertical, 1 = linear spline, 2 = natural cubic spline, 3 = cubic spline, 4 = Z linear cubic spline, 5 = minimum-curvature spline, (-1) = null: no line.
[in,out]proxyThe HDF proxy where all numerical values will be stored. If nullptr, then the default HDF proxy of the repository will be used.
splitCoordinateLineCountThe count of split coordinate line in this grid. A pillar being splitted by a maximum of 3 split coordinate lines (one coordinate line is always non splitted)
[in]pillarOfCoordinateLineFor each split coordinate line, indicates the pillar it belongs to.
[in]splitCoordinateLineColumnCumulativeCountFor each split coordinate line, indicates the count of grid column which are splitted by this coordinate line.
[in]splitCoordinateLineColumnsFor each split coordinate line, indicates the grid columns which are splitted by this coordinate line.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

◆ setGeometryAsParametricSplittedPillarNodes() [2/2]

virtual void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricSplittedPillarNodes ( gsoap_resqml2_0_1::resqml20__PillarShape  mostComplexPillarGeometry,
bool  isRightHanded,
double const *  parameters,
double const *  controlPoints,
double const *  controlPointParameters,
unsigned int  controlPointMaxCountPerPillar,
short const *  pillarKind,
eml2::AbstractHdfProxy proxy,
unsigned long  splitCoordinateLineCount,
unsigned int const *  pillarOfCoordinateLine,
unsigned int const *  splitCoordinateLineColumnCumulativeCount,
unsigned int const *  splitCoordinateLineColumns,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)
pure virtual

Sets the geometry of this IJK grid as parametric pillar nodes where at least one pillar is supposed to be splitted. Defined pillars are deduced from pillarKind == -1.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
mostComplexPillarGeometryThe most complex pillar shape which we can find on this ijk grid.
isRightHandedIndicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
[in]parametersThe parameter values (regarding the pillars) of each node of the grid.
[in]controlPointsThe control points of the pillars of the grid. They are ordered first (quickest) by pillar and then (slowest) by control point : cp0 of pillar0, cp0 of pillar1, cp0 of pillar3, ..., cp0 of pillarCount-1, cp1 of pillar0, cp1 of pillar1, etc... Pad with nan values if necessary.
[in]controlPointParametersThe value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid.
controlPointMaxCountPerPillarThe maximum count of control points which defines a pillar of this grid.
[in]pillarKindThe kind of each pillar : 0 = vertical, 1 = linear spline, 2 = natural cubic spline, 3 = cubic spline, 4 = Z linear cubic spline, 5 = minimum-curvature spline, (-1) = null: no line.
[in,out]proxyThe HDF proxy where all numerical values will be stored. If nullptr, then the default HDF proxy of the repository will be used.
splitCoordinateLineCountThe count of split coordinate line in this grid. A pillar being splitted by a maximum of 3 split coordinate lines (one coordinate line is always non splitted)
[in]pillarOfCoordinateLineFor each split coordinate line, indicates the pillar it belongs to.
[in]splitCoordinateLineColumnCumulativeCountFor each split coordinate line, indicates the count of grid column which are splitted by this coordinate line.
[in]splitCoordinateLineColumnsFor each split coordinate line, indicates the grid columns which are splitted by this coordinate line.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets() [1/2]

virtual void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets ( gsoap_resqml2_0_1::resqml20__KDirection  kDirectionKind,
bool  isRightHanded,
const std::string &  parameters,
const std::string &  controlPoints,
const std::string &  controlPointParameters,
unsigned int  controlPointCountPerPillar,
short  pillarKind,
eml2::AbstractHdfProxy proxy,
unsigned long  splitCoordinateLineCount,
const std::string &  pillarOfCoordinateLine,
const std::string &  splitCoordinateLineColumnCumulativeCount,
const std::string &  splitCoordinateLineColumns,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)
pure virtual

Set the geometry of the IJK grid as parametric pillar nodes where at least one pillar is supposed to be splitted and where all pillars are of the same kind. All pillars are assumed to be defined using this method.Same as setGeometryAsParametricSplittedPillarNodes where the HDF datasets are already written in the the file.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
kDirectionKindThe K direction kind.
isRightHandedIndicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
parametersPath to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid.
controlPointsPath to the HDF dataset containing the the control points of the pillars of the grid.
controlPointParametersPath to the HDF dataset containing the value of the parameter at each control points.
controlPointCountPerPillarThe maximum count of control points which defines a pillar of this grid.
pillarKindThe constant kind of each pillar : 0 = vertical, 1 = linear spline, 2 = natural cubic spline, 3 = cubic spline, 4 = Z linear cubic spline, 5 = minimum-curvature spline, (-1) = null: no line.
[in,out]proxyThe HDF proxy where all numerical values will be stored. If nullptr, then the default HDF proxy of the repository will be used.
splitCoordinateLineCountThe count of split coordinate line in this grid. A pillar being splitted by a maximum of 3 split coordinate lines (one coordinate line is always non splitted)
pillarOfCoordinateLinePath to the HDF dataset indicating for each split coordinate line, which pillar it belongs to.
splitCoordinateLineColumnCumulativeCountPath to the HDF dataset indicating for each split coordinate line, the count of grid column which are splitted by this coordinate line.
splitCoordinateLineColumnsPath to the HDF dataset indicating for each split coordinate line, the grid columns which are splitted by this coordinate line.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.

◆ setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets() [2/2]

virtual void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricSplittedPillarNodesUsingExistingDatasets ( gsoap_resqml2_0_1::resqml20__PillarShape  mostComplexPillarGeometry,
gsoap_resqml2_0_1::resqml20__KDirection  kDirectionKind,
bool  isRightHanded,
const std::string &  parameters,
const std::string &  controlPoints,
const std::string &  controlPointParameters,
unsigned int  controlPointMaxCountPerPillar,
const std::string &  pillarKind,
const std::string &  definedPillars,
eml2::AbstractHdfProxy proxy,
unsigned long  splitCoordinateLineCount,
const std::string &  pillarOfCoordinateLine,
const std::string &  splitCoordinateLineColumnCumulativeCount,
const std::string &  splitCoordinateLineColumns,
resqml2::AbstractLocal3dCrs localCrs = nullptr 
)
pure virtual

Sets the geometry of this IJK grid as parametric pillar nodes where at least one pillar is supposed to be splitted. Defined pillars are deduced from pillarKind == -1. Same as setGeometryAsParametricSplittedPillarNodes() where the HDF datasets are already written in the the file.

Exceptions
std::invalid_argumentIf there is no geometry on this grid.
std::invalid_argumentIf some parameters values are inconsistent.
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs is nullptr and no default local 3d CRS is defined.
Parameters
mostComplexPillarGeometryThe most complex pillar shape which we can find on this ijk grid.
kDirectionKindThe direction kind.
isRightHandedIndicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions.
parametersPath to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid.
controlPointsPath to the HDF dataset containing the the control points of the pillars of the grid.
controlPointParametersPath to the HDF dataset containing the value of the parameter at each control points.
controlPointMaxCountPerPillarThe maximum count of control points which defines a pillar of this grid.
pillarKindPath to the HDF dataset containing the kind of each pillar.
definedPillarsPath to the HDF dataset where the defined pillars are identified : 0 value for not defined (i.e control points are NaN points, i.e pillarKind == -1) else the pillar is defined. This information overrides any pillar geometry information.
[in,out]proxyThe HDF proxy where all numerical values will be stored. If nullptr, then the default HDF proxy of the repository will be used.
splitCoordinateLineCountThe count of split coordinate line in this grid. A pillar being splitted by a maximum of 3 split coordinate lines (one coordinate line is always non splitted)
pillarOfCoordinateLinePath to the HDF dataset indicating for each split coordinate line, which pillar it belongs to.
splitCoordinateLineColumnCumulativeCountPath to the HDF dataset indicating for each split coordinate line, the count of grid column which are splitted by this coordinate line.
splitCoordinateLineColumnsPath to the HDF dataset indicating for each split coordinate line, the grid columns which are splitted by this coordinate line.
[in]localCrs(Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used.

Implemented in resqml2_2::IjkGridParametricRepresentation, and resqml2_0_1::IjkGridParametricRepresentation.


The documentation for this class was generated from the following file: