Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
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>
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. | |
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. | |
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 ¶meters, 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, uint64_t 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 ¶meters, const std::string &controlPoints, const std::string &controlPointParameters, unsigned int controlPointMaxCountPerPillar, const std::string &pillarKind, const std::string &definedPillars, eml2 ::AbstractHdfProxy *proxy, uint64_t 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, uint64_t 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 ¶meters, const std::string &controlPoints, const std::string &controlPointParameters, unsigned int controlPointCountPerPillar, short pillarKind, eml2 ::AbstractHdfProxy *proxy, uint64_t 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. | |
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) |
gsoap_resqml2_0_1::resqml20__KDirection | getKDirection () const override |
virtual common::DataObjectReference | getHdfProxyDor () const override |
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. | |
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" |
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.
|
inlinevirtual |
Destructor cleans the pillars information memory if allocated.
|
pure virtual |
Gets the constant parametric line kind of this IJK parametric grid.
std::invalid_argument | If there is no geometry on this grid. |
std::logic_error | If 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. |
|
pure virtual |
Gets the maximum control points count on a pillar of this grid.
std::invalid_argument | If there is no geometry on this grid. |
std::range_error | If the knot count of this grid is strictly greater than unsigned int max. |
std::logic_error | If the computing of the maximum control points count is not yet supported for this grid. |
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.
std::invalid_argument | If there is no geometry on this grid. |
std::range_error | If the knot count of this grid is strictly greater than unsigned int max. |
std::logic_error | If the reading of the control point parameters of this grid is not supported yet. |
[out] | controlPointParameters | An 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. |
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.
std::invalid_argument | If there is no geometry on this grid. |
std::range_error | If the knot count of this grid is strictly greater than unsigned int max. |
std::logic_error | If the reading of the control points of this grid is not supported yet. |
[out] | controlPoints | An 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. |
|
finalvirtual |
Gets the geometry kind of this IJK grid.
Reimplemented from resqml2::AbstractIjkGridRepresentation.
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.
std::invalid_argument | If there is no geometry on this IJK grid. |
std::range_error | If the count of split coordinate lines is strictly greater than unsigned int max. |
std::logic_error | If the reading of nodes parameters is not yet supported for this grid. |
[out] | parameters | An 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. |
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.
std::invalid_argument | If there is no geometry on this IJK grid. |
std::logic_error | If the reading of nodes parameters is not yet supported for this sequence of K interfaces. |
std::out_of_range | If kInterfaceStart > getKCellCount() || kInterfaceEnd > getKCellCount()) . |
std::range_error | If kInterfaceStart > kInterfaceEnd |
std::invalid_argument | If parameters is nullptr . |
kInterfaceStart | The K index of the starting interface taken from zero to getKCellCount(). | |
kInterfaceEnd | The K index of the ending interface taken from zero to getKCellCount(). | |
[out] | parameters | An 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. |
void resqml2::IjkGridParametricRepresentation::getParametricLineKind | ( | short * | pillarKind, |
bool | reverseIAxis = false, | ||
bool | reverseJAxis = false ) const |
Gets the kind of each parametric line representing a pillar.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If 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. |
[out] | pillarKind | An 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. |
|
finalvirtual |
Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded.
std::logic_error | If the computing of XYZ points is not yet supported from this parametric grid. |
std::invalid_argument | If the block information is not loaded. |
std::invalid_argument | If xyzPoints is nullptr . |
[out] | xyzPoints | A 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.
|
finalvirtual |
Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS.
std::out_of_range | If kInterfaceStart > getKCellCount() or kInterfaceEnd > getKCellCount() + getKGapsCount(). |
std::range_error | If kInterfaceStart > kInterfaceEnd . |
std::invalid_argument | If xyzPoints is nullptr . |
kInterfaceStart | The K index of the starting interface taken from zero to getKCellCount(). | |
kInterfaceEnd | The K index of the ending interface taken from zero to getKCellCount() + getKGapsCount(). | |
[out] | xyzPoints | A 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.
|
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.
std::invalid_argument | If there is no geometry on this grid. |
std::logic_error | If the checking for the existance of control point parameters is not yet supported for this grid. |
|
finalvirtual |
Checks whether the node geometry dataset is compressed or not.
std::invalid_argument | If this grid has no geometry. |
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
pure virtual |
Checks if the parametric lines kind is constant in this IJK parametric grid.
std::invalid_argument | If there is no geometry on this grid. |
std::logic_error | If 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. |
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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
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. | |
isRightHanded | Indicates that this IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions. | |
[in] | parameters | The parameter values (regarding the pillars) of each node of the grid. |
[in] | controlPoints | The 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] | controlPointParameters | The value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid. |
controlPointMaxCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
[in] | pillarKind | The 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. |
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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
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 this IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions. | |
parameters | Path to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid. | |
controlPoints | Path to the HDF dataset containing the the control points of the pillars of the grid. | |
controlPointParameters | Path to the HDF dataset containing the value of the parameter at each control points. | |
controlPointMaxCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
pillarKind | Path to the HDF dataset containing the kind of each pillar. | |
definedPillars | Path 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. |
void resqml2::IjkGridParametricRepresentation::setGeometryAsParametricSplittedPillarNodes | ( | bool | isRightHanded, |
double const * | parameters, | ||
double const * | controlPoints, | ||
double const * | controlPointParameters, | ||
unsigned int | controlPointCountPerPillar, | ||
short | pillarKind, | ||
eml2 ::AbstractHdfProxy * | proxy, | ||
uint64_t | 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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If localCrs is nullptr and no default local 3d CRS is defined. |
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. | |
[in] | parameters | The parameter values (regarding the pillars) of each node of the grid. |
[in] | controlPoints | The 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] | controlPointParameters | The value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid. |
controlPointCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
pillarKind | The 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] | proxy | The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | The 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] | pillarOfCoordinateLine | For each split coordinate line, indicates the pillar it belongs to. |
[in] | splitCoordinateLineColumnCumulativeCount | For each split coordinate line, indicates the count of grid column which are splitted by this coordinate line. |
[in] | splitCoordinateLineColumns | For 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. |
|
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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
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. | |
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. | |
[in] | parameters | The parameter values (regarding the pillars) of each node of the grid. |
[in] | controlPoints | The 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] | controlPointParameters | The value of the parameter at each control points. It must be nullptr for vertical and Z linear cubic parametric lines grid. |
controlPointMaxCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
[in] | pillarKind | The 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 | The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | The 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] | pillarOfCoordinateLine | For each split coordinate line, indicates the pillar it belongs to. |
[in] | splitCoordinateLineColumnCumulativeCount | For each split coordinate line, indicates the count of grid column which are splitted by this coordinate line. |
[in] | splitCoordinateLineColumns | For 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. |
|
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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If localCrs is nullptr and no default local 3d CRS is defined. |
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. | |
parameters | Path to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid. | |
controlPoints | Path to the HDF dataset containing the the control points of the pillars of the grid. | |
controlPointParameters | Path to the HDF dataset containing the value of the parameter at each control points. | |
controlPointCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
pillarKind | The 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] | proxy | The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | The 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) | |
pillarOfCoordinateLine | Path to the HDF dataset indicating for each split coordinate line, which pillar it belongs to. | |
splitCoordinateLineColumnCumulativeCount | Path to the HDF dataset indicating for each split coordinate line, the count of grid column which are splitted by this coordinate line. | |
splitCoordinateLineColumns | Path 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. |
|
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.
std::invalid_argument | If there is no geometry on this grid. |
std::invalid_argument | If some parameters values are inconsistent. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
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 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. | |
parameters | Path to the HDF dataset containing the parameter values (regarding the pillars) of each node of the grid. | |
controlPoints | Path to the HDF dataset containing the the control points of the pillars of the grid. | |
controlPointParameters | Path to the HDF dataset containing the value of the parameter at each control points. | |
controlPointMaxCountPerPillar | The maximum count of control points which defines a pillar of this grid. | |
pillarKind | Path to the HDF dataset containing the kind of each pillar. | |
definedPillars | Path 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 | The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | The 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) | |
pillarOfCoordinateLine | Path to the HDF dataset indicating for each split coordinate line, which pillar it belongs to. | |
splitCoordinateLineColumnCumulativeCount | Path to the HDF dataset indicating for each split coordinate line, the count of grid column which are splitted by this coordinate line. | |
splitCoordinateLineColumns | Path 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. |