Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
SubRepresentation.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include "AbstractRepresentation.h"
22
23namespace RESQML2_NS
24{
37 class SubRepresentation : public RESQML2_NS::AbstractRepresentation
38 {
39 public:
40
42 virtual ~SubRepresentation() = default;
43
66 DLL_IMPORT_OR_EXPORT virtual gsoap_eml2_3::eml23__IndexableElement getElementKindOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex) const = 0;
67
78 DLL_IMPORT_OR_EXPORT virtual uint64_t getElementCountOfPatch(unsigned int patchIndex) const = 0;
79
101 DLL_IMPORT_OR_EXPORT virtual void getElementIndicesOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex, uint64_t* elementIndices) const = 0;
102
120 DLL_IMPORT_OR_EXPORT virtual void getSupportingRepresentationIndicesOfPatch(unsigned int patchIndex, short* supportingRepresentationIndices) const = 0;
121
131 DLL_IMPORT_OR_EXPORT virtual bool areElementIndicesPairwise(unsigned int patchIndex) const = 0;
132
150 DLL_IMPORT_OR_EXPORT virtual bool areElementIndicesBasedOnLattice(unsigned int patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
151
171 DLL_IMPORT_OR_EXPORT virtual int64_t getLatticeElementIndicesStartValue(unsigned int patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
172
193 DLL_IMPORT_OR_EXPORT virtual uint64_t getLatticeElementIndicesDimensionCount(unsigned int patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
194
217 DLL_IMPORT_OR_EXPORT virtual int64_t getLatticeElementIndicesOffsetValue(unsigned int latticeDimensionIndex, unsigned int patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
218
241 DLL_IMPORT_OR_EXPORT virtual uint64_t getLatticeElementIndicesOffsetCount(unsigned int latticeDimensionIndex, unsigned int patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
242
257 DLL_IMPORT_OR_EXPORT virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t originIndex,
258 unsigned int elementCountInSlowestDimension,
259 unsigned int elementCountInMiddleDimension,
260 unsigned int elementCountInFastestDimension) = 0;
261
277 DLL_IMPORT_OR_EXPORT void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, uint64_t* elementIndices,
278 EML2_NS::AbstractHdfProxy* proxy = nullptr, short* supportingRepIndices = nullptr);
279
291 DLL_IMPORT_OR_EXPORT void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount,
292 EML2_NS::AbstractHdfProxy* proxy = nullptr);
293
317 DLL_IMPORT_OR_EXPORT void setElementIndices(uint64_t* elementIndices,
318 uint64_t elementCount,
319 uint64_t offset,
320 EML2_NS::AbstractHdfProxy* proxy = nullptr,
321 unsigned int patchIndex = (std::numeric_limits<unsigned int>::max)());
322
339 DLL_IMPORT_OR_EXPORT virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind0, gsoap_eml2_3::eml23__IndexableElement elementKind1,
340 uint64_t elementCount,
341 uint64_t * elementIndices0, uint64_t * elementIndices1,
342 EML2_NS::AbstractHdfProxy* proxy = nullptr) = 0;
343
368 DLL_IMPORT_OR_EXPORT virtual void pushBackRefToExistingDataset(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, const std::string& elementDataset,
369 int64_t nullValue, EML2_NS::AbstractHdfProxy* proxy, const std::string& supportingRepDataset = "") = 0;
370
378 DLL_IMPORT_OR_EXPORT uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const override;
379
381 DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(unsigned int patchIndex, double* xyzPoints) const override;
382
383 DLL_IMPORT_OR_EXPORT virtual uint64_t getPatchCount() const override = 0;
384
394 DLL_IMPORT_OR_EXPORT void pushBackSupportingRepresentation(AbstractRepresentation * supportingRep);
395
404 DLL_IMPORT_OR_EXPORT virtual uint64_t getSupportingRepresentationCount() const = 0;
405
417 DLL_IMPORT_OR_EXPORT AbstractRepresentation* getSupportingRepresentation(uint64_t index) const;
418
431 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getSupportingRepresentationDor(uint64_t index) const = 0;
432
434 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "SubRepresentation";
435
436 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
437
440
441 protected:
442
450 DLL_IMPORT_OR_EXPORT SubRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) :
451 RESQML2_NS::AbstractRepresentation(partialObject) {}
452
455
461 SubRepresentation(gsoap_resqml2_0_1::_resqml20__SubRepresentation* fromGsoap) : RESQML2_NS::AbstractRepresentation(fromGsoap) {}
462
468 SubRepresentation(gsoap_eml2_3::_resqml22__SubRepresentation* fromGsoap) : RESQML2_NS::AbstractRepresentation(fromGsoap) {}
469
475 virtual void pushBackXmlSupportingRepresentation(AbstractRepresentation const * supportingRep) = 0;
476 };
477}
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:37
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
void getXyzPointsOfPatch(unsigned int patchIndex, double *xyzPoints) const override
virtual uint64_t getLatticeElementIndicesDimensionCount(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual void getElementIndicesOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex, uint64_t *elementIndices) const =0
virtual int64_t getLatticeElementIndicesStartValue(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual void pushBackRefToExistingDataset(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, const std::string &elementDataset, int64_t nullValue, eml2 ::AbstractHdfProxy *proxy, const std::string &supportingRepDataset="")=0
void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, eml2 ::AbstractHdfProxy *proxy=nullptr)
void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, uint64_t *elementIndices, eml2 ::AbstractHdfProxy *proxy=nullptr, short *supportingRepIndices=nullptr)
void loadTargetRelationships() final
virtual void getSupportingRepresentationIndicesOfPatch(unsigned int patchIndex, short *supportingRepresentationIndices) const =0
Gets the indices of the supporting representations that refer the selected elements indices of a part...
virtual uint64_t getLatticeElementIndicesOffsetCount(unsigned int latticeDimensionIndex, unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t originIndex, unsigned int elementCountInSlowestDimension, unsigned int elementCountInMiddleDimension, unsigned int elementCountInFastestDimension)=0
AbstractRepresentation * getSupportingRepresentation(uint64_t index) const
virtual uint64_t getElementCountOfPatch(unsigned int patchIndex) const =0
virtual bool areElementIndicesPairwise(unsigned int patchIndex) const =0
virtual ~SubRepresentation()=default
virtual common::DataObjectReference getSupportingRepresentationDor(uint64_t index) const =0
virtual int64_t getLatticeElementIndicesOffsetValue(unsigned int latticeDimensionIndex, unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
void setElementIndices(uint64_t *elementIndices, uint64_t elementCount, uint64_t offset, eml2 ::AbstractHdfProxy *proxy=nullptr, unsigned int patchIndex=(std::numeric_limits< unsigned int >::max)())
virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind0, gsoap_eml2_3::eml23__IndexableElement elementKind1, uint64_t elementCount, uint64_t *elementIndices0, uint64_t *elementIndices1, eml2 ::AbstractHdfProxy *proxy=nullptr)=0
virtual gsoap_eml2_3::eml23__IndexableElement getElementKindOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex) const =0
uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const override
virtual bool areElementIndicesBasedOnLattice(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
void pushBackSupportingRepresentation(AbstractRepresentation *supportingRep)
virtual uint64_t getSupportingRepresentationCount() const =0