File VolumeDataChannelDescriptor.h

namespace OpenVDS
class VolumeDataChannelDescriptor
#include <VolumeDataChannelDescriptor.h>

Describes a channel of a VDS.

Public Types

enum Flags

Flags for this channel.

Values:

enumerator Default
enumerator DiscreteData

This channel contains discrete data.

enumerator NoLossyCompression

Do not allow lossy compression on this channel.

enumerator NotRenderable

This channel is not renderable.

enumerator NoLossyCompressionUseZip

Use Zip when compressing this channel.

typedef VolumeDataFormat Format
typedef VolumeDataComponents Components

Public Functions

inline VolumeDataChannelDescriptor()
inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax)

The minimum constructor for a VolumeDataChannelDescriptor. This will use direct mapping, default flags, and no NoValue

Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, VolumeDataMapping mapping)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mapping – the mapping for this channel

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, enum Flags flags)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • flags – the flags for this channel

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, VolumeDataMapping mapping, enum Flags flags)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mapping – the mapping for this channel

  • flags – the flags for this channel

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, VolumeDataMapping mapping, int mappedValueCount, enum Flags flags, float integerScale, float integerOffset)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mapping – the mapping for this channel

  • mappedValueCount – When using per trace mapping, the number of values to store per trace

  • flags – the flags for this channel

  • integerScale – the scale to use for integer types

  • integerOffset – the offset to use for integer types

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, float noValue)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • noValue – the No Value for this channel

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, float noValue, VolumeDataMapping mapping, enum Flags flags)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • noValue – the No Value for this channel

  • mapping – the mapping for this channel

  • flags – the flags for this channel

inline VolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, VolumeDataMapping mapping, int mappedValueCount, enum Flags flags, float noValue, float integerScale, float integerOffset)
Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mapping – the mapping for this channel

  • mappedValueCount – When using per trace mapping, the number of values to store per trace

  • flags – the flags for this channel

  • noValue – the No Value for this channel

  • integerScale – the scale to use for integer types

  • integerOffset – the offset to use for integer types

inline Format GetFormat() const
inline Components GetComponents() const
inline bool IsDiscrete() const
inline bool IsRenderable() const
inline bool IsAllowLossyCompression() const
inline bool IsUseZipForLosslessCompression() const
inline const char *GetName() const
inline const char *GetUnit() const
inline const FloatRange &GetValueRange() const
inline float GetValueRangeMin() const
inline float GetValueRangeMax() const
inline VolumeDataMapping GetMapping() const
inline int GetMappedValueCount() const
inline bool IsUseNoValue() const
inline float GetNoValue() const
inline float GetIntegerScale() const
inline float GetIntegerOffset() const
inline VolumeDataChannelDescriptor::Flags GetFlags() const

Public Static Functions

static inline VolumeDataChannelDescriptor TraceMappedVolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, int mappedValueCount, enum Flags flags)

Named constructor for a trace mapped channel

Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mappedValueCount – When using per trace mapping, the number of values to store per trace

  • flags – the flags for this channel

Returns:

a trace mapped descriptor

static inline VolumeDataChannelDescriptor TraceMappedVolumeDataChannelDescriptor(Format format, Components components, const char *name, const char *unit, float valueRangeMin, float valueRangeMax, int mappedValueCount, enum Flags flags, float noValue)

Named constructor for a trace mapped channel

Parameters:
  • format – the data format for this channel

  • components – the number of vector components (1 for scalar data) for this channel

  • name – the name of this channel

  • unit – the unit of this channel

  • valueRangeMin – The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

  • valueRangeMax – The estimated maximum value of this channel, with outliers removed

  • mappedValueCount – When using per trace mapping, the number of values to store per trace

  • flags – the flags for this channel

  • noValue – the No Value for this channel

Returns:

a trace mapped descriptor

Public Static Attributes

static constexpr Format Format_Any = VolumeDataFormat::Format_Any

data can be in any format

static constexpr Format Format_1Bit = VolumeDataFormat::Format_1Bit

data is in packed 1-bit format

static constexpr Format Format_U8 = VolumeDataFormat::Format_U8

data is in unsigned 8 bit

static constexpr Format Format_U16 = VolumeDataFormat::Format_U16

data is in unsigned 16 bit

static constexpr Format Format_R32 = VolumeDataFormat::Format_R32

data is in 32 bit float

static constexpr Format Format_U32 = VolumeDataFormat::Format_U32

data is in unsigned 32 bit

static constexpr Format Format_R64 = VolumeDataFormat::Format_R64

data is in 64 bit double

static constexpr Format Format_U64 = VolumeDataFormat::Format_U64

data is in unsigned 64 bit

static constexpr Components Components_1 = VolumeDataComponents::Components_1
static constexpr Components Components_2 = VolumeDataComponents::Components_2
static constexpr Components Components_4 = VolumeDataComponents::Components_4

Private Members

Format m_format
Components m_components
const char *m_name
const char *m_unit
FloatRange m_valueRange
VolumeDataMapping m_mapping
int m_mappedValueCount
Flags m_flags
bool m_useNoValue
float m_noValue
float m_integerScale
float m_integerOffset