Fesapi 2.14.0.0
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(uint64_t patchIndex, unsigned int elementIndicesIndex) const = 0;
67
78 DLL_IMPORT_OR_EXPORT virtual uint64_t getElementCountOfPatch(uint64_t patchIndex) const = 0;
79
101 DLL_IMPORT_OR_EXPORT virtual void getElementIndicesOfPatch(uint64_t patchIndex, unsigned int elementIndicesIndex, uint64_t* elementIndices) const = 0;
102
120 DLL_IMPORT_OR_EXPORT virtual void getSupportingRepresentationIndicesOfPatch(uint64_t patchIndex, short* supportingRepresentationIndices) const = 0;
121
131 DLL_IMPORT_OR_EXPORT virtual bool areElementIndicesPairwise(uint64_t patchIndex) const = 0;
132
150 DLL_IMPORT_OR_EXPORT virtual bool areElementIndicesBasedOnLattice(uint64_t patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
151
171 DLL_IMPORT_OR_EXPORT virtual int64_t getLatticeElementIndicesStartValue(uint64_t patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
172
193 DLL_IMPORT_OR_EXPORT virtual uint64_t getLatticeElementIndicesDimensionCount(uint64_t patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
194
217 DLL_IMPORT_OR_EXPORT virtual int64_t getLatticeElementIndicesOffsetValue(unsigned int latticeDimensionIndex, uint64_t patchIndex, unsigned int elementIndicesIndex = 0) const = 0;
218
241 DLL_IMPORT_OR_EXPORT virtual uint64_t getLatticeElementIndicesOffsetCount(unsigned int latticeDimensionIndex, uint64_t 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 uint64_t 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(uint64_t patchIndex) const override;
379
381 DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(uint64_t 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 a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
virtual uint64_t getLatticeElementIndicesOffsetCount(unsigned int latticeDimensionIndex, uint64_t patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual bool areElementIndicesBasedOnLattice(uint64_t patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual gsoap_eml2_3::eml23__IndexableElement getElementKindOfPatch(uint64_t patchIndex, unsigned int elementIndicesIndex) const =0
virtual bool areElementIndicesPairwise(uint64_t patchIndex) const =0
virtual int64_t getLatticeElementIndicesOffsetValue(unsigned int latticeDimensionIndex, uint64_t 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 loadTargetRelationships() final
virtual uint64_t getLatticeElementIndicesDimensionCount(uint64_t patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual void getElementIndicesOfPatch(uint64_t patchIndex, unsigned int elementIndicesIndex, uint64_t *elementIndices) const =0
uint64_t getXyzPointCountOfPatch(uint64_t patchIndex) const override
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
void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, eml2::AbstractHdfProxy *proxy=nullptr)
virtual ~SubRepresentation()=default
virtual common::DataObjectReference getSupportingRepresentationDor(uint64_t index) const =0
virtual int64_t getLatticeElementIndicesStartValue(uint64_t patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual void getSupportingRepresentationIndicesOfPatch(uint64_t patchIndex, short *supportingRepresentationIndices) const =0
Gets the indices of the supporting representations that refer the selected elements indices of a part...
virtual uint64_t getElementCountOfPatch(uint64_t patchIndex) const =0
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
void setElementIndices(uint64_t *elementIndices, uint64_t elementCount, uint64_t offset, eml2::AbstractHdfProxy *proxy=nullptr, uint64_t patchIndex=(std::numeric_limits< unsigned int >::max)())
static constexpr char const * XML_TAG
Definition SubRepresentation.h:434
virtual std::string getXmlTag() const final
Definition SubRepresentation.h:436
void getXyzPointsOfPatch(uint64_t patchIndex, double *xyzPoints) const override
void pushBackSupportingRepresentation(AbstractRepresentation *supportingRep)
virtual uint64_t getSupportingRepresentationCount() const =0
virtual uint64_t getPatchCount() const override=0
void pushBackSubRepresentationPatch(gsoap_eml2_3::eml23__IndexableElement elementKind, uint64_t elementCount, uint64_t *elementIndices, eml2::AbstractHdfProxy *proxy=nullptr, short *supportingRepIndices=nullptr)