21 #include "resqml2/AbstractColumnLayerGridRepresentation.h" 40 const std::string & guid,
const std::string & title,
41 const unsigned int & iCount,
const unsigned int & jCount,
const unsigned int & kCount,
42 bool withTruncatedPillars);
44 class BlockInformation
48 unsigned int iInterfaceStart;
49 unsigned int iInterfaceEnd;
50 unsigned int jInterfaceStart;
51 unsigned int jInterfaceEnd;
52 unsigned int kInterfaceStart;
53 unsigned int kInterfaceEnd;
58 std::map<unsigned int, unsigned int> globalToLocalSplitCoordinateLinesIndex;
62 ~BlockInformation() {}
70 AbstractIjkGridRepresentation(gsoap_resqml2_0_1::_resqml2__IjkGridRepresentation* fromGsoap) : AbstractColumnLayerGridRepresentation(fromGsoap, false), splitInformation(nullptr), blockInformation(nullptr) {}
71 AbstractIjkGridRepresentation(gsoap_resqml2_0_1::_resqml2__TruncatedIjkGridRepresentation* fromGsoap) : AbstractColumnLayerGridRepresentation(fromGsoap,
true), splitInformation(
nullptr), blockInformation(
nullptr) {}
73 gsoap_resqml2_0_1::_resqml2__IjkGridRepresentation* getSpecializedGsoapProxy()
const;
74 gsoap_resqml2_0_1::_resqml2__TruncatedIjkGridRepresentation* getSpecializedTruncatedGsoapProxy()
const;
76 gsoap_resqml2_0_1::resqml2__PointGeometry* getPointGeometry2_0_1(
const unsigned int & patchIndex)
const;
78 std::vector< std::pair< unsigned int, std::vector<unsigned int> > >* splitInformation;
80 BlockInformation* blockInformation;
84 enum geometryKind { UNKNOWN = 0, EXPLICIT = 1, PARAMETRIC = 2, LATTICE = 3, NO_GEOMETRY = 4};
90 const std::string & guid,
const std::string & title,
91 const unsigned int & iCount,
const unsigned int & jCount,
const unsigned int & kCount,
92 bool withTruncatedPillars =
false);
95 const std::string & guid,
const std::string & title,
96 const unsigned int & iCount,
const unsigned int & jCount,
const unsigned int & kCount,
97 bool withTruncatedPillars =
false);
103 bool withTruncatedPillars =
false) :
104 AbstractColumnLayerGridRepresentation(nullptr, partialObject, withTruncatedPillars), splitInformation(nullptr), blockInformation(nullptr)
113 if (blockInformation !=
nullptr)
114 delete blockInformation;
120 unsigned int getICellCount()
const;
125 void setICellCount(
const unsigned int & iCount);
130 unsigned int getJCellCount()
const;
135 void setJCellCount(
const unsigned int & jCount);
140 ULONG64
getCellCount()
const {
return getICellCount() * getJCellCount() * getKCellCount();}
150 unsigned int getPillarCount()
const {
return (getICellCount()+1) * (getJCellCount()+1);}
156 unsigned int getFaceCount()
const;
161 unsigned int getIPillarFromGlobalIndex(
const unsigned int & globalIndex)
const;
166 unsigned int getJPillarFromGlobalIndex(
const unsigned int & globalIndex)
const;
171 unsigned int getGlobalIndexPillarFromIjIndex(
const unsigned int & iPillar,
const unsigned int & jPillar)
const;
176 unsigned int getIColumnFromGlobalIndex(
const unsigned int & globalIndex)
const;
181 unsigned int getJColumnFromGlobalIndex(
const unsigned int & globalIndex)
const;
186 unsigned int getGlobalIndexColumnFromIjIndex(
const unsigned int & iColumn,
const unsigned int & jColumn)
const;
191 unsigned int getGlobalIndexCellFromIjkIndex(
const unsigned int & iCell,
const unsigned int & jCell,
const unsigned int & kCell)
const;
193 bool isRightHanded()
const;
200 void getPillarsOfSplitCoordinateLines(
unsigned int * pillarIndices,
bool reverseIAxis =
false,
bool reverseJAxis =
false)
const;
206 void getColumnsOfSplitCoordinateLines(
unsigned int * columnIndices,
bool reverseIAxis =
false,
bool reverseJAxis =
false)
const;
207 void getColumnCountOfSplitCoordinateLines(
unsigned int * columnIndexCountPerSplitCoordinateLine)
const;
212 unsigned long getSplitCoordinateLineCount()
const;
217 unsigned long getBlockSplitCoordinateLineCount()
const;
222 ULONG64 getSplitNodeCount()
const;
224 void getPillarGeometryIsDefined(
bool * pillarGeometryIsDefined,
bool reverseIAxis =
false,
bool reverseJAxis =
false)
const;
229 bool hasEnabledCellInformation()
const;
237 void getEnabledCells(
bool * enabledCells,
bool reverseIAxis =
false,
bool reverseJAxis=
false,
bool reverseKAxis=
false)
const;
244 void setEnabledCells(
unsigned char* enabledCells);
250 void loadSplitInformation();
261 void loadBlockInformation(
const unsigned int & iInterfaceStart,
const unsigned int & iInterfaceEnd,
const unsigned int & jInterfaceStart,
const unsigned int & jInterfaceEnd,
const unsigned int & kInterfaceStart,
const unsigned int & kInterfaceEnd);
266 void unloadSplitInformation();
278 bool isColumnEdgeSplitted(
const unsigned int & iColumn,
const unsigned int & jColumn,
const unsigned int & edge)
const;
297 ULONG64 getXyzPointIndexFromCellCorner(
const unsigned int & iCell,
const unsigned int & jCell,
const unsigned int & kCell,
const unsigned int & corner)
const;
318 void getXyzPointOfBlockFromCellCorner(
const unsigned int & iCell,
const unsigned int & jCell,
const unsigned int & kCell,
const unsigned int & corner,
319 const double* xyzPoints,
double & x,
double & y,
double & z)
const;
325 ULONG64 getXyzPointCountOfKInterfaceOfPatch(
const unsigned int & patchIndex)
const;
330 ULONG64 getXyzPointCountOfBlock()
const;
340 void getXyzPointsOfKInterfaceOfPatch(
const unsigned int & kInterface,
const unsigned int & patchIndex,
double * xyzPoints);
342 virtual void getXyzPointsOfKInterfaceSequenceOfPatch(
const unsigned int & kInterfaceStart,
const unsigned int & kInterfaceEnd,
const unsigned int & patchIndex,
double * xyzPoints) {
throw std::logic_error(
"Partial object"); }
344 virtual void getXyzPointsOfBlockOfPatch(
const unsigned int & patchIndex,
double * xyzPoints) {
throw std::logic_error(
"Partial object"); };
349 gsoap_resqml2_0_1::resqml2__KDirection getKDirection()
const;
351 virtual geometryKind getGeometryKind()
const {
return UNKNOWN; }
352 virtual std::string getHdfProxyUuid()
const {
throw std::logic_error(
"Partial object"); }
354 virtual void getXyzPointsOfPatch(
const unsigned int & patchIndex,
double * xyzPoints)
const {
throw std::logic_error(
"Partial object"); }
356 static const char* XML_TAG;
357 static const char* XML_TAG_TRUNCATED;
358 virtual std::string getXmlTag()
const;
360 unsigned int getPatchCount()
const {
return 1;}
virtual ~AbstractIjkGridRepresentation()
Definition: AbstractIjkGridRepresentation.h:111
unsigned int getColumnCount() const
Definition: AbstractIjkGridRepresentation.h:145
Definition: AbstractIjkGridRepresentation.h:32
Definition: AbstractFeatureInterpretation.h:30
Definition: EpcDocument.h:65
AbstractIjkGridRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject, bool withTruncatedPillars=false)
Definition: AbstractIjkGridRepresentation.h:102
ULONG64 getCellCount() const
Definition: AbstractIjkGridRepresentation.h:140
Definition: AbstractColumnLayerGridRepresentation.h:30
virtual ULONG64 getXyzPointCountOfPatch(const unsigned int &patchIndex) const
Definition: AbstractIjkGridRepresentation.h:353
AbstractIjkGridRepresentation(gsoap_resqml2_0_1::_resqml2__IjkGridRepresentation *fromGsoap)
Definition: AbstractIjkGridRepresentation.h:70
virtual void getXyzPointsOfPatch(const unsigned int &patchIndex, double *xyzPoints) const
Definition: AbstractIjkGridRepresentation.h:354
Definition: AbstractLocal3dCrs.h:25
unsigned int getPillarCount() const
Definition: AbstractIjkGridRepresentation.h:150