Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Public Member Functions | Static Public Attributes | List of all members
resqml2::PointsProperty Class Referenceabstract

Proxy class for an points property. More...

#include <PointsProperty.h>

Inheritance diagram for resqml2::PointsProperty:
resqml2::AbstractProperty common::AbstractObject resqml2_0_1::PointsProperty resqml2_2::PointsProperty

Public Member Functions

virtual ~PointsProperty ()=default
 
uint64_t getXyzPointCountOfPatch (unsigned int patchIndex) const
 
uint64_t getXyzPointCountOfAllPatches () const
 
void getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const
 Gets all the xyz points of a particular patch of this property. xyz points are given in the local CRS. More...
 
void getXyzPointsOfPatchInGlobalCrs (unsigned int patchIndex, double *xyzPoints) const
 Gets all the xyz points of a particular patch of this property. xyz points are given in the global CRS. More...
 
void getXyzPointsOfAllPatches (double *xyzPoints) const
 Gets all the xyz points of all patches of this property. xyz points are given in the local CRS. More...
 
void getXyzPointsOfAllPatchesInGlobalCrs (double *xyzPoints) const
 
void pushBackArray1dOfXyzPoints (const double *xyzPoints, uint64_t pointCount, eml2::AbstractHdfProxy *proxy=nullptr)
 Adds a 1d array of points (in local CRS) to the property. More...
 
void pushBackArray2dOfXyzPoints (const double *xyzPoints, uint64_t pointCountInFastestDim, uint64_t pointCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
 Adds a 2d array of points (in local CRS) to the property. More...
 
void pushBackArray3dOfXyzPoints (const double *xyzPoints, uint64_t pointCountInFastestDim, uint64_t pointCountInMiddleDim, uint64_t pointCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
 Adds a 3d array of points (in local CRS) to the property. More...
 
void pushBackArrayOfXyzPoints (double const *xyzPoints, unsigned long long const *pointCountByDimension, unsigned int numArrayDimensions, eml2::AbstractHdfProxy *proxy=nullptr)
 Adds an nd array of points (in local CRS) to the property. More...
 
virtual std::string pushBackRefToExistingDataset (eml2::AbstractHdfProxy *proxy, const std::string &datasetName="")=0
 
bool validatePropertyKindAssociation (eml2::PropertyKind *) final
 
bool validatePropertyKindAssociation (gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind) final
 
std::string getXmlTag () const final
 
- Public Member Functions inherited from resqml2::AbstractProperty
virtual ~AbstractProperty ()=default
 
void setRepresentation (AbstractRepresentation *rep)
 
common::DataObjectReference getRepresentationDor () const
 
AbstractRepresentationgetRepresentation () const
 
unsigned int getElementCountPerValue () const
 
gsoap_eml2_3::resqml22__IndexableElement getAttachmentKind () const
 
virtual unsigned int getPatchCount () const =0
 
common::AbstractObject::hdfDatatypeEnum getValuesHdfDatatype () const
 
unsigned int getValuesCountOfPatch (unsigned int patchIndex) const
 
unsigned int getValuesCountOfDimensionOfPatch (unsigned int dimIndex, unsigned int patchIndex) const
 
unsigned int getDimensionsCountOfPatch (unsigned int patchIndex) const
 
std::vector< resqml2::PropertySet * > getPropertySets () const
 
unsigned int getPropertySetCount () const
 
resqml2::PropertySetgetPropertySet (unsigned int index) const
 
void setLocalCrs (class AbstractLocal3dCrs *crs)
 
class AbstractLocal3dCrsgetLocalCrs () const
 
common::DataObjectReference getLocalCrsDor () const
 
bool hasRealizationIndices () const
 
std::vector< unsigned int > getRealizationIndices () const
 
void setRealizationIndices (uint64_t startRealizationIndex, uint64_t countRealizationIndices)
 
void setRealizationIndices (const std::vector< unsigned int > &realizationIndices, eml2::AbstractHdfProxy *hdfProxy=nullptr)
 Sets the realization indices of this property. More...
 
void setTimeSeries (eml2::TimeSeries *ts)
 
eml2::TimeSeriesgetTimeSeries () const
 
common::DataObjectReference getTimeSeriesDor () const
 
void setTimeIndices (uint64_t startTimeIndex, uint64_t countTimeIndices, eml2::TimeSeries *ts, bool useInterval=false)
 Sets the timestamps of this property by means of an index in a time series. More...
 
unsigned int getTimeIndexStart () const
 
unsigned int getTimeIndicesCount () const
 
bool useInterval () const
 
bool isAssociatedToOneStandardEnergisticsPropertyKind () const
 
std::string getPropertyKindDescription () const
 
std::string getPropertyKindAsString () const
 
std::string getPropertyKindParentAsString () const
 
void setPropertyKind (eml2::PropertyKind *propKind)
 
common::DataObjectReference getPropertyKindDor () const
 
eml2::PropertyKindgetPropertyKind () const
 
bool validate ()
 
- Public Member Functions inherited from common::AbstractObject
bool isPartial () const
 
virtual bool isTopLevelElement () const
 
std::string getUuid () const
 
std::string getTitle () const
 
std::string getEditor () const
 
time_t getCreation () const
 
tm getCreationAsTimeStructure () const
 
std::string getOriginator () const
 
std::string getDescription () const
 
time_t getLastUpdate () const
 
tm getLastUpdateAsTimeStructure () const
 
std::string getFormat () const
 
std::string getDescriptiveKeywords () const
 
std::string getVersion () const
 
void setTitle (const std::string &title)
 
void setEditor (const std::string &editor)
 
void setCreation (time_t creation)
 
void setCreation (const tm &creation)
 
void setOriginator (const std::string &originator)
 
void setDescription (const std::string &description)
 
void setLastUpdate (time_t lastUpdate)
 
void setLastUpdate (const tm &lastUpdate)
 
void setDescriptiveKeywords (const std::string &descriptiveKeywords)
 
void setVersion (const std::string &version)
 
void setMetadata (const std::string &title, const std::string &editor, time_t creation, const std::string &originator, const std::string &description, time_t lastUpdate, const std::string &descriptiveKeywords)
 
void serializeIntoStream (std::ostream *stream)
 
void setGsoapProxy (gsoap_resqml2_0_1::eml20__AbstractCitedDataObject *gsoapProxy)
 
void setGsoapProxy (gsoap_eml2_1::eml21__AbstractObject *gsoapProxy)
 
gsoap_resqml2_0_1::eml20__AbstractCitedDataObject * getEml20GsoapProxy () const
 
gsoap_eml2_1::eml21__AbstractObject * getEml21GsoapProxy () const
 
gsoap_eml2_2::eml22__AbstractObject * getEml22GsoapProxy () const
 
void setGsoapProxy (gsoap_eml2_2::eml22__AbstractObject *gsoapProxy)
 
gsoap_eml2_3::eml23__AbstractObject * getEml23GsoapProxy () const
 
void setGsoapProxy (gsoap_eml2_3::eml23__AbstractObject *gsoapProxy)
 
soap * getGsoapContext () const
 
int getGsoapType () const
 
gsoap_resqml2_0_1::eml20__DataObjectReference * newResqmlReference () const
 
gsoap_eml2_1::eml21__DataObjectReference * newEmlReference () const
 
gsoap_eml2_2::eml22__DataObjectReference * newEml22Reference () const
 
gsoap_eml2_3::eml23__DataObjectReference * newEml23Reference () const
 
gsoap_resqml2_0_1::resqml20__ContactElementReference * newContactElementReference2_0_1 () const
 
gsoap_eml2_3::resqml22__ContactElement * newContactElementReference2_2 () const
 
common::DataObjectRepositorygetRepository () const
 
virtual std::string getXmlNamespace () const =0
 
virtual std::string getXmlNamespaceVersion () const
 
virtual std::string getContentType () const
 
virtual std::string getQualifiedType () const
 
virtual std::string getPartNameInEpcDocument () const
 
std::string serializeIntoString ()
 
void addAlias (const std::string &authority, const std::string &title)
 
unsigned int getAliasCount () const
 
std::string getAliasAuthorityAtIndex (unsigned int index) const
 
std::string getAliasTitleAtIndex (unsigned int index) const
 
std::vector< eml2::Activity * > getActivitySet () const
 
unsigned int getActivityCount () const
 
eml2::ActivitygetActivity (unsigned int index) const
 
void pushBackExtraMetadata (const std::string &key, const std::string &value)
 
std::unordered_map< std::string, std::string > getExtraMetadataSet () const
 
std::vector< std::string > getExtraMetadata (const std::string &key) const
 
unsigned int getExtraMetadataCount () const
 
std::string getExtraMetadataKeyAtIndex (unsigned int index) const
 
std::string getExtraMetadataStringValueAtIndex (unsigned int index) const
 

Static Public Attributes

static const char * XML_TAG
 

Additional Inherited Members

- Public Types inherited from common::AbstractObject
enum  hdfDatatypeEnum {
  UNKNOWN = 0 , DOUBLE = 1 , FLOAT = 2 , LONG_64 = 3 ,
  ULONG_64 = 4 , INT = 5 , UINT = 6 , SHORT = 7 ,
  USHORT = 8 , CHAR = 9 , UCHAR = 10
}
 
- Static Public Member Functions inherited from common::AbstractObject
static void setFormat (const std::string &vendor, const std::string &applicationName, const std::string &applicationVersionNumber)
 

Detailed Description

Proxy class for an points property.

Constructor & Destructor Documentation

◆ ~PointsProperty()

virtual resqml2::PointsProperty::~PointsProperty ( )
virtualdefault

Destructor does nothing since the memory is managed by the gsoap context.

Reimplemented in resqml2_2::PointsProperty, and resqml2_0_1::PointsProperty.

Member Function Documentation

◆ getXmlTag()

std::string resqml2::PointsProperty::getXmlTag ( ) const
inlinefinalvirtual

Gets the standard XML tag without XML namespace for serializing this data object.

Returns
The XML tag.

Implements common::AbstractObject.

◆ getXyzPointCountOfAllPatches()

uint64_t resqml2::PointsProperty::getXyzPointCountOfAllPatches ( ) const

Get the xyz point count of all patches of this property.

Returns
The xyz point count of all patches.

◆ getXyzPointCountOfPatch()

uint64_t resqml2::PointsProperty::getXyzPointCountOfPatch ( unsigned int  patchIndex) const
inline

Get the xyz point count in a given patch of this property.

Exceptions
std::out_of_rangeIf patchIndex is out of range.
std::logic_errorIf this representation is partial.
Parameters
patchIndexZero-based index of the patch from which we look for the xyz points.
Returns
The xyz point count of the patch at position patchIndex.

◆ getXyzPointsOfAllPatches()

void resqml2::PointsProperty::getXyzPointsOfAllPatches ( double *  xyzPoints) const

Gets all the xyz points of all patches of this property. xyz points are given in the local CRS.

Parameters
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is the coordinate dimension (x, y or z) and second dimension is vertex dimension. It must be preallocated with a size of 3 * getXyzPointCountOfAllPatches().

◆ getXyzPointsOfAllPatchesInGlobalCrs()

void resqml2::PointsProperty::getXyzPointsOfAllPatchesInGlobalCrs ( double *  xyzPoints) const

Gets all the xyz points of all patches of this property. xyz points are given in the global CRS.

Parameters
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is the coordinate dimension (x, y or Z) and second dimension is vertex dimension. Thus, its size is 3*(3*[count of all xyz points]). It must be preallocated.

◆ getXyzPointsOfPatch()

void resqml2::PointsProperty::getXyzPointsOfPatch ( unsigned int  patchIndex,
double *  xyzPoints 
) const

Gets all the xyz points of a particular patch of this property. xyz points are given in the local CRS.

Exceptions
std::out_of_rangeIf patchIndex is out of range.
std::logic_errorIf this property is partial.
Parameters
patchIndexZero-based index of the patch from which we look for the xyz points.
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is the coordinate dimension (x, y or z) and second dimension is vertex dimension. It must be preallocated with a size of 3 * getXyzPointCountOfPatch(patchIndex).

◆ getXyzPointsOfPatchInGlobalCrs()

void resqml2::PointsProperty::getXyzPointsOfPatchInGlobalCrs ( unsigned int  patchIndex,
double *  xyzPoints 
) const

Gets all the xyz points of a particular patch of this property. xyz points are given in the global CRS.

Exceptions
std::out_of_rangeIf patchIndex is out of range.
Parameters
patchIndexZero-based index of the patch from which we look for the xyz points.
[out]xyzPointsA linearized 2d array where the first (quickest) dimension is the coordinate dimension (x, y or z) and second dimension is vertex dimension. It must be preallocated with a size of 3 * getXyzPointCountOfPatch(patchIndex).

◆ pushBackArray1dOfXyzPoints()

void resqml2::PointsProperty::pushBackArray1dOfXyzPoints ( const double *  xyzPoints,
uint64_t  pointCount,
eml2::AbstractHdfProxy proxy = nullptr 
)

Adds a 1d array of points (in local CRS) to the property.

Exceptions
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
Parameters
xyzPointsAll the property values to set ordered according the topology of the representation it is based on.
pointCountThe number of points to write.
[in,out]proxy(Optional) The HDF proxy where to write the property points. It must be already opened for writing and won't be closed in this method. If nullptr (default value), then a default HDF proxy must be defined in the repository.

◆ pushBackArray2dOfXyzPoints()

void resqml2::PointsProperty::pushBackArray2dOfXyzPoints ( const double *  xyzPoints,
uint64_t  pointCountInFastestDim,
uint64_t  pointCountInSlowestDim,
eml2::AbstractHdfProxy proxy = nullptr 
)

Adds a 2d array of points (in local CRS) to the property.

Exceptions
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
Parameters
xyzPointsAll the property values to set ordered according the topology of the representation it is based on.
pointCountInFastestDimThe number of points to write in the fastest dimension (mainly I dimension).
pointCountInSlowestDimThe number of points to write in the slowest dimension (mainly J dimension).
[in,out]proxy(Optional) The HDF proxy where to write the property points. It must be already opened for writing and won't be closed in this method. If nullptr (default value), then a default HDF proxy must be defined in the repository.

◆ pushBackArray3dOfXyzPoints()

void resqml2::PointsProperty::pushBackArray3dOfXyzPoints ( const double *  xyzPoints,
uint64_t  pointCountInFastestDim,
uint64_t  pointCountInMiddleDim,
uint64_t  pointCountInSlowestDim,
eml2::AbstractHdfProxy proxy = nullptr 
)

Adds a 3d array of points (in local CRS) to the property.

Exceptions
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
Parameters
xyzPointsAll the property values to set ordered according the topology of the representation it is based on.
pointCountInFastestDimThe number of points to write in the fastest dimension (mainly I dimension).
pointCountInMiddleDimThe number of points to write in the middle dimension (mainly J dimension).
pointCountInSlowestDimThe number of points to write in the slowest dimension (mainly K dimension).
[in,out]proxy(Optional) The HDF proxy where to write the property points. It must be already opened for writing and won't be closed in this method. If nullptr (default value), then a default HDF proxy must be defined in the repository.

◆ pushBackArrayOfXyzPoints()

void resqml2::PointsProperty::pushBackArrayOfXyzPoints ( double const *  xyzPoints,
unsigned long long const *  pointCountByDimension,
unsigned int  numArrayDimensions,
eml2::AbstractHdfProxy proxy = nullptr 
)

Adds an nd array of points (in local CRS) to the property.

Exceptions
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
Parameters
xyzPointsAll the property values to set ordered according the topology of the representation it is based on.
pointCountByDimensionThe number of property points ordered by dimension of the array to write.
numArrayDimensionsThe number of dimensions of the array to write.
[in,out]proxy(Optional) The HDF proxy where to write the property points. It must be already opened for writing and won't be closed in this method. If nullptr (default value), then a default HDF proxy must be defined in the repository.

◆ pushBackRefToExistingDataset()

virtual std::string resqml2::PointsProperty::pushBackRefToExistingDataset ( eml2::AbstractHdfProxy proxy,
const std::string &  datasetName = "" 
)
pure virtual

Pushes back a reference to an existing (or a "to exist") HDF dataset in a particular HDF proxy. The reason can be that the values already exist in an external file (only HDF5 for now) or that the writing of the values in the external file is differed in time.

Exceptions
std::invalid_argumentIf proxy is nullptr and no default HDF proxy is defined in the repository.
Parameters
[in]proxyThe HDF5 proxy where the values are already or will be stored. If nullptr, then a default HDF proxy must be defined in the repository.
datasetName(Optional) The HDF5 dataset name where the values are stored. If empty, the dataset will be named the same as the dataset naming convention of fesapi : getHdfGroup() + "/points_patch" + patchIndex
Returns
The name of the referenced HDF5 dataset.

Implemented in resqml2_2::PointsProperty, and resqml2_0_1::PointsProperty.

◆ validatePropertyKindAssociation() [1/2]

bool resqml2::PointsProperty::validatePropertyKindAssociation ( eml2::PropertyKind )
inlinefinalvirtual

Checks if it is allowed to associate a given property kind to this property. TODO : think about how to validate such a property.

Parameters
[in]pkThe local property kind to check.
Returns
True if it is allowed, false if it is not.

Implements resqml2::AbstractProperty.

◆ validatePropertyKindAssociation() [2/2]

bool resqml2::PointsProperty::validatePropertyKindAssociation ( gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind  )
inlinefinalvirtual

Checks if it is allowed to associate a given standard Energistics property kind to this property. TODO : think about how to validate such a property.

Parameters
pkThe standard Energistics property kind to check.
Returns
True if it is allowed, false if it is not.

Implements resqml2::AbstractProperty.

Member Data Documentation

◆ XML_TAG

const char* resqml2::PointsProperty::XML_TAG
static

The standard XML tag without XML namespace for serializing this data object.


The documentation for this class was generated from the following file: