Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
StreamlinesRepresentation.h
1 /*-----------------------------------------------------------------------
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"; you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18 -----------------------------------------------------------------------*/
19 #pragma once
20 
21 #include "../resqml2/StreamlinesRepresentation.h"
22 
23 namespace RESQML2_NS
24 {
25  class GenericFeatureInterpretation;
26 }
27 
28 namespace RESQML2_0_1_NS
29 {
37  class StreamlinesRepresentation final : public RESQML2_NS::StreamlinesRepresentation
38  {
39  public:
45  DLL_IMPORT_OR_EXPORT StreamlinesRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : RESQML2_NS::StreamlinesRepresentation(partialObject) {}
46 
52  StreamlinesRepresentation(gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation* fromGsoap) : RESQML2_NS::StreamlinesRepresentation(fromGsoap) {}
53 
65  StreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp,
66  const std::string & guid, const std::string & title, uint64_t lineCount);
67 
72 
80  DLL_IMPORT_OR_EXPORT uint32_t getLineCount() const final;
81 
82  //********************************
83  //**** WELLBORE INFO ************
84  //********************************
85 
94  DLL_IMPORT_OR_EXPORT uint16_t getWellboreTrajectoryCount() const final;
95 
106  COMMON_NS::DataObjectReference getWellboreTrajectoryDor(uint16_t index) const final;
107 
117  DLL_IMPORT_OR_EXPORT uint32_t getInjectorPerLine(uint32_t* injectorPerLine) const final;
118 
128  DLL_IMPORT_OR_EXPORT uint32_t getProducerPerLine(uint32_t* producerPerLine) const final;
129 
143  void setWellboreInformation(uint32_t const* injectorPerLine, uint32_t const* producerPerLine, const std::vector<RESQML2_NS::WellboreTrajectoryRepresentation*> & wellboreTrajectories,
144  uint32_t nullValue = (std::numeric_limits<uint32_t>::max)(), EML2_NS::AbstractHdfProxy* hdfProxy = nullptr) final;
145 
146  //********************************
147  //********** GEOMETRY ************
148  //********************************
149 
157  DLL_IMPORT_OR_EXPORT void getNodeCountPerLine(uint32_t * nodeCountPerPolyline) const final;
158 
162  DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(unsigned int, double *) const final {
163  throw std::logic_error("Streamlines have no XYZ information in version 2.0.1.");
164  }
165 
187  DLL_IMPORT_OR_EXPORT void setGeometry(
188  uint32_t const * nodeCountPerPolyline, double const * xyzPoints,
189  EML2_NS::AbstractHdfProxy* hdfProxy = nullptr, RESQML2_NS::AbstractLocal3dCrs* localCrs = nullptr) final;
190 
191  //********************************
192  //******* GRID INFO *************
193  //********************************
194 
235  DLL_IMPORT_OR_EXPORT void setIntervalGridCells(uint16_t const* gridIndices, uint16_t gridIndicesNullValue,
236  uint64_t const* cellIndices, uint64_t cellIndicesNullValue,
237  uint8_t const* localFacePairPerCellIndices, uint8_t localFacePairPerCellIndicesNullValue,
238  const std::vector<RESQML2_NS::AbstractGridRepresentation*> & supportingGrids,
239  EML2_NS::AbstractHdfProxy * hdfProxy = nullptr) final;
240 
255  DLL_IMPORT_OR_EXPORT uint16_t getGridIndices(uint16_t * gridIndices) const final;
256 
272  DLL_IMPORT_OR_EXPORT int64_t getCellIndices(uint64_t * cellIndices) const final;
273 
287  DLL_IMPORT_OR_EXPORT uint8_t getLocalFacePairPerCellIndices(uint8_t * localFacePairPerCellIndices) const final;
288 
297  DLL_IMPORT_OR_EXPORT uint16_t getGridRepresentationCount() const final;
298 
309  COMMON_NS::DataObjectReference getGridRepresentationDor(uint16_t index) const final;
310 
318  COMMON_NS::DataObjectReference getHdfProxyDor() const final;
319 
323  DLL_IMPORT_OR_EXPORT static const char* XML_NS;
324 
328  DLL_IMPORT_OR_EXPORT std::string getXmlNamespace() const final { return XML_NS; }
329  };
330 }
Specification of the vector field upon which the streamlines are based.
Definition: StreamlinesRepresentation.h:38
void setGeometry(uint32_t const *nodeCountPerPolyline, double const *xyzPoints, eml2::AbstractHdfProxy *hdfProxy=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr) final
StreamlinesRepresentation(gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation *fromGsoap)
Definition: StreamlinesRepresentation.h:52
uint32_t getLineCount() const final
StreamlinesRepresentation(resqml2::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates an instance of this class in a gsoap context.
StreamlinesRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: StreamlinesRepresentation.h:45
Definition: WellboreTrajectoryRepresentation.h:27