Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
SubRepresentation.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 "AbstractRepresentation.h"
22 
23 namespace 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 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, 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) = 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 
410  SubRepresentation() {}
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
indexableElement
Definition: AbstractRepresentation.h:36
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition: SubRepresentation.h:38
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 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
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 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)=0
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 indexableElement getElementKindOfPatch(unsigned int patchIndex, unsigned int elementIndicesIndex) const =0
AbstractRepresentation * getSupportingRepresentation(unsigned int index) const
virtual bool areElementIndicesBasedOnLattice(unsigned int patchIndex, unsigned int elementIndicesIndex=0) const =0
void pushBackSupportingRepresentation(AbstractRepresentation *supportingRep)
void pushBackSubRepresentationPatch(gsoap_eml2_3::resqml22__IndexableElement elementKind, uint64_t elementCount, uint64_t *elementIndices, eml2::AbstractHdfProxy *proxy, short *supportingRepIndices=nullptr)