21 #include "AbstractColumnLayerGridRepresentation.h"
38 enum geometryKind { UNKNOWN = 0, EXPLICIT = 1, PARAMETRIC = 2, LATTICE = 3, NO_GEOMETRY = 4};
64 const std::string & guid,
const std::string & title,
65 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
89 const std::string & guid,
const std::string & title,
90 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
155 if (blockInformation !=
nullptr)
156 delete blockInformation;
205 DLL_IMPORT_OR_EXPORT uint64_t
getCellCount() const final {
return getICellCount() * getJCellCount() * getKCellCount(); }
216 DLL_IMPORT_OR_EXPORT
unsigned int getColumnCount()
const {
return getICellCount() * getJCellCount(); }
227 DLL_IMPORT_OR_EXPORT
unsigned int getPillarCount()
const {
return (getICellCount()+1) * (getJCellCount()+1); }
248 DLL_IMPORT_OR_EXPORT
void getKGaps(
bool * kGaps)
const;
506 DLL_IMPORT_OR_EXPORT
void getPillarGeometryIsDefined(
bool * pillarGeometryIsDefined,
bool reverseIAxis =
false,
bool reverseJAxis =
false)
const;
533 DLL_IMPORT_OR_EXPORT
void getEnabledCells(
bool * enabledCells,
bool reverseIAxis =
false,
bool reverseJAxis=
false,
bool reverseKAxis=
false)
const;
551 DLL_IMPORT_OR_EXPORT
void setEnabledCells(
unsigned char* enabledCells, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
586 DLL_IMPORT_OR_EXPORT
void loadBlockInformation(
unsigned int iInterfaceStart,
unsigned int iInterfaceEnd,
unsigned int jInterfaceStart,
unsigned int jInterfaceEnd,
unsigned int kInterfaceStart,
unsigned int kInterfaceEnd);
609 DLL_IMPORT_OR_EXPORT
bool isColumnEdgeSplitted(
unsigned int iColumn,
unsigned int jColumn,
unsigned int edge)
const;
657 const double* xyzPoints,
double & x,
double & y,
double & z)
const;
740 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::resqml20__KDirection
getKDirection()
const override;
749 virtual COMMON_NS::DataObjectReference
getHdfProxyDor()
const override {
throw std::logic_error(
"Partial object"); }
763 DLL_IMPORT_OR_EXPORT
virtual void getXyzPointsOfPatch(
unsigned int patchIndex,
double * xyzPoints)
const override;
766 DLL_IMPORT_OR_EXPORT
static const char*
XML_TAG;
771 DLL_IMPORT_OR_EXPORT std::string
getXmlTag() const final;
773 DLL_IMPORT_OR_EXPORT
unsigned int getPatchCount()
const override {
return 1;}
779 if (gsoapProxy2_0_1 !=
nullptr) {
return "resqml20"; }
780 if (gsoapProxy2_3 !=
nullptr) {
return "resqml22"; }
783 if (partialObject !=
nullptr) {
784 if (partialObject->ContentType.find(
"x-resqml+xml;version=2.0") != std::string::npos) {
return "resqml20"; }
785 if (partialObject->ContentType.find(
"x-resqml+xml;version=2.2") != std::string::npos) {
return "resqml22"; }
788 throw std::logic_error(
"Cannot infer what is the Energistics namespace of this instance.");
805 AbstractIjkGridRepresentation(gsoap_resqml2_0_1::_resqml20__TruncatedIjkGridRepresentation* fromGsoap) : AbstractColumnLayerGridRepresentation(fromGsoap, true), splitInformation(nullptr), kCellIndexWithGapLayer(nullptr), blockInformation(nullptr) {}
806 AbstractIjkGridRepresentation(gsoap_eml2_3::_resqml22__IjkGridRepresentation* fromGsoap) : AbstractColumnLayerGridRepresentation(fromGsoap, false), splitInformation(nullptr), kCellIndexWithGapLayer(nullptr), blockInformation(nullptr) {}
807 AbstractIjkGridRepresentation(gsoap_eml2_3::_resqml22__TruncatedIjkGridRepresentation* fromGsoap) : AbstractColumnLayerGridRepresentation(fromGsoap, true), splitInformation(nullptr), kCellIndexWithGapLayer(nullptr), blockInformation(nullptr) {}
809 gsoap_resqml2_0_1::_resqml20__IjkGridRepresentation* getSpecializedGsoapProxy2_0_1()
const;
810 gsoap_resqml2_0_1::_resqml20__TruncatedIjkGridRepresentation* getSpecializedTruncatedGsoapProxy2_0_1()
const;
811 gsoap_eml2_3::_resqml22__IjkGridRepresentation* getSpecializedGsoapProxy2_2()
const;
812 gsoap_eml2_3::_resqml22__TruncatedIjkGridRepresentation* getSpecializedTruncatedGsoapProxy2_2()
const;
821 gsoap_resqml2_0_1::resqml20__PointGeometry* getPointGeometry2_0_1(
unsigned int patchIndex)
const final;
822 gsoap_eml2_3::resqml22__PointGeometry* getPointGeometry2_2(
unsigned int patchIndex)
const final;
843 std::vector< std::pair< unsigned int, std::vector<unsigned int> > >* splitInformation;
849 unsigned int* kCellIndexWithGapLayer;
852 class BlockInformation
857 unsigned int iInterfaceStart;
859 unsigned int iInterfaceEnd;
861 unsigned int jInterfaceStart;
863 unsigned int jInterfaceEnd;
865 unsigned int kInterfaceStart;
867 unsigned int kInterfaceEnd;
870 std::map<unsigned int, unsigned int> globalToLocalSplitCoordinateLinesIndex;
873 BlockInformation() =
default;
876 ~BlockInformation() =
default;
880 BlockInformation* blockInformation;
900 void init(COMMON_NS::DataObjectRepository * repo,
901 const std::string & guid,
const std::string & title,
902 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
Proxy class for an abstract column layer grid representation.
Definition: AbstractColumnLayerGridRepresentation.h:27
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition: AbstractIjkGridRepresentation.h:34
void getPillarGeometryIsDefined(bool *pillarGeometryIsDefined, bool reverseIAxis=false, bool reverseJAxis=false) const
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)
unsigned int getIPillarFromGlobalIndex(unsigned int globalIndex) const
unsigned int getJPillarFromGlobalIndex(unsigned int globalIndex) const
geometryKind
Definition: AbstractIjkGridRepresentation.h:38
void setJCellCount(unsigned int jCount)
Sets the count of cells in the J direction.
bool hasEnabledCellInformation() const
void setICellCount(unsigned int iCount)
void getEnabledCells(bool *enabledCells, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const
unsigned long getSplitCoordinateLineCount() const
unsigned int getKGapsCount() const
static const char * XML_TAG
Definition: AbstractIjkGridRepresentation.h:766
unsigned int getICellCount() const
gsoap_resqml2_0_1::resqml20__KDirection getKDirection() const override
void loadSplitInformation()
virtual ~AbstractIjkGridRepresentation()
Definition: AbstractIjkGridRepresentation.h:153
virtual bool isNodeGeometryCompressed() const
Definition: AbstractIjkGridRepresentation.h:738
unsigned int getIColumnFromGlobalIndex(unsigned int globalIndex) const
unsigned int getJColumnFromGlobalIndex(unsigned int globalIndex) const
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 ...
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 load...
void getColumnsOfSplitCoordinateLines(unsigned int *columnIndices, bool reverseIAxis=false, bool reverseJAxis=false) const
virtual geometryKind getGeometryKind() const
Definition: AbstractIjkGridRepresentation.h:747
std::string getXmlTag() const final
void loadBlockInformation(unsigned int iInterfaceStart, unsigned int iInterfaceEnd, unsigned int jInterfaceStart, unsigned int jInterfaceEnd, unsigned int kInterfaceStart, unsigned int kInterfaceEnd)
static const char * XML_TAG_TRUNCATED
Definition: AbstractIjkGridRepresentation.h:769
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 C...
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 ha...
virtual common::DataObjectReference getHdfProxyDor() const override
Gets the data object reference of the HDF proxy which is used for storing the numerical values of thi...
Definition: AbstractIjkGridRepresentation.h:749
uint64_t getXyzPointCountOfKInterface() const
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)
unsigned int getGlobalIndexColumnFromIjIndex(unsigned int iColumn, unsigned int jColumn) const
void getColumnCountOfSplitCoordinateLines(unsigned int *columnIndexCountPerSplitCoordinateLine) const
virtual std::string getXmlNamespace() const override
Definition: AbstractIjkGridRepresentation.h:778
unsigned int getGlobalIndexPillarFromIjIndex(unsigned int iPillar, unsigned int jPillar) const
virtual void getXyzPointsOfBlock(double *xyzPoints)
Gets all the XYZ points of the current block. XYZ points are given in the local CRS....
bool isRightHanded() const
unsigned int getPillarCount() const
Definition: AbstractIjkGridRepresentation.h:227
AbstractIjkGridRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject, bool withTruncatedPillars=false)
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 loc...
void getPillarsOfSplitCoordinateLines(unsigned int *pillarIndices, bool reverseIAxis=false, bool reverseJAxis=false) const
unsigned long getBlockSplitCoordinateLineCount() const
uint64_t getCellCount() const final
Definition: AbstractIjkGridRepresentation.h:205
void unloadSplitInformation()
void setEnabledCells(unsigned char *enabledCells, eml2::AbstractHdfProxy *proxy=nullptr)
void getXyzPointsOfKInterface(unsigned int kInterface, double *xyzPoints)
void getKGaps(bool *kGaps) const
unsigned int getJCellCount() const
uint64_t getXyzPointCountOfBlock() const
unsigned int getGlobalIndexCellFromIjkIndex(unsigned int iCell, unsigned int jCell, unsigned int kCell) const
unsigned int getColumnCount() const
Definition: AbstractIjkGridRepresentation.h:216
unsigned int getFaceCount() const
virtual uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const override
uint64_t getSplitNodeCount() const