Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
UnstructuredGridRepresentation.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 
20 #pragma once
21 
22 #include "../resqml2/UnstructuredGridRepresentation.h"
23 
24 namespace RESQML2_2_NS
25 {
27  class UnstructuredGridRepresentation final : public RESQML2_NS::UnstructuredGridRepresentation
28  {
29  public:
30 
34  DLL_IMPORT_OR_EXPORT UnstructuredGridRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject):
35  RESQML2_NS::UnstructuredGridRepresentation(partialObject) {}
36 
46  UnstructuredGridRepresentation(COMMON_NS::DataObjectRepository* repo,
47  const std::string & guid, const std::string & title,
48  uint64_t cellCount);
49 
58  UnstructuredGridRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
59  const std::string & guid, const std::string & title,
60  uint64_t cellCount);
61 
67  UnstructuredGridRepresentation(gsoap_eml2_3::_resqml22__UnstructuredGridRepresentation* fromGsoap):
68  RESQML2_NS::UnstructuredGridRepresentation(fromGsoap) {}
69 
74 
75  DLL_IMPORT_OR_EXPORT bool hasGeometry() const final;
76 
77  COMMON_NS::DataObjectReference getHdfProxyDor() const final;
78 
79  DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(unsigned int patchIndex, double * xyzPoints) const final;
80 
81  DLL_IMPORT_OR_EXPORT void getFaceIndicesOfCells(uint64_t * faceIndices) const final;
82 
83  DLL_IMPORT_OR_EXPORT void getCumulativeFaceCountPerCell(uint64_t * cumulativeFaceCountPerCell_) const final;
84 
85  DLL_IMPORT_OR_EXPORT bool isFaceCountOfCellsConstant() const final;
86 
87  DLL_IMPORT_OR_EXPORT unsigned int getConstantFaceCountOfCells() const final;
88 
89  DLL_IMPORT_OR_EXPORT void getNodeIndicesOfFaces(uint64_t * nodeIndices) const final;
90 
91  DLL_IMPORT_OR_EXPORT void getCumulativeNodeCountPerFace(uint64_t * nodeCountPerFace) const final;
92 
93  DLL_IMPORT_OR_EXPORT bool isNodeCountOfFacesConstant() const final;
94 
95  DLL_IMPORT_OR_EXPORT unsigned int getConstantNodeCountOfFaces() const final;
96 
97  DLL_IMPORT_OR_EXPORT uint64_t getCellCount() const final;
98 
99  DLL_IMPORT_OR_EXPORT uint64_t getFaceCount() const final;
100 
101  DLL_IMPORT_OR_EXPORT uint64_t getNodeCount() const final;
102 
103  DLL_IMPORT_OR_EXPORT void getCellFaceIsRightHanded(unsigned char* cellFaceIsRightHanded) const final;
104 
105  DLL_IMPORT_OR_EXPORT void setGeometryUsingExistingDatasets(const std::string& cellFaceIsRightHanded, const std::string& points, uint64_t pointCount, EML2_NS::AbstractHdfProxy* proxy,
106  const std::string& faceIndicesPerCell, const std::string& faceIndicesCumulativeCountPerCell,
107  uint64_t faceCount, const std::string& nodeIndicesPerFace, const std::string& nodeIndicesCumulativeCountPerFace,
108  gsoap_resqml2_0_1::resqml20__CellShape cellShape, RESQML2_NS::AbstractLocal3dCrs * localCrs = nullptr) final;
109 
113  DLL_IMPORT_OR_EXPORT static const char* XML_NS;
114 
118  DLL_IMPORT_OR_EXPORT std::string getXmlNamespace() const final { return XML_NS; }
119 
120  private:
121 
125  void init(COMMON_NS::DataObjectRepository* repo,
126  const std::string & guid, const std::string & title,
127  uint64_t cellCount);
128 
129  gsoap_eml2_3::_resqml22__UnstructuredGridRepresentation* getSpecializedGsoapProxy() const;
130 
131  gsoap_eml2_3::resqml22__PointGeometry* getPointGeometry2_2(unsigned int patchIndex) const final;
132 
145  void setConstantCellShapeGeometryUsingExistingDatasets(const std::string& cellFaceIsRightHanded, const std::string& points,
146  uint64_t pointCount, uint64_t faceCount, RESQML2_NS::AbstractLocal3dCrs * localCrs, EML2_NS::AbstractHdfProxy* proxy,
147  const std::string& faceIndicesPerCell, uint64_t faceCountPerCell,
148  const std::string& nodeIndicesPerFace, uint64_t nodeCountPerFace) final;
149  };
150 }
An unstructured grid representation. This class cannot be inherited.
Definition: UnstructuredGridRepresentation.h:28
UnstructuredGridRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t cellCount)
Constructor.
UnstructuredGridRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: UnstructuredGridRepresentation.h:34
UnstructuredGridRepresentation(common::DataObjectRepository *repo, const std::string &guid, const std::string &title, uint64_t cellCount)
Constructor.
UnstructuredGridRepresentation(gsoap_eml2_3::_resqml22__UnstructuredGridRepresentation *fromGsoap)
Creates an instance of this class by wrapping a gsoap instance.
Definition: UnstructuredGridRepresentation.h:67