Fesapi 2.3.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
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::resqml22__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 unsigned int 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::resqml22__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::resqml22__IndexableElement elementKind, uint64_t elementCount, uint64_t* elementIndices, EML2_NS::AbstractHdfProxy* proxy = nullptr, short* supportingRepIndices = nullptr);
278
295 DLL_IMPORT_OR_EXPORT virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::resqml22__IndexableElement elementKind0, gsoap_eml2_3::resqml22__IndexableElement elementKind1,
296 uint64_t elementCount,
297 uint64_t * elementIndices0, uint64_t * elementIndices1,
298 EML2_NS::AbstractHdfProxy* proxy = nullptr) = 0;
299
324 DLL_IMPORT_OR_EXPORT virtual void pushBackRefToExistingDataset(gsoap_eml2_3::resqml22__IndexableElement elementKind, uint64_t elementCount, const std::string& elementDataset,
325 int64_t nullValue, EML2_NS::AbstractHdfProxy* proxy, const std::string& supportingRepDataset = "") = 0;
326
334 DLL_IMPORT_OR_EXPORT uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const override;
335
337 DLL_IMPORT_OR_EXPORT void getXyzPointsOfPatch(unsigned int patchIndex, double* xyzPoints) const override;
338
339 DLL_IMPORT_OR_EXPORT virtual unsigned int getPatchCount() const override = 0;
340
350 DLL_IMPORT_OR_EXPORT void pushBackSupportingRepresentation(AbstractRepresentation * supportingRep);
351
360 DLL_IMPORT_OR_EXPORT virtual unsigned int getSupportingRepresentationCount() const = 0;
361
373 DLL_IMPORT_OR_EXPORT AbstractRepresentation* getSupportingRepresentation(unsigned int index) const;
374
387 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getSupportingRepresentationDor(unsigned int index) const = 0;
388
390 DLL_IMPORT_OR_EXPORT static const char* XML_TAG;
391
392 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
393
396
397 protected:
398
406 DLL_IMPORT_OR_EXPORT SubRepresentation(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) :
407 RESQML2_NS::AbstractRepresentation(partialObject) {}
408
411
417 SubRepresentation(gsoap_resqml2_0_1::_resqml20__SubRepresentation* fromGsoap) : RESQML2_NS::AbstractRepresentation(fromGsoap) {}
418
424 SubRepresentation(gsoap_eml2_3::_resqml22__SubRepresentation* fromGsoap) : RESQML2_NS::AbstractRepresentation(fromGsoap) {}
425
431 virtual void pushBackXmlSupportingRepresentation(AbstractRepresentation const * supportingRep) = 0;
432 };
433}
Proxy class for an abstract representation.
Definition: AbstractRepresentation.h:32
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition: SubRepresentation.h:38
void pushBackSubRepresentationPatch(gsoap_eml2_3::resqml22__IndexableElement elementKind, uint64_t elementCount, uint64_t *elementIndices, eml2::AbstractHdfProxy *proxy=nullptr, short *supportingRepIndices=nullptr)
virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::resqml22__IndexableElement elementKind, uint64_t originIndex, unsigned int elementCountInSlowestDimension, unsigned int elementCountInMiddleDimension, unsigned int elementCountInFastestDimension)=0
static const char * XML_TAG
Definition: SubRepresentation.h:390
void getXyzPointsOfPatch(unsigned int patchIndex, double *xyzPoints) const override
virtual gsoap_eml2_3::resqml22__IndexableElement getElementKindOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex) const =0
virtual void pushBackSubRepresentationPatch(gsoap_eml2_3::resqml22__IndexableElement elementKind0, gsoap_eml2_3::resqml22__IndexableElement elementKind1, uint64_t elementCount, uint64_t *elementIndices0, uint64_t *elementIndices1, eml2::AbstractHdfProxy *proxy=nullptr)=0
virtual unsigned int getLatticeElementIndicesDimensionCount(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual unsigned int getSupportingRepresentationCount() const =0
virtual common::DataObjectReference getSupportingRepresentationDor(unsigned int index) const =0
AbstractRepresentation * getSupportingRepresentation(unsigned int index) const
virtual unsigned int getPatchCount() const override=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
void loadTargetRelationships() final
virtual void pushBackRefToExistingDataset(gsoap_eml2_3::resqml22__IndexableElement elementKind, uint64_t elementCount, const std::string &elementDataset, int64_t nullValue, eml2::AbstractHdfProxy *proxy, const std::string &supportingRepDataset="")=0
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 uint64_t getElementCountOfPatch(unsigned int patchIndex) const =0
virtual bool areElementIndicesPairwise(unsigned int patchIndex) const =0
virtual ~SubRepresentation()=default
virtual int64_t getLatticeElementIndicesOffsetValue(unsigned int latticeDimensionIndex, unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
virtual std::string getXmlTag() const final
Definition: SubRepresentation.h:392
uint64_t getXyzPointCountOfPatch(unsigned int patchIndex) const override
virtual bool areElementIndicesBasedOnLattice(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
void pushBackSupportingRepresentation(AbstractRepresentation *supportingRep)