HydroCouple  2.0.0-alpha.1
HydroCouple Interface Definitions
Loading...
Searching...
No Matches
HydroCouple::IDimension Class Referenceabstract

IDimension provides the properties of one axis of a data item's index space. More...

#include <hydrocouple.h>

Inheritance diagram for HydroCouple::IDimension:
Collaboration diagram for HydroCouple::IDimension:

Public Types

enum class  LengthType {
  Static = 0 ,
  Dynamic = 1
}
 IDimension::LengthType dimension length type. More...
 
enum class  DimensionRole : uint8_t {
  Unknown = 0 ,
  Time ,
  Entity ,
  Layer ,
  Band ,
  Row ,
  Column ,
  Depth ,
  Component ,
  Realization ,
  Other
}
 What an axis of the index space means. More...
 

Public Member Functions

virtual ~IDimension ()=default
 ~IDimension destructor
 
virtual LengthType lengthType () const =0
 Gets the length type of the dimension.
 
virtual DimensionRole role () const =0
 What this axis means.
 
- Public Member Functions inherited from HydroCouple::IIdentity
virtual ~IIdentity ()=default
 IIdentity::~IIdentity is a virtual destructor.
 
virtual const std::string & id () const =0
 Gets a unique identifier for the entity.
 
- Public Member Functions inherited from HydroCouple::IDescription
virtual ~IDescription ()=default
 IDescription::~IDescription is a virtual destructor.
 
virtual const std::string & caption () const =0
 Gets caption for the entity.
 
virtual void setCaption (const std::string &caption)=0
 Sets caption for the entity.
 
virtual const std::string & description () const =0
 Gets additional descriptive information for the entity.
 
virtual void setDescription (const std::string &description)=0
 Gets additional descriptive information for the entity.
 
- Public Member Functions inherited from HydroCouple::IPropertyChanged
virtual ~IPropertyChanged ()=default
 IPropertyChanged::~IPropertyChanged is a virtual destructor.
 
- Public Member Functions inherited from HydroCouple::ISignal< std::string >
virtual ~ISignal ()=default
 ISignal::~ISignal is a virtual destructor.
 
virtual void connect (const std::shared_ptr< ISlot< Args... > > &slot)=0
 connect is used to connect a slot to the signal.
 
virtual void disconnect (const std::shared_ptr< ISlot< Args... > > &slot)=0
 disconnect is used to disconnect a slot from the signal.
 
virtual void blockSignals (bool block)=0
 blockSignals is used to block signals from being emitted.
 

Additional Inherited Members

- Protected Member Functions inherited from HydroCouple::ISignal< std::string >
virtual void emit (Args... args)=0
 emit is used to emit the signal.
 

Detailed Description

IDimension provides the properties of one axis of a data item's index space.

Every specialization of IComponentDataItem documents a canonical dimension ordering ("time is dimension 0, the entity dimension is dimension 1, ..."). That prose is for readers; role() is the same information for programs. A generic consumer — a NetCDF writer, a partitioner, an autograd driver — asks each dimension for its role instead of knowing which specialization it holds.

Member Enumeration Documentation

◆ DimensionRole

enum class HydroCouple::IDimension::DimensionRole : uint8_t
strong

What an axis of the index space means.

Enumerator
Unknown 

Not declared.

Time 

Time steps (Temporal::ITimeSeriesComponentDataItem::times()).

Entity 

Spatial entities: geometries, mesh nodes/edges/faces, network nodes/edges, or the identifiers of an id-based item.

Layer 

Vertical layers (Spatial::ILayering), top first.

Band 

Raster bands.

Row 

Raster rows / structured-grid y index.

Column 

Raster columns / structured-grid x index.

Depth 

Structured-grid z index (IRegularGrid3D).

Component 

Vector or tensor components (Spatial::SpatialDataType).

Realization 

Ensemble members.

Other 

Declared but none of the above.

◆ LengthType

IDimension::LengthType dimension length type.

Enumerator
Static 

Static length type.

Dynamic 

Dynamic length type.

Constructor & Destructor Documentation

◆ ~IDimension()

virtual HydroCouple::IDimension::~IDimension ( )
virtualdefault

~IDimension destructor

Member Function Documentation

◆ lengthType()

virtual LengthType HydroCouple::IDimension::lengthType ( ) const
nodiscardpure virtual

Gets the length type of the dimension.

◆ role()

virtual DimensionRole HydroCouple::IDimension::role ( ) const
nodiscardpure virtual

What this axis means.

Must agree with the canonical ordering documented by the owning item's specialization; an item with two axes of the same role (a matrix of entity × entity, say) reports DimensionRole::Other for the second.


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