21#include "AbstractRepresentation.h"
25 class AbstractGridRepresentation;
147 void virtual setWellboreInformation(uint32_t
const* injectorPerLine, uint32_t
const* producerPerLine,
const std::vector<RESQML2_NS::WellboreTrajectoryRepresentation*> & wellboreTrajectories,
148 uint32_t nullValue = (std::numeric_limits<uint32_t>::max)(), EML2_NS::AbstractHdfProxy* hdfProxy =
nullptr) = 0;
167 if (patchIndex > 0) {
168 throw std::out_of_range(
"The patch index is out of range and should only be zero.");
171 const uint64_t lineCount = getLineCount();
172 std::unique_ptr<uint32_t[]> nodeCountPerPolyline(
new uint32_t[lineCount]);
173 getNodeCountPerLine(nodeCountPerPolyline.get());
176 for (uint64_t lineIndex = 0; lineIndex < lineCount; ++lineIndex) {
177 result += nodeCountPerPolyline[lineIndex];
190 getNodeCountPerLine(intervalCountPerPolyline);
192 const uint64_t lineCount = getLineCount();
193 for (uint64_t lineIndex = 0; lineIndex < lineCount; ++lineIndex) {
194 intervalCountPerPolyline[lineIndex] -= 1;
206 const uint64_t lineCount = getLineCount();
207 std::unique_ptr<uint32_t[]> intervalCountPerPolyline(
new uint32_t[lineCount]);
208 getIntervalCountPerLine (intervalCountPerPolyline.get());
211 for (uint64_t lineIndex = 0; lineIndex < lineCount; ++lineIndex) {
212 result += intervalCountPerPolyline[lineIndex];
241 uint32_t
const * nodeCountPerPolyline,
double const * xyzPoints,
242 EML2_NS::AbstractHdfProxy* hdfProxy =
nullptr, RESQML2_NS::AbstractLocal3dCrs* localCrs =
nullptr) = 0;
287 DLL_IMPORT_OR_EXPORT
virtual void setIntervalGridCells(uint16_t
const* gridIndices, uint16_t gridIndicesNullValue,
288 int64_t
const* cellIndices,
289 uint8_t
const* localFacePairPerCellIndices, uint8_t localFacePairPerCellIndicesNullValue,
290 const std::vector<RESQML2_NS::AbstractGridRepresentation*> & supportingGrids,
291 EML2_NS::AbstractHdfProxy * hdfProxy =
nullptr) = 0;
307 DLL_IMPORT_OR_EXPORT
virtual uint16_t
getGridIndices(uint16_t * gridIndices)
const = 0;
324 DLL_IMPORT_OR_EXPORT
virtual int64_t
getCellIndices(int64_t * cellIndices)
const = 0;
384 DLL_IMPORT_OR_EXPORT static const
char* XML_TAG;
386 DLL_IMPORT_OR_EXPORT virtual std::
string getXmlTag() const final {
return XML_TAG; }
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:37
Representation of streamlines associated with a streamline feature and interpretation....
Definition StreamlinesRepresentation.h:33
virtual uint32_t getProducerPerLine(uint32_t *producerPerLine) const =0
Gets all the wellbore indices which are producers. Null values signify that that line does not termin...
virtual uint64_t getWellboreTrajectoryCount() const =0
virtual uint64_t getGridRepresentationCount() const =0
virtual uint8_t getLocalFacePairPerCellIndices(uint8_t *localFacePairPerCellIndices) const =0
uint64_t getPatchCount() const final
Definition StreamlinesRepresentation.h:376
StreamlinesRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition StreamlinesRepresentation.h:43
virtual void getNodeCountPerLine(uint32_t *nodeCountPerPolyline) const =0
resqml2::AbstractGridRepresentation * getGridRepresentation(uint64_t index) const
virtual void setWellboreInformation(uint32_t const *injectorPerLine, uint32_t const *producerPerLine, const std::vector< resqml2 ::WellboreTrajectoryRepresentation * > &wellboreTrajectories, uint32_t nullValue=(std::numeric_limits< uint32_t >::max)(), eml2 ::AbstractHdfProxy *hdfProxy=nullptr)=0
virtual void setIntervalGridCells(uint16_t const *gridIndices, uint16_t gridIndicesNullValue, int64_t const *cellIndices, uint8_t const *localFacePairPerCellIndices, uint8_t localFacePairPerCellIndicesNullValue, const std::vector< resqml2 ::AbstractGridRepresentation * > &supportingGrids, eml2 ::AbstractHdfProxy *hdfProxy=nullptr)=0
uint64_t getIntervalCount() const
Definition StreamlinesRepresentation.h:205
virtual int64_t getCellIndices(int64_t *cellIndices) const =0
void loadTargetRelationships() final
StreamlinesRepresentation(gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation *fromGsoap)
Definition StreamlinesRepresentation.h:50
virtual void setGeometry(uint32_t const *nodeCountPerPolyline, double const *xyzPoints, eml2 ::AbstractHdfProxy *hdfProxy=nullptr, resqml2 ::AbstractLocal3dCrs *localCrs=nullptr)=0
virtual common::DataObjectReference getWellboreTrajectoryDor(uint64_t index) const =0
virtual common::DataObjectReference getGridRepresentationDor(uint64_t index) const =0
virtual uint64_t getLineCount() const =0
resqml2::WellboreTrajectoryRepresentation * getWellboreTrajectory(uint64_t index) const
virtual uint32_t getInjectorPerLine(uint32_t *injectorPerLine) const =0
Gets all the wellbore indices which are injectors. Null values signify that that line does not initia...
virtual uint16_t getGridIndices(uint16_t *gridIndices) const =0
void getIntervalCountPerLine(uint32_t *intervalCountPerPolyline) const
Definition StreamlinesRepresentation.h:189
uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const final
Definition StreamlinesRepresentation.h:166
StreamlinesRepresentation(gsoap_eml2_3::_resqml22__StreamlinesRepresentation *fromGsoap)
Definition StreamlinesRepresentation.h:57
virtual ~StreamlinesRepresentation()=default