Namespace OpenVDS
-
namespace OpenVDS
Typedefs
-
typedef VDSCoordinateTransformerBase<2> VDSCoordinateTransformer2D
-
typedef VDSCoordinateTransformerBase<3> VDSCoordinateTransformer3D
-
typedef VDSCoordinateTransformerBase<4> VDSCoordinateTransformer4D
-
typedef VDSCoordinateTransformerBase<5> VDSCoordinateTransformer5D
-
typedef VDSCoordinateTransformerBase<6> VDSCoordinateTransformer6D
-
typedef VDSError Error
-
typedef void (*LogCallback)(LogLevel level, const char *message, size_t messageSize, void *userHandle)
-
using IntMatrix2x2 = Matrix<int, 2>
-
using IntMatrix3x3 = Matrix<int, 3>
-
using IntMatrix4x4 = Matrix<int, 4>
-
using FloatMatrix2x2 = Matrix<float, 2>
-
using FloatMatrix3x3 = Matrix<float, 3>
-
using FloatMatrix4x4 = Matrix<float, 4>
-
using DoubleMatrix2x2 = Matrix<double, 2>
-
using DoubleMatrix3x3 = Matrix<double, 3>
-
using DoubleMatrix4x4 = Matrix<double, 4>
-
typedef struct VDS *VDSHandle
-
using IntRange = Range<int>
-
using FloatRange = Range<float>
-
using DoubleRange = Range<double>
-
using IntVector2 = Vector<int, 2>
-
using IntVector3 = Vector<int, 3>
-
using IntVector4 = Vector<int, 4>
-
using FloatVector2 = Vector<float, 2>
-
using FloatVector3 = Vector<float, 3>
-
using FloatVector4 = Vector<float, 4>
-
using DoubleVector2 = Vector<double, 2>
-
using DoubleVector3 = Vector<double, 3>
-
using DoubleVector4 = Vector<double, 4>
-
using VolumeData2DInterpolatingAccessorR64 = VolumeDataReadAccessor<FloatVector2, double>
-
using VolumeData2DInterpolatingAccessorR32 = VolumeDataReadAccessor<FloatVector2, float>
-
using VolumeData2DReadAccessorR64 = VolumeDataReadAccessor<IntVector2, double>
-
using VolumeData2DReadAccessorU64 = VolumeDataReadAccessor<IntVector2, uint64_t>
-
using VolumeData2DReadAccessorR32 = VolumeDataReadAccessor<IntVector2, float>
-
using VolumeData2DReadAccessorU32 = VolumeDataReadAccessor<IntVector2, uint32_t>
-
using VolumeData2DReadAccessorU16 = VolumeDataReadAccessor<IntVector2, uint16_t>
-
using VolumeData2DReadAccessorU8 = VolumeDataReadAccessor<IntVector2, uint8_t>
-
using VolumeData2DReadAccessor1Bit = VolumeDataReadAccessor<IntVector2, bool>
-
using VolumeData2DReadWriteAccessorR64 = VolumeDataReadWriteAccessor<IntVector2, double>
-
using VolumeData2DReadWriteAccessorU64 = VolumeDataReadWriteAccessor<IntVector2, uint64_t>
-
using VolumeData2DReadWriteAccessorR32 = VolumeDataReadWriteAccessor<IntVector2, float>
-
using VolumeData2DReadWriteAccessorU32 = VolumeDataReadWriteAccessor<IntVector2, uint32_t>
-
using VolumeData2DReadWriteAccessorU16 = VolumeDataReadWriteAccessor<IntVector2, uint16_t>
-
using VolumeData2DReadWriteAccessorU8 = VolumeDataReadWriteAccessor<IntVector2, uint8_t>
-
using VolumeData2DReadWriteAccessor1Bit = VolumeDataReadWriteAccessor<IntVector2, bool>
-
using VolumeData3DInterpolatingAccessorR64 = VolumeDataReadAccessor<FloatVector3, double>
-
using VolumeData3DInterpolatingAccessorR32 = VolumeDataReadAccessor<FloatVector3, float>
-
using VolumeData3DReadAccessorR64 = VolumeDataReadAccessor<IntVector3, double>
-
using VolumeData3DReadAccessorU64 = VolumeDataReadAccessor<IntVector3, uint64_t>
-
using VolumeData3DReadAccessorR32 = VolumeDataReadAccessor<IntVector3, float>
-
using VolumeData3DReadAccessorU32 = VolumeDataReadAccessor<IntVector3, uint32_t>
-
using VolumeData3DReadAccessorU16 = VolumeDataReadAccessor<IntVector3, uint16_t>
-
using VolumeData3DReadAccessorU8 = VolumeDataReadAccessor<IntVector3, uint8_t>
-
using VolumeData3DReadAccessor1Bit = VolumeDataReadAccessor<IntVector3, bool>
-
using VolumeData3DReadWriteAccessorR64 = VolumeDataReadWriteAccessor<IntVector3, double>
-
using VolumeData3DReadWriteAccessorU64 = VolumeDataReadWriteAccessor<IntVector3, uint64_t>
-
using VolumeData3DReadWriteAccessorR32 = VolumeDataReadWriteAccessor<IntVector3, float>
-
using VolumeData3DReadWriteAccessorU32 = VolumeDataReadWriteAccessor<IntVector3, uint32_t>
-
using VolumeData3DReadWriteAccessorU16 = VolumeDataReadWriteAccessor<IntVector3, uint16_t>
-
using VolumeData3DReadWriteAccessorU8 = VolumeDataReadWriteAccessor<IntVector3, uint8_t>
-
using VolumeData3DReadWriteAccessor1Bit = VolumeDataReadWriteAccessor<IntVector3, bool>
-
using VolumeData4DInterpolatingAccessorR64 = VolumeDataReadAccessor<FloatVector4, double>
-
using VolumeData4DInterpolatingAccessorR32 = VolumeDataReadAccessor<FloatVector4, float>
-
using VolumeData4DReadAccessorR64 = VolumeDataReadAccessor<IntVector4, double>
-
using VolumeData4DReadAccessorU64 = VolumeDataReadAccessor<IntVector4, uint64_t>
-
using VolumeData4DReadAccessorR32 = VolumeDataReadAccessor<IntVector4, float>
-
using VolumeData4DReadAccessorU32 = VolumeDataReadAccessor<IntVector4, uint32_t>
-
using VolumeData4DReadAccessorU16 = VolumeDataReadAccessor<IntVector4, uint16_t>
-
using VolumeData4DReadAccessorU8 = VolumeDataReadAccessor<IntVector4, uint8_t>
-
using VolumeData4DReadAccessor1Bit = VolumeDataReadAccessor<IntVector4, bool>
-
using VolumeData4DReadWriteAccessorR64 = VolumeDataReadWriteAccessor<IntVector4, double>
-
using VolumeData4DReadWriteAccessorU64 = VolumeDataReadWriteAccessor<IntVector4, uint64_t>
-
using VolumeData4DReadWriteAccessorR32 = VolumeDataReadWriteAccessor<IntVector4, float>
-
using VolumeData4DReadWriteAccessorU32 = VolumeDataReadWriteAccessor<IntVector4, uint32_t>
-
using VolumeData4DReadWriteAccessorU16 = VolumeDataReadWriteAccessor<IntVector4, uint16_t>
-
using VolumeData4DReadWriteAccessorU8 = VolumeDataReadWriteAccessor<IntVector4, uint8_t>
-
using VolumeData4DReadWriteAccessor1Bit = VolumeDataReadWriteAccessor<IntVector4, bool>
-
using VolumeDataRequest1Bit = VolumeDataRequest_t<uint8_t>
-
using VolumeDataRequestByte = VolumeDataRequest_t<uint8_t>
-
using VolumeDataRequestUShort = VolumeDataRequest_t<uint16_t>
-
using VolumeDataRequestUInt = VolumeDataRequest_t<uint32_t>
-
using VolumeDataRequestULong = VolumeDataRequest_t<uint64_t>
-
using VolumeDataRequestFloat = VolumeDataRequest_t<float>
-
using VolumeDataRequestDouble = VolumeDataRequest_t<double>
-
using VolumeIndexer2D = VolumeIndexerBase<2>
-
using VolumeIndexer3D = VolumeIndexerBase<3>
-
using VolumeIndexer4D = VolumeIndexerBase<4>
-
using VolumeIndexer5D = VolumeIndexerBase<5>
-
using VolumeIndexer6D = VolumeIndexerBase<6>
Enums
-
enum class LogLevel
Values:
-
enumerator None
-
enumerator Error
-
enumerator Warning
-
enumerator Info
-
enumerator Trace
-
enumerator None
-
enum class MetadataType
Values:
-
enumerator Int
-
enumerator IntVector2
-
enumerator IntVector3
-
enumerator IntVector4
-
enumerator Float
-
enumerator FloatVector2
-
enumerator FloatVector3
-
enumerator FloatVector4
-
enumerator Double
-
enumerator DoubleVector2
-
enumerator DoubleVector3
-
enumerator DoubleVector4
-
enumerator String
-
enumerator BLOB
-
enumerator Int
-
enum class WaveletAdaptiveMode
Values:
-
enumerator BestQuality
The best quality available data is loaded (this is the only setting which will load lossless data).
-
enumerator Tolerance
An adaptive level closest to the global compression tolerance is selected when loading wavelet compressed data.
-
enumerator Ratio
An adaptive level closest to the global compression ratio is selected when loading wavelet compressed data.
-
enumerator BestQuality
-
enum class VolumeDataFormat
Volume data format.
Values:
-
enumerator Format_Any
Volume data can be in any format.
-
enumerator Format_1Bit
Volume data is in packed 1-bit format.
-
enumerator Format_U8
Volume data is in unsigned 8 bit.
-
enumerator Format_U16
Volume data is in unsigned 16 bit.
-
enumerator Format_R32
Volume data is in 32 bit float.
-
enumerator Format_U32
Volume data is in unsigned 32 bit.
-
enumerator Format_R64
Volume data is in 64 bit double.
-
enumerator Format_U64
Volume data is in unsigned 64 bit.
-
enumerator Format_Any
-
enum class VolumeDataComponents
Volume data components.
Values:
-
enumerator Components_1
Volume data is scalar.
-
enumerator Components_2
Volume data has 2-components.
-
enumerator Components_4
Volume data has 4-components.
-
enumerator Components_1
-
enum class InterpolationMethod
Interpolation method used for sampling.
Values:
-
enumerator Nearest
Snap to the closest sample.
-
enumerator Linear
Linear interpolation.
-
enumerator Cubic
Cubic interpolation.
-
enumerator Angular
Angular interpolation (same as linear but wraps around the value range)
-
enumerator Triangular
Triangular interpolation used to interpolate heightmap data.
-
enumerator Nearest
-
enum DimensionsND
2D or 3D dimension group
Values:
-
enumerator Dimensions_012
-
enumerator Dimensions_013
-
enumerator Dimensions_014
-
enumerator Dimensions_015
-
enumerator Dimensions_023
-
enumerator Dimensions_024
-
enumerator Dimensions_025
-
enumerator Dimensions_034
-
enumerator Dimensions_035
-
enumerator Dimensions_045
-
enumerator Dimensions_123
-
enumerator Dimensions_124
-
enumerator Dimensions_125
-
enumerator Dimensions_134
-
enumerator Dimensions_135
-
enumerator Dimensions_145
-
enumerator Dimensions_234
-
enumerator Dimensions_235
-
enumerator Dimensions_245
-
enumerator Dimensions_345
-
enumerator Dimensions_01
-
enumerator Dimensions_02
-
enumerator Dimensions_03
-
enumerator Dimensions_04
-
enumerator Dimensions_05
-
enumerator Dimensions_12
-
enumerator Dimensions_13
-
enumerator Dimensions_14
-
enumerator Dimensions_15
-
enumerator Dimensions_23
-
enumerator Dimensions_24
-
enumerator Dimensions_25
-
enumerator Dimensions_34
-
enumerator Dimensions_35
-
enumerator Dimensions_45
-
enumerator Dimensions_012
-
enum class VolumeDataMapping
Mapping volume data channels.
Values:
-
enumerator Direct
Each voxel in the volume has a value.
-
enumerator PerTrace
Each line of voxels along dimension 0 in the volume has a number of values specifed by the MappedValueCount of the VolumeDataChannelDescriptor.
-
enumerator Direct
-
enum class CompressionMethod
Values:
-
enumerator None
No compression is applied; data is stored ‘as is’.
-
enumerator Wavelet
Voxel values are compressed using a lossy wavelet compression algorithm. This usually produces excellent results for continuous data, but is not applicable when dealing with discrete values.
-
enumerator RLE
Voxel values are compressed using run-length encoding which is a fast, lossless algorithm. This gives good results when the same value is often repeated for adjacent voxels, for example classification data.
-
enumerator Zip
Voxel values are compressed using zip (zlib) which is a slower, lossless algorithm that gives fairly good compression for all types of data.
-
enumerator WaveletNormalizeBlock
This method is experimental and no guarantee is made that decompression for data compressed in this format will be supported in future versions. Voxel values are compressed using a lossy wavelet compression algorithm. Also the threshold takes into account the absolute average of each block. This is good for data that varies a lot in signal strength. This usually produces excellent results for continuous data, but is not applicable when dealing with discrete values.
-
enumerator WaveletLossless
Voxel values are compressed using a losslees wavelet compression algorithm. This usually produces excellent results for continuous data, but is not applicable when dealing with discrete values.
-
enumerator WaveletNormalizeBlockLossless
This method is experimental and no guarantee is made that decompression for data compressed in this format will be supported in future versions. Voxel values are compressed using a lossless wavelet compression algorithm. Also the threshold takes into account the absolute average of each block. This is good for data that varies a lot in signal strength. This usually produces excellent results for continuous data, but is not applicable when dealing with discrete values.
-
enumerator None
-
enum class VDSProduceStatus
Values:
-
enumerator Normal
-
enumerator Remapped
-
enumerator Normal
Functions
-
inline void fastInvert(M4 &m)
-
inline OpenOptions *CreateOpenOptions(std::string url, std::string connectionString, Error &error)
Create an OpenOptions struct from a url and connection string.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
This function news a OpenOptions struct that has to be deleted by the caller. This is a helper function to allow applications modify the OpenOption before passing it to Open. Use the Open and Create functions with url and string instead if this is not needed.
-
inline bool IsSupportedProtocol(std::string url)
Verifies that the url is a supported protocol.
- Returns:
Returnes true if the protocol specifier of the url is recognised by OpenVDS, otherwise returns false
-
inline VDSHandle Open(std::string url, std::string connectionString, Error &error)
Open an existing VDS.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle OpenWithAdaptiveCompressionTolerance(std::string url, std::string connectionString, float waveletAdaptiveTolerance, Error &error)
Open an existing VDS with adaptive compression tolerance.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
waveletAdaptiveTolerance – Wavelet adaptive tolerance. This will try to read the dataset as-if it was compressed with the given tolerance even if it was compressed with a lower tolerance or lossless.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle OpenWithAdaptiveCompressionRatio(std::string url, std::string connectionString, float waveletAdaptiveRatio, Error &error)
Open an existing VDS with adaptive compression ratio.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
waveletAdaptiveRatio – Wavelet adaptive ratio. This will try to read the dataset as-if it was compressed with the given ratio even if it was compressed with a lower ratio or lossless. A compression ratio of 5.0 corresponds to compressed data which is 20% of the original.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Open(std::string url, Error &error)
Open an existing VDS. This is a simple wrapper that uses an empty connectionString.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Open(const OpenOptions &options, Error &error)
Open an existing VDS.
- Parameters:
options – The options for the connection
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Open(IOManager *ioManager, Error &error)
Open an existing VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Open(IOManager *ioManager, LogLevel logLevel, Error &error)
Open an existing VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
logLevel – The logging threshold
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline bool IsCompressionMethodSupported(CompressionMethod compressionMethod)
Check if a compression method is supported. Not all compression methods might be supported when creating VDSs, and this method checks if a particular compression methods is supported by this implementation.
- Parameters:
compressionMethod – The compression method to check
- Returns:
True if the compression method is supported when creating VDSs with this implementation.
-
inline VDSHandle Create(std::string url, std::string connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)
Create a new VDS.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.
compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(std::string url, std::string connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)
Create a new VDS.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(std::string url, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)
Create a new VDS. This is a simple wrapper that uses an empty connectionString.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.
compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(std::string url, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)
Create a new VDS. This is a simple wrapper that uses an empty connectionString.
- Parameters:
url – The url scheme specific to each cloud provider Available schemes are s3:// azure://
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)
Create a new VDS.
- Parameters:
options – The options for the connection
compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.
compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)
Create a new VDS.
- Parameters:
options – The options for the connection
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)
Create a new VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.
compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, LogLevel logLevel, Error &error)
Create a new VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.
compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)
Create a new VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, LogLevel logLevel, Error &error)
Create a new VDS.
- Parameters:
ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed
error – If an error occured, the error code and message will be written to this output parameter
- Returns:
The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager
-
inline VolumeDataLayout *GetLayout(VDSHandle handle)
Get the VolumeDataLayout for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The VolumeDataLayout of the VDS
-
inline IVolumeDataAccessManager *GetAccessManagerInterface(VDSHandle handle)
Get the VolumeDataAccessManagerInterface for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The VolumeDataAccessManagerInterface of the VDS
-
inline VolumeDataAccessManager GetAccessManager(VDSHandle handle)
Get the VolumeDataAccessManager for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The VolumeDataAccessManager of the VDS
-
inline MetadataWriteAccess *GetMetadataWriteAccessInterface(VDSHandle handle)
Get the MetadataWriteAccess interface for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The MetadataWriteAccess interface of the VDS
-
inline CompressionMethod GetCompressionMethod(VDSHandle handle)
Get the primary CompressionMethod for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The CompressionMethod used for the VDS
-
inline float GetCompressionTolerance(VDSHandle handle)
Get the primary compression tolerance used for a VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The compression tolerance used for the VDS
-
inline int64_t GetWaveletCompressedSize(VDSHandle handle)
Get the total wavelet compressed size (including lossless data) of the primary layer (first dimension group, channel 0, LOD 0) of a wavelet compressed dataset.
- Parameters:
handle – The handle of the VDS
- Returns:
The total wavelet compressed size (including lossless data) of the primary layer (first dimension group, channel 0, LOD 0)
-
inline int64_t GetWaveletUncompressedSize(VDSHandle handle)
Get the uncompressed size (not counting empty/constant value blocks) of the primary layer (first dimension group, channel 0, LOD 0) of a wavelet compressed dataset.
- Parameters:
handle – The handle of the VDS
- Returns:
The uncompressed size (not counting empty/constant value blocks) of the primary layer (first dimension group, channel 0, LOD 0)
-
inline std::vector<WaveletAdaptiveLevel> GetWaveletAdaptiveLevels(VDSHandle handle)
Get a list of the available wavelet adaptive levels for the VDS.
- Parameters:
handle – The handle of the VDS
- Returns:
The list of available wavelet adaptive levels
-
inline void Close(VDSHandle handle, bool flush = true)
Close a VDS and free up all associated resources. If an error occurs, an exception will be thrown.
- Parameters:
handle – The handle of the VDS
-
inline void Close(VDSHandle handle, Error &error, bool flush = true)
Close a VDS and free up all associated resources.
- Parameters:
handle – The handle of the VDS
error – If an error occured, the error code and message will be written to this output parameter
-
inline void RetryableClose(VDSHandle handle, bool flush = true)
Close a VDS and free up all associated resources if the close succeeds. If an error occurs, an exception will be thrown.
- Parameters:
handle – The handle of the VDS
-
inline void RetryableClose(VDSHandle handle, Error &error, bool flush = true)
Close a VDS and free up all associated resources if the close succeeds.
- Parameters:
handle – The handle of the VDS
error – If an error occured, the error code and message will be written to this output parameter
-
inline GlobalState *GetGlobalState()
Get the GlobalState interface.
- Returns:
A pointer to the GlobalState interface
-
inline const char *GetOpenVDSName()
Get the name of the OpenVDS implementation.
- Returns:
A null terminated string
-
inline const char *GetOpenVDSVersion()
Get the version for the OpenVDS implementation.
- Returns:
A version string
-
inline const char *GetOpenVDSRevision()
Get revision of the OpenVDS build.
- Returns:
A revision string
-
OpenVDSInterface &GetOpenVDSInterface(const char *version)
-
void SetOpenVDSInterface(OpenVDSInterface &openVDSInterface)
-
template<typename T1, typename T2>
inline std::enable_if<std::is_same<T1, bool>::value && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
-
template<typename T1, typename T2>
inline std::enable_if<std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
-
template<typename T1, typename T2>
inline std::enable_if<std::numeric_limits<T1>::is_integer && !std::is_same<T1, bool>::value && std::numeric_limits<T2>::is_integer && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
-
template<typename T1, typename T2>
inline std::enable_if<std::numeric_limits<T1>::is_integer && !std::is_same<T1, bool>::value && !std::numeric_limits<T2>::is_integer, T1>::type ConvertValue(T2 value)
-
template<typename T1, typename T2>
inline std::enable_if<!std::numeric_limits<T1>::is_integer && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
-
template<typename T>
inline T ConvertNoValue(float noValue)
-
template<>
inline bool ConvertNoValue<bool>(float)
-
template<>
inline uint8_t ConvertNoValue<uint8_t>(float)
-
template<>
inline uint16_t ConvertNoValue<uint16_t>(float)
-
template<typename T>
inline T ConvertNoValue(double noValue)
-
template<>
inline bool ConvertNoValue<bool>(double)
-
template<>
inline uint8_t ConvertNoValue<uint8_t>(double)
-
template<>
inline uint16_t ConvertNoValue<uint16_t>(double)
-
static inline int QuantizeValueWithReciprocalScale(float value, float offset, float reciprocalScale, int buckets)
-
template<typename T, size_t N>
static inline bool operator==(const Vector<T, N> &a, const Vector<T, N> &b)
-
inline constexpr int operator+(int n, VolumeDataComponents components)
-
inline constexpr int operator+(VolumeDataComponents components, int n)
-
inline int &operator+=(int &n, VolumeDataComponents components)
-
inline constexpr int operator-(int n, VolumeDataComponents components)
-
inline constexpr int operator-(VolumeDataComponents components, int n)
-
inline int &operator-=(int &n, VolumeDataComponents components)
-
inline constexpr int operator*(int n, VolumeDataComponents components)
-
inline constexpr int operator*(VolumeDataComponents components, int n)
-
inline int &operator*=(int &n, VolumeDataComponents components)
-
inline constexpr int operator/(int n, VolumeDataComponents components)
-
inline constexpr int operator/(VolumeDataComponents components, int n)
-
inline int &operator/=(int &n, VolumeDataComponents components)
-
inline constexpr bool operator==(int n, VolumeDataComponents components)
-
inline constexpr bool operator==(VolumeDataComponents components, int n)
-
inline constexpr bool operator!=(int n, VolumeDataComponents components)
-
inline constexpr bool operator!=(VolumeDataComponents components, int n)
-
inline constexpr bool operator<(int n, VolumeDataComponents components)
-
inline constexpr bool operator<(VolumeDataComponents components, int n)
-
inline constexpr bool operator<=(int n, VolumeDataComponents components)
-
inline constexpr bool operator<=(VolumeDataComponents components, int n)
-
inline constexpr bool operator>(int n, VolumeDataComponents components)
-
inline constexpr bool operator>(VolumeDataComponents components, int n)
-
inline constexpr bool operator>=(int n, VolumeDataComponents components)
-
inline constexpr bool operator>=(VolumeDataComponents components, int n)
-
inline bool CompressionMethod_IsWavelet(CompressionMethod compressionMethod)
-
inline int GetLODSize(int voxelMin, int voxelMax, int LOD, bool includePartialUpperVoxel = true)
Get the number of voxels at a particular LOD from a voxel range (ranges are exclusive).
- Parameters:
voxelMin – The minimum voxel index of the range.
voxelMax – The maximum voxel index of the range (ranges are exclusive, so the range does not include voxelMax).
includePartialUpperVoxel – This controls the rounding. Usually you want the size of the range to be all voxels in the range, but when we are copying from multiple adjacent ranges we only want to round up for the last one.
LOD – The LOD level for which the size is requested.
- Returns:
The number of voxels at the given LOD, at LOD 0 the result is voxelMax - voxelMin.
-
template<typename T>
inline T ReadElement(const T *buffer, size_t element) Read element from buffer. This function has a template specialisation for bool making it suitable to read single bits from a buffer with packed bits.
- Parameters:
buffer – Buffer to read from
element – The element index to read from buffer
- Returns:
Element at position “element” is returned.
-
template<>
inline bool ReadElement<bool>(const bool *buffer, size_t element)
-
template<typename T>
inline void WriteElement(T *buffer, size_t element, T value) Write element into buffer. This function has a template specialisation for bool making it suitable to write single bits into a buffer with packed bits.
- Parameters:
buffer – Buffer to write to
element – The element index in the buffer to write to
value – Value to write
-
template<>
inline void WriteElement(bool *buffer, size_t element, bool value)
-
template<typename T>
inline int PitchScale() Template function to get the scalar for the pitch value (which is in bytes for 1-bit data) used to scale the pitch to get the number of elements.
- Returns:
The scale factor for the pitch for the given type
-
template<>
inline int PitchScale<bool>()
-
inline bool VolumeDataHash_IsDefined(uint64_t volumeDataHash)
Determine whether the given volume data hash is defined.
-
inline bool VolumeDataHash_IsNoValue(uint64_t volumeDataHash)
Determine whether the given volume data hash is the no-data-value.
-
inline bool VolumeDataHash_IsConstant(uint64_t volumeDataHash)
Determine whether the given volume data hash is constant.
-
inline VolumeDataChannelDescriptor::Flags operator|(VolumeDataChannelDescriptor::Flags lhs, VolumeDataChannelDescriptor::Flags rhs)
-
inline VolumeDataLayoutDescriptor::Options operator|(VolumeDataLayoutDescriptor::Options lhs, VolumeDataLayoutDescriptor::Options rhs)
Variables
-
constexpr int Dimensionality_Max = 6
-
struct AWSOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS in AWS.
Public Functions
-
inline AWSOpenOptions()
-
inline AWSOpenOptions(std::string const &bucket, std::string const &key, std::string const ®ion = std::string(), std::string const &endpointOverride = std::string(), int connectionTimeoutMs = 3000, int requestTimeoutMs = 6000, bool disableInitApi = false)
AWSOpenOptions constructor.
- Parameters:
bucket – The bucket of the VDS
key – The key prefix of the VDS
region – The region of the bucket of the VDS
endpointOverride – This parameter allows to override the endpoint url
connectionTimeoutMs – This parameter allows to override the time a connection can spend on connecting to AWS
requestTimeoutMs – This paramter allows to override the time a request can take
-
inline AWSOpenOptions()
-
struct AzureOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS in Azure.
Public Functions
-
inline AzureOpenOptions()
-
inline AzureOpenOptions(std::string const &connectionString, std::string const &container, std::string const &blob)
AzureOpenOptions constructor.
- Parameters:
connectionString – The connectionString for the VDS
container – The container of the VDS
blob – The blob prefix of the VDS
-
inline AzureOpenOptions(std::string const &connectionString, std::string const &container, std::string const &blob, int parallelism_factor, int max_execution_time)
AzureOpenOptions constructor.
- Parameters:
connectionString – The connectionString for the VDS
container – The container of the VDS
blob – The blob prefix of the VDS
parallelism_factor – The parallelism factor setting for the Azure Blob Storage library
max_execution_time – The max execution time setting for the Azure Blob Storage library
Public Members
-
std::string connectionString
-
std::string accountName
-
std::string bearerToken
-
std::string container
-
std::string blob
-
int parallelism_factor = 4
-
int max_execution_time = 100000
Public Static Functions
-
static inline AzureOpenOptions AzureOpenOptionsBearer(std::string const &accountName, std::string const &bearerToken, std::string const &container, std::string const &blob)
AzureOpenOptions factory function for bearer token based authentication.
- Parameters:
bearerToken – The bearer token
container – The container of the VDS
blob – The blob prefix of the VDS
- Returns:
A valid AzureOpenOptions
-
inline AzureOpenOptions()
-
struct AzurePresignedOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS with presigned Azure url.
Public Functions
-
inline AzurePresignedOpenOptions()
-
inline AzurePresignedOpenOptions(const std::string &baseUrl, const std::string &urlSuffix)
AzurePresignedOpenOptions constructor.
- Parameters:
baseUrl – The base url for the VDS
urlSuffix – The suffix of the presigned url
-
inline AzurePresignedOpenOptions()
-
struct DMSOpenOptions : public OpenVDS::OpenOptions
Public Functions
-
inline DMSOpenOptions()
-
inline DMSOpenOptions(std::string const &sdAuthorityUrl, std::string const &sdApiKey, std::string const &sdToken, std::string const &datasetPath, std::string const &authTokenUrl = std::string(), std::string const &refreshToken = std::string(), std::string const &clientId = std::string(), std::string const &clientSecret = std::string(), std::string const &scopes = std::string(), bool useFileNameForSingleFileDatasets = false, std::string const &legalTag = std::string(), std::string const &httpProxy = std::string())
-
inline DMSOpenOptions(std::string const &sdAuthorityUrl, std::string const &sdApiKey, std::string const &datasetPath, std::string (*authProviderCallback)(const void*), const void *authProviderCallbackData, bool useFileNameForSingleFileDatasets = false, std::string const &legalTag = std::string(), std::string const &httpProxy = std::string())
Public Members
-
std::string sdAuthorityUrl
-
std::string sdApiKey
-
std::string sdToken
-
std::string datasetPath
-
std::string authTokenUrl
-
std::string refreshToken
-
std::string clientId
-
std::string clientSecret
-
std::string scopes
-
bool useFileNameForSingleFileDatasets
-
std::string (*authProviderCallback)(const void*)
-
const void *authProviderCallbackData
-
std::string legalTag
-
std::string httpProxy
-
inline DMSOpenOptions()
-
class Exception : public std::exception
Subclassed by OpenVDS::MessageBufferException< 16384 >, OpenVDS::MessageBufferException< 512 >, OpenVDS::MessageBufferException< BUFFERSIZE >
Public Functions
-
inline const char *what() const noexcept override
-
virtual const char *GetErrorMessage() const noexcept = 0
-
inline const char *what() const noexcept override
-
class FatalException : public OpenVDS::MessageBufferException<16384>
Public Functions
-
inline FatalException(const char *errorMessage)
-
inline FatalException(const FatalException &other)
-
inline FatalException &operator=(const FatalException &other)
-
inline virtual const char *GetErrorMessage() const noexcept override
-
inline FatalException(const char *errorMessage)
-
class GlobalState
- #include <GlobalState.h>
Object that contains global runtime data.
Public Functions
-
virtual uint64_t GetBytesDownloaded(OpenOptions::ConnectionType connectionType) = 0
Get the global amount of downloaded bytes from a cloud vendor.
- Parameters:
connectionType – The counter to be retireved.
- Returns:
Global number of bytes downloaded from the connection. This does not include any http header data.
-
virtual uint64_t GetChunksDownloaded(OpenOptions::ConnectionType connectionType) = 0
Get the global count of downloaded chunks.
- Parameters:
connectionType – The counter to be retireved.
- Returns:
Number of chunks downloaded.
-
virtual uint64_t GetBytesDecompressed(OpenOptions::ConnectionType connectionType) = 0
Get the global amount of decompressed bytes. This amount might be smaller than the amount of downloaded bytes because of a small header pr chunk. It can also be larger for non compressed data sets since chunks can be cached.
- Parameters:
connectionType –
- Returns:
Amount of decompressed bytes served the process.
-
virtual uint64_t GetChunksDecompressed(OpenOptions::ConnectionType connectionType) = 0
Get the global count of decompressed chunks.
- Parameters:
connectionType – The counter to be retireved.
- Returns:
Number of chunks decompressed.
-
virtual void SetLogCallback(LogCallback callback, void *userHandle) = 0
Set the log callback used to receive log messages from OpenVDS. It is safe to set the LogCallback before any other OpenVDS function is called.
- Parameters:
callback – The function pointer to the callback.
userHandle – This is the pointer that will be passed into the callback functions userHandle parameter.
-
virtual void SetDefaultLogCallback() = 0
Set the default LogCallback This function sets the default logging interface that will print trace and info to stdout. It will print Warning and Error to the stderr file stream.
-
virtual uint64_t GetBytesDownloaded(OpenOptions::ConnectionType connectionType) = 0
-
class GoogleCredentialsJson
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by the string containing json with credentials Using OAuth.
Public Functions
-
inline explicit GoogleCredentialsJson(std::string const &json)
GoogleCredentialsJson constructor.
- Parameters:
json – The string containing json with credentials
-
inline explicit GoogleCredentialsJson(std::string &&json) noexcept
-
inline explicit GoogleCredentialsJson(std::string const &json)
-
class GoogleCredentialsPath
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by path to the service account json file Using OAuth.
Public Functions
-
inline explicit GoogleCredentialsPath(std::string const &path)
GoogleCredentialsPath constructor.
- Parameters:
path – The path to the service account json file
-
inline explicit GoogleCredentialsPath(std::string &&path) noexcept
-
inline explicit GoogleCredentialsPath(std::string const &path)
-
class GoogleCredentialsSignedUrl
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by using the default credentials Using signed URL mechanism.
Public Functions
-
inline explicit GoogleCredentialsSignedUrl(std::string const ®ion)
GoogleCredentialsSignedUrl constructor.
- Parameters:
region – The string containing the region required for signature generation
-
inline explicit GoogleCredentialsSignedUrl(std::string &®ion) noexcept
-
inline explicit GoogleCredentialsSignedUrl(std::string const ®ion)
-
class GoogleCredentialsSignedUrlJson
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by the string containing json with credentials Using signed URL mechanism.
Public Functions
-
inline explicit GoogleCredentialsSignedUrlJson(std::string const ®ion, std::string const &json)
GoogleCredentialsSignedUrlJson constructor.
- Parameters:
region – The string containing the region required for signature generation
json – The string containing json with credentials
-
inline explicit GoogleCredentialsSignedUrlJson(std::string const ®ion, std::string const &json)
-
class GoogleCredentialsSignedUrlPath
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by path to the service account json file Using signed URL mechanism.
Public Functions
-
inline explicit GoogleCredentialsSignedUrlPath(std::string const ®ion, std::string const &path)
GoogleCredentialsSignedUrlPath constructor.
- Parameters:
region – The string containing the region required for signature generation
path – The path to the service account json file
-
inline explicit GoogleCredentialsSignedUrlPath(std::string const ®ion, std::string const &path)
-
class GoogleCredentialsToken
- #include <OpenVDS.h>
Credentials for opening a VDS in Google Cloud Storage by using the string containing an access token Using OAuth.
Public Functions
-
inline explicit GoogleCredentialsToken(std::string const &token)
GoogleCredentialsToken constructor.
- Parameters:
token – The string containing an access token
-
inline explicit GoogleCredentialsToken(std::string &&token) noexcept
-
inline explicit GoogleCredentialsToken(std::string const &token)
-
struct GoogleOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS in Google Cloud Storage.
Public Types
-
enum class CredentialsType : CredentialsIntType
Values:
-
enumerator Default
-
enumerator AccessToken
-
enumerator Path
-
enumerator Json
-
enumerator SignedUrl
-
enumerator SignedUrlPath
-
enumerator SignedUrlJson
-
enumerator Default
-
using CredentialsIntType = unsigned int
Public Functions
-
inline GoogleOpenOptions()
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix)
GoogleOpenOptions constructor.
- Parameters:
bucket – The bucket of the VDS
pathPrefix – The prefix of the VDS
credentials – Google Cloud Storage access credentials
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsToken const &credentials)
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsPath const &credentials)
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsJson const &credentials)
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrl const &credentials)
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrlPath const &credentials)
-
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrlJson const &credentials)
-
inline bool SetSignedUrl()
Public Members
-
CredentialsType credentialsType = CredentialsType::Default
-
std::string bucket
-
std::string pathPrefix
-
std::string credentials
-
std::string storageClass
-
std::string region
-
enum class CredentialsType : CredentialsIntType
-
template<class T>
class HeapBasedValueRangeEstimator Public Functions
-
inline HeapBasedValueRangeEstimator(float percentile, uint64_t sampleCount)
-
template<typename InputIt, typename IsNan>
inline void UpdateValueRange(InputIt first, InputIt last, IsNan isNan)
-
inline void GetValueRange(float &valueRangeMin, float &valueRangeMax)
-
inline int NaNCount() const
-
inline HeapBasedValueRangeEstimator(float percentile, uint64_t sampleCount)
-
struct HttpOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS with a plain HTTP url. If there are query parameters in then they will be appended to the different sub urls. The resulting IO backend will not support uploading data.
Public Functions
-
inline HttpOpenOptions()
-
inline HttpOpenOptions(std::string const &url)
HttpOpenOptions constructor.
- Parameters:
url – The http base url of the VDS
Public Members
-
std::string url
-
inline HttpOpenOptions()
-
class IHasVolumeDataAccess
Public Functions
-
virtual IVolumeDataAccessManager *GetVolumeDataAccessManager() = 0
-
virtual IVolumeDataAccessManager *GetVolumeDataAccessManager() = 0
-
struct IJKCoordinateTransformer
- #include <IJKCoordinateTransformer.h>
IJKCoordinateTransformer may be used to transform between the following three-dimensional index and coordinate systems of a volume:
IJK Index - a 3D index into the volume based on IJK dimensions. Dimensions I and J are usually horizontal directions, whereas K is usually the vertical direction. Transforms are provided to/from integer IJK indexes and also floating-point IJK positions.
World Coordinate - a world position, related to IJK through the IJK grid definition provided on construction.
Annotation Coordinate - a coordinate position based on the annotation axes of the volume (inline, crossline, depth, time, etc.). The order of annotation coordinate values correspond to the volume axes for each IJK dimension. That is, the annotation coordinate X value specifies the coordinate for the annotation axis corresponding to the I direction, and so on. When used with a VDS, annotation coordinates are based on the VDS axis descriptors.
Voxel Index - a 3D index into the volume based on volume data dimesions, where dimension 0 is the data dimension that changes the fastest, dimension 1 is the data dimension that changes second fastest, etc. Transforms are provided to/from integer voxel indexes and also floating-point voxel positions. When used with a VDS, voxel index 0 refers to dimension 0, ranging from 0 to Dimension0Size - 1, and so on. The relationship between IJK dimensions and voxel dimensions is controlled by the IJK dimension map provided at construction. If the dimension map is (0, 1, 2), the IJK dimensions are the same as voxel dimensions. However, it is often the case that the dimension map is not (0, 1, 2), and so IJK dimensions are not the same as voxel dimensions, especially when used with a VDS. When used with a VDS, the dimension map is often set to (2, 1, 0), meaning that IJK corresponds to voxel dimensions (2, 1, 0). However, this is not a strict rule, and the dimension map will generally be defined based on the VDS axis descriptors. If a particular VDS axis is given the name “I”, “J”, or “K”, that axis index will be considered as dimension I, J, or K. This is not very common. If a particular VDS axis is given the name “Inline”, it will be considered as dimension I. If a particular VDS axis is given the name “Crossline”, it will be considered as dimension J. If a particular VDS axis is given the name “Time”, “Depth”, or “Sample”, it will be considered as dimension K.
Public Functions
-
inline IJKCoordinateTransformer()
-
inline IJKCoordinateTransformer(const IJKGridDefinition &ijkGridDefinition, const IntVector3 &ijkSize)
-
inline IJKCoordinateTransformer(const IJKGridDefinition &ijkGridDefinition, const IntVector3 &ijkSize, const IntVector3 &ijkToVoxelDimensionMap)
-
inline IJKCoordinateTransformer(const VDSIJKGridDefinition &vdsIJKGridDefinition, const IntVector3 &ijkSize)
-
inline IJKCoordinateTransformer(const IJKGridDefinition &ijkGridDefinition, const IntVector3 &ijkSize, const DoubleVector3 &ijkAnnotationStart, const DoubleVector3 &ijkAnnotationEnd)
-
inline IJKCoordinateTransformer(const IJKGridDefinition &ijkGridDefinition, const IntVector3 &ijkSize, const IntVector3 &ijkToVoxelDimensionMap, const DoubleVector3 &ijkAnnotationStart, const DoubleVector3 &ijkAnnotationEnd)
-
inline IJKCoordinateTransformer(const VDSIJKGridDefinition &vdsIJKGridDefinition, const IntVector3 &ijkSize, const DoubleVector3 &ijkAnnotationStart, const DoubleVector3 &ijkAnnotationEnd)
-
inline IJKCoordinateTransformer(const VolumeDataLayout *layout)
-
inline const IJKGridDefinition &IJKGrid() const
The IJK grid definition relating IJK coordinates to world XYZ coordinates.
-
inline const IntVector3 &IJKSize() const
The number of voxels in each IJK dimension.
-
inline const IntVector3 &IJKToVoxelDimensionMap() const
Mapping from IJK to voxel volume dimensions.
-
inline const DoubleMatrix4x4 &IJKToWorldTransform() const
The matrix used to transform from IJK coordinates to world coordinates.
-
inline const DoubleMatrix4x4 &WorldToIJKTransform() const
The matrix used to transform from world coordinates to IJK coordinates.
-
inline const DoubleVector3 &IJKAnnotationStart() const
The annotation start coordinates, corresponding to min IJK index (i.e. 0, 0, 0)
-
inline const DoubleVector3 &IJKAnnotationEnd() const
The annotation end coordinates, corresponding to max IJK index (i.e. IJKSize - (1, 1, 1))
-
inline bool AnnotationsDefined() const
Whether or not the annotation start/end coordinates are set, which defines the annotation coordinate system.
-
inline DoubleVector3 IJKPositionToWorld(const DoubleVector3 &ijkPosition) const
Transform the given IJK position to a world position.
-
inline DoubleVector3 IJKIndexToWorld(const IntVector3 &ijkIndex) const
Transform the given IJK index to a world position.
-
inline DoubleVector3 IJKPositionToAnnotation(const DoubleVector3 &ijkPosition) const
Transform the given IJK position to an annotation position.
-
inline DoubleVector3 IJKIndexToAnnotation(const IntVector3 &ijkIndex) const
Transform the given IJK index to an annotation position.
-
inline DoubleVector3 IJKPositionToVoxelPosition(const DoubleVector3 &ijkPosition) const
Transform the given IJK position to a voxel position.
-
inline IntVector3 IJKIndexToVoxelIndex(const IntVector3 &ijkIndex) const
Transform the given IJK index to a voxel index.
-
inline DoubleVector3 WorldToIJKPosition(const DoubleVector3 &worldPosition) const
Transform the given world position to a IJK position.
-
inline IntVector3 WorldToIJKIndex(const DoubleVector3 &worldPosition) const
Transform the given world position to a IJK index.
-
inline DoubleVector3 WorldToAnnotation(DoubleVector3 worldPosition) const
Transform the given world position to an annotation position.
-
inline DoubleVector3 WorldToVoxelPosition(const DoubleVector3 &worldPosition) const
Transform the given world position to a voxel position.
-
inline IntVector3 WorldToVoxelIndex(const DoubleVector3 &worldPosition) const
Transform the given world position to a voxel index.
-
inline DoubleVector3 AnnotationToIJKPosition(const DoubleVector3 &annotationPosition) const
Transform the given annotation position to a IJK position.
-
inline IntVector3 AnnotationToIJKIndex(const DoubleVector3 &annotationPosition) const
Transform the given annotation position to a IJK index.
-
inline DoubleVector3 AnnotationToWorld(DoubleVector3 annotationPosition) const
Transform the given annotation position to a world position.
-
inline DoubleVector3 AnnotationToVoxelPosition(const DoubleVector3 &annotationPosition) const
Transform the given annotation position to a voxel position.
-
inline IntVector3 AnnotationToVoxelIndex(const DoubleVector3 &annotationPosition) const
Transform the given annotation position to a voxel index.
-
inline DoubleVector3 VoxelPositionToIJKPosition(const DoubleVector3 &voxelPosition) const
Transform the given voxel position to an IJK position.
-
inline IntVector3 VoxelIndexToIJKIndex(const IntVector3 &voxelIndex) const
Transform the given voxel index to an IJK index.
-
inline DoubleVector3 VoxelPositionToWorld(const DoubleVector3 &voxelPosition) const
Transform the given voxel position to a world position.
-
inline DoubleVector3 VoxelIndexToWorld(const IntVector3 &voxelIndex) const
Transform the given voxel index to a world position.
-
inline DoubleVector3 VoxelPositionToAnnotation(const DoubleVector3 &voxelPosition) const
Transform the given voxel position to an annotation position.
-
inline DoubleVector3 VoxelIndexToAnnotation(const IntVector3 &voxelIndex) const
Transform the given voxel index to an annotation position.
-
inline bool IsIJKPositionOutOfRange(const DoubleVector3 &ijkPosition) const
Determine whether the given IJK position is out of range.
-
inline bool IsIJKIndexOutOfRange(const IntVector3 &ijkIndex) const
Determine whether the given IJK index is out of range.
-
inline bool IsVoxelPositionOutOfRange(const DoubleVector3 &voxelPosition) const
Determine whether the given voxel position is out of range.
-
inline bool IsVoxelIndexOutOfRange(const IntVector3 &voxelIndex) const
Determine whether the given voxel index is out of range.
-
inline IntVector3 ConvertIJKPositionToIndex(const DoubleVector3 &ijkPosition) const
Convert the given IJK position to IJK index. Return (-1, -1, -1) if any component is outside valid range.
-
inline IntVector3 ConvertVoxelPositionToIndex(const DoubleVector3 &voxelPosition) const
Convert the given voxel position to voxel index. Return (-1, -1, -1) if any component is outside valid range.
-
inline bool operator==(const IJKCoordinateTransformer &rhs) const
Equality operator.
-
inline int ErrorCodeIfIJKPositionOutOfRange(const DoubleVector3 &ijkPosition) const
-
inline int ErrorCodeIfVoxelPositionOutOfRange(const DoubleVector3 &voxelPosition) const
-
inline IJKCoordinateTransformer()
-
struct IJKGridDefinition
Subclassed by OpenVDS::VDSIJKGridDefinition
Public Functions
-
inline IJKGridDefinition()
-
inline IJKGridDefinition(DoubleVector3 origin, DoubleVector3 iUnitStep, DoubleVector3 jUnitStep, DoubleVector3 kUnitStep)
-
inline bool operator==(const IJKGridDefinition &b) const
Public Members
-
DoubleVector3 origin
-
DoubleVector3 iUnitStep
-
DoubleVector3 jUnitStep
-
DoubleVector3 kUnitStep
-
inline IJKGridDefinition()
-
class IndexOutOfRangeException : public OpenVDS::MessageBufferException<512>
Public Functions
-
inline IndexOutOfRangeException(const char *errorMessage)
-
inline IndexOutOfRangeException(const IndexOutOfRangeException &other)
-
inline IndexOutOfRangeException &operator=(const IndexOutOfRangeException &other)
-
inline virtual const char *GetErrorMessage() const noexcept override
-
inline IndexOutOfRangeException(const char *errorMessage)
-
template<typename T>
struct IndexRegion
-
struct InMemoryOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS which is stored in memory (for testing)
Public Functions
-
inline InMemoryOpenOptions()
-
inline InMemoryOpenOptions(const char *name)
-
inline InMemoryOpenOptions(const std::string &name)
Public Members
-
std::string name
-
inline InMemoryOpenOptions()
-
class InvalidArgument : public OpenVDS::MessageBufferException<512>
Public Functions
-
inline InvalidArgument(const char *errorMessage, const char *parameterName)
-
inline InvalidArgument(const InvalidArgument &other)
-
inline InvalidArgument &operator=(const InvalidArgument &other)
-
inline virtual const char *GetErrorMessage() const noexcept override
-
inline const char *GetParameterName() const noexcept
-
inline InvalidArgument(const char *errorMessage, const char *parameterName)
-
class InvalidOperation : public OpenVDS::MessageBufferException<512>
Public Functions
-
inline InvalidOperation(const char *errorMessage)
-
inline InvalidOperation(const InvalidOperation &other)
-
inline InvalidOperation &operator=(const InvalidOperation &other)
-
inline virtual const char *GetErrorMessage() const noexcept override
-
inline InvalidOperation(const char *errorMessage)
-
class IVolumeDataAccessManager
Public Types
-
typedef void (*ErrorHandler)(Error *error, int errorCode, const char *errorMessage)
Public Functions
-
virtual void AddRef() = 0
-
virtual void Release() = 0
-
virtual int RefCount() const = 0
-
virtual VolumeDataLayout const *GetVolumeDataLayout() = 0
Get the VolumeDataLayout object for a VDS.
- Returns:
The VolumeDataLayout object associated with the VDS or NULL if there is no valid VolumeDataLayout.
-
virtual VDSProduceStatus GetVDSProduceStatus(DimensionsND dimensionsND, int LOD, int channel) = 0
Get the produce status for the specific DimensionsND/LOD/Channel combination.
- Parameters:
dimensionsND – The dimensions group we’re getting the produce status for.
LOD – The LOD level we’re getting the produce status for.
channel – The channel index we’re getting the produce status for.
- Returns:
The produce status for the specific DimensionsND/LOD/Channel combination.
-
virtual int64_t GetVDSChunkCount(DimensionsND dimensionsND, int LOD, int channel) = 0
Get the chunk count for the specific DimensionsND/LOD/Channel combination.
- Parameters:
dimensionsND – The dimensions group we’re getting the chunk count for.
LOD – The LOD level we’re getting the chunk count status for.
channel – The channel index we’re getting the chunk count status for.
- Returns:
The chunk count for the specific DimensionsND/LOD/Channel combination.
-
virtual VolumeDataPageAccessor *CreateVolumeDataPageAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, VolumeDataPageAccessor::AccessMode accessMode, int chunkMetadataPageSize = 1024) = 0
Create a VolumeDataPageAccessor object for the VDS.
- Parameters:
dimensionsND – The dimensions group that the volume data page accessor will access.
LOD – The LOD level that the volume data page accessor will access.
channel – The channel index that the volume data page accessor will access.
maxPages – The maximum number of pages that the volume data page accessor will cache.
accessMode – This specifies the access mode (ReadOnly/ReadWrite/Create) of the volume data page accessor.
chunkMetadataPageSize – The chunk metadata page size of the layer. This controls how many chunk metadata entries are written per page, and is only used when the access mode is Create. If this number is too low it will degrade performance, but in certain situations it can be advantageous to make this number a multiple of the number of chunks in some of the dimensions. Do not change this from the default (1024) unless you know exactly what you are doing.
- Returns:
A VolumeDataPageAccessor object for the VDS.
-
virtual void DestroyVolumeDataPageAccessor(VolumeDataPageAccessor *volumeDataPageAccessor) = 0
Destroy a volume data page accessor object.
- Parameters:
volumeDataPageAccessor – The VolumeDataPageAccessor object to destroy.
-
virtual void DestroyVolumeDataAccessor(IVolumeDataAccessor *accessor) = 0
-
virtual IVolumeDataAccessor *CloneVolumeDataAccessor(IVolumeDataAccessor const &accessor) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, bool> *Create2DVolumeDataAccessor1Bit(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, uint8_t> *Create2DVolumeDataAccessorU8(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, uint16_t> *Create2DVolumeDataAccessorU16(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, uint32_t> *Create2DVolumeDataAccessorU32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, uint64_t> *Create2DVolumeDataAccessorU64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, float> *Create2DVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector2, double> *Create2DVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, bool> *Create3DVolumeDataAccessor1Bit(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, uint8_t> *Create3DVolumeDataAccessorU8(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, uint16_t> *Create3DVolumeDataAccessorU16(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, uint32_t> *Create3DVolumeDataAccessorU32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, uint64_t> *Create3DVolumeDataAccessorU64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, float> *Create3DVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector3, double> *Create3DVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, bool> *Create4DVolumeDataAccessor1Bit(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, uint8_t> *Create4DVolumeDataAccessorU8(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, uint16_t> *Create4DVolumeDataAccessorU16(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, uint32_t> *Create4DVolumeDataAccessorU32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, uint64_t> *Create4DVolumeDataAccessorU64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, float> *Create4DVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadWriteAccessor<IntVector4, double> *Create4DVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue) = 0
-
virtual IVolumeDataReadAccessor<FloatVector2, float> *Create2DInterpolatingVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual IVolumeDataReadAccessor<FloatVector2, double> *Create2DInterpolatingVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual IVolumeDataReadAccessor<FloatVector3, float> *Create3DInterpolatingVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual IVolumeDataReadAccessor<FloatVector3, double> *Create3DInterpolatingVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual IVolumeDataReadAccessor<FloatVector4, float> *Create4DInterpolatingVolumeDataAccessorR32(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual IVolumeDataReadAccessor<FloatVector4, double> *Create4DInterpolatingVolumeDataAccessorR64(VolumeDataPageAccessor *volumeDataPageAccessor, float replacementNoValue, InterpolationMethod interpolationMethod) = 0
-
virtual int64_t GetVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], VolumeDataFormat format, int LOD = 0, int channel = 0) = 0
Compute the buffer size (in bytes) for a volume subset request.
- Parameters:
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
format – Voxel format of the destination buffer.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
virtual int64_t RequestVolumeSubset(void *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], VolumeDataFormat format, optional<float> replacementNoValue = optional<float>()) = 0
Request a subset of the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
format – Voxel format of the destination buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
The RequestID which can be used to query the status of the request, cancel the request or wait for the request to complete.
-
virtual int64_t GetProjectedVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], DimensionsND projectedDimensions, VolumeDataFormat format, int LOD = 0, int channel = 0) = 0
Compute the buffer size (in bytes) for a projected volume subset request.
- Parameters:
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
format – Voxel format of the destination buffer.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
virtual int64_t RequestProjectedVolumeSubset(void *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], FloatVector4 const &voxelPlane, DimensionsND projectedDimensions, VolumeDataFormat format, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>()) = 0
Request a subset projected from an arbitrary 3D plane through the subset onto one of the sides of the subset.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates for the projected dimensions.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
voxelPlane – The plane equation for the projection from the dimension source to the projected dimensions (which must be a 2D subset of the source dimensions).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
interpolationMethod – Interpolation method to use when sampling the buffer.
format – Voxel format of the destination buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
The RequestID which can be used to query the status of the request, cancel the request or wait for the request to complete.
-
virtual int64_t GetVolumeSamplesBufferSize(int sampleCount, int channel = 0) = 0
Compute the buffer size (in bytes) for a volume samples request.
- Parameters:
sampleCount – Number of samples to request.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
virtual int64_t RequestVolumeSamples(float *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const float (*samplePositions)[VolumeDataLayout::Dimensionality_Max], int sampleCount, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>()) = 0
Request sampling of the input VDS at the specified coordinates.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least sampleCount elements.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
samplePositions – Pointer to array of VolumeDataLayout::Dimensionality_Max-elements indicating the positions to sample. May be deleted once RequestVolumeSamples return, as HueSpace makes a deep copy of the data.
sampleCount – Number of samples to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
The RequestID which can be used to query the status of the request, cancel the request or wait for the request to complete.
-
virtual int64_t GetVolumeTracesBufferSize(int traceCount, int traceDimension, int LOD = 0, int channel = 0) = 0
Compute the buffer size (in bytes) for a volume traces request.
- Parameters:
traceCount – Number of traces to request.
traceDimension – The dimension to trace
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
virtual int64_t RequestVolumeTraces(float *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const float (*tracePositions)[VolumeDataLayout::Dimensionality_Max], int traceCount, InterpolationMethod interpolationMethod, int traceDimension, optional<float> replacementNoValue = optional<float>()) = 0
Request traces from the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least traceCount * number of samples in the traceDimension.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
tracePositions – Pointer to array of traceCount VolumeDataLayout::Dimensionality_Max-elements indicating the trace positions.
traceCount – Number of traces to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
traceDimension – The dimension to trace
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
The RequestID which can be used to query the status of the request, cancel the request or wait for the request to complete.
-
virtual int64_t PrefetchVolumeChunk(DimensionsND dimensionsND, int LOD, int channel, int64_t chunkIndex) = 0
Force production of a specific volume data chunk.
- Parameters:
dimensionsND – The dimensiongroup the requested chunk belongs to.
LOD – The LOD level the requested chunk belongs to.
channel – The channel index the requested chunk belongs to.
chunkIndex – The index of the chunk to prefetch.
- Returns:
The RequestID which can be used to query the status of the request, cancel the request or wait for the request to complete.
-
virtual bool IsCompleted(int64_t requestID) = 0
Check if a request completed successfully. If the request completed, the buffer now contains valid data.
- Parameters:
requestID – The RequestID to check for completion.
- Returns:
Either IsCompleted, IsCanceled or WaitForCompletion will return true a single time, after that the request is taken out of the system.
-
virtual bool IsCanceled(int64_t requestID) = 0
Check if a request was canceled (e.g. the VDS was invalidated before the request was processed). If the request was canceled, the buffer does not contain valid data.
- Parameters:
requestID – The RequestID to check for cancellation.
- Returns:
Either IsCompleted, IsCanceled or WaitForCompletion will return true a single time, after that the request is taken out of the system.
-
virtual bool IsCanceled(int64_t requestID, ReadErrorException *error) = 0
Check if a request was canceled (e.g. the VDS was invalidated before the request was processed). If the request was canceled, the buffer does not contain valid data.
- Parameters:
requestID – The RequestID to check for cancellation.
error – This out parameter will be set to the error that caused the cancellation.
- Returns:
Either IsCompleted, IsCanceled or WaitForCompletion will return true a single time, after that the request is taken out of the system.
-
virtual bool WaitForCompletion(int64_t requestID, int millisecondsBeforeTimeout = 0) = 0
Wait for a request to complete successfully. If the request completed, the buffer now contains valid data.
- Parameters:
requestID – The RequestID to wait for completion of.
millisecondsBeforeTimeout – The number of milliseconds to wait before timing out (optional). A value of 0 indicates there is no timeout and we will wait for however long it takes. Note that the request is not automatically canceled if the wait times out, you can also use this mechanism to e.g. update a progress bar while waiting. If you want to cancel the request you have to explicitly call CancelRequest() and then wait for the request to stop writing to the buffer.
- Returns:
Either IsCompleted, IsCanceled or WaitForCompletion will return true a single time, after that the request is taken out of the system. Whenever WaitForCompletion returns false you need to call IsCanceled() to know if that was because of a timeout or if the request was canceled.
-
virtual void Cancel(int64_t requestID) = 0
Try to cancel the request. You still have to call WaitForCompletion/IsCanceled to make sure the buffer is not being written to and to take the job out of the system. It is possible that the request has completed concurrently with the call to Cancel in which case WaitForCompletion will return true.
- Parameters:
requestID – The RequestID to cancel.
-
virtual void CancelAndWaitForCompletion(int64_t requestID) = 0
Cancel the request and wait for it to complete. This call will block until the request has completed so you can be sure the buffer is not being written to and the job is taken out of the system.
- Parameters:
requestID – The RequestID to cancel.
-
virtual float GetCompletionFactor(int64_t requestID) = 0
Get the completion factor (between 0 and 1) of the request.
- Parameters:
requestID – The RequestID to get the completion factor of.
- Returns:
A factor (between 0 and 1) indicating how much of the request has been completed.
-
virtual void Flush(ErrorHandler errorHandler, Error *error = nullptr) = 0
Flush any pending writes and write updated layer status.
Public Static Attributes
-
static constexpr int Dimensionality_Max = VolumeDataLayout::Dimensionality_Max
the maximum number of dimensions a VDS can have
-
typedef void (*ErrorHandler)(Error *error, int errorCode, const char *errorMessage)
-
class IVolumeDataAccessor
Subclassed by OpenVDS::IVolumeDataAccessorWithRegions< INDEX >
-
class Manager
Public Functions
-
virtual void DestroyVolumeDataAccessor(IVolumeDataAccessor *accessor) = 0
-
virtual IVolumeDataAccessor *CloneVolumeDataAccessor(IVolumeDataAccessor const &accessor) = 0
-
virtual void DestroyVolumeDataAccessor(IVolumeDataAccessor *accessor) = 0
-
class Manager
-
template<typename INDEX>
class IVolumeDataAccessorWithRegions : public OpenVDS::IVolumeDataAccessor, public OpenVDS::IVolumeDataRegions<INDEX> Subclassed by OpenVDS::IVolumeDataReadAccessor< INDEX, T >
Public Functions
-
virtual IndexRegion<INDEX> CurrentRegion() = 0
-
virtual IndexRegion<INDEX> CurrentRegion() = 0
-
template<typename INDEX, typename T>
class IVolumeDataReadAccessor : public OpenVDS::IVolumeDataAccessorWithRegions<INDEX> Subclassed by OpenVDS::IVolumeDataReadWriteAccessor< INDEX, T >
-
template<typename INDEX, typename T>
class IVolumeDataReadWriteAccessor : public OpenVDS::IVolumeDataReadAccessor<INDEX, T>
-
template<typename INDEX>
class IVolumeDataRegions Subclassed by OpenVDS::IVolumeDataAccessorWithRegions< INDEX >
Public Functions
-
virtual int64_t RegionCount() = 0
-
virtual IndexRegion<INDEX> Region(int64_t region) = 0
-
virtual int64_t RegionFromIndex(INDEX index) = 0
-
virtual int64_t RegionCount() = 0
-
class KnownAxisNames
Public Static Functions
-
static inline const char *Inline()
String representing the name of the axis corresponding to the inline spacing.
-
static inline const char *Crossline()
String representing the name of the axis corresponding to the crossline spacing.
-
static inline const char *Time()
String representing the name of the axis corresponding to the negative z direction.
-
static inline const char *Depth()
String representing the name of the axis corresponding to the negative z direction.
-
static inline const char *Sample()
String representing the name of the axis corresponding to the negative z direction.
-
static inline const char *I()
String representing the name of the axis corresponding to the I step vector (SurveyCoordinateSystemIStepVector)
-
static inline const char *J()
String representing the name of the axis corresponding to the J step vector (SurveyCoordinateSystemIStepVector)
-
static inline const char *K()
String representing the name of the axis corresponding to the K step vector (SurveyCoordinateSystemKStepVector)
-
static inline const char *X()
String representing the name of the axis that maps directly to the X coordinate in the XYZ coordinate system.
-
static inline const char *Y()
String representing the name of the axis that maps directly to the Y coordinate in the XYZ coordinate system.
-
static inline const char *Z()
String representing the name of the axis that maps directly to the Z coordinate in the XYZ coordinate system.
-
static inline const char *Inline()
-
class KnownMetadata
Public Static Functions
-
static inline const char *CategorySurveyCoordinateSystem()
The metadata in the survey coordinate system category contains either information used to transform from an Inline/Crossline annotation system to XY (Easting, Northing) coordinates or information used to transform from an I/J/K annotation system to XYZ coordinates.
In the Inline/Crossline system, the step vector for dimension 0 (Which can be named either Time, Depth or Sample) is always negative Z direction. The origin is the position of (inline, crossline) (0, 0), the inline spacing is the (X, Y) step when the inline position increments by 1 and the crossline spacing is the (X, Y) step when the crossline position increments by 1.
In the I/J/K system, all three dimensions have 3D step vectors allowing for any affine tranform to XYZ coordinates. The IJK origin is the position of (I, J, K) (0, 0, 0), the I step vector is the (X, Y, Z) step when the I position increments by 1, the J step vector is the (X, Y, Z) step when the J position increments by 1 and the K step vector is the (X, Y, Z) step when the K position increments by 1.
It is also possible to define the X, Y, Z coordinates directly by using X/Y/Z as the axis names.
Any dimensions which have names that are not recognized or are missing the Spacing metadata will be given a unit vector perpendicular to the recognized dimensions.
-
static inline MetadataKey SurveyCoordinateSystemOrigin()
The XY position of the origin of the annotation (Inline/Crossline/Time) coordinate system.
-
static inline MetadataKey SurveyCoordinateSystemInlineSpacing()
The XY spacing between units in the Inline annotation dimension.
-
static inline MetadataKey SurveyCoordinateSystemCrosslineSpacing()
The XY spacing between units in the Crossline annotation dimension.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint0()
An optional reference point in the grid, the annotation coordinates for this point are GridPoint0Inline and GridPoint0Crossline.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint0Inline()
The inline annotation coordinate for the point defined by GridPoint0.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint0Crossline()
The inline annotation coordinate for the point defined by GridPoint0.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint1()
An optional reference point in the grid, the annotation coordinates for this point are GridPoint1Inline and GridPoint1Crossline.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint1Inline()
The inline annotation coordinate for the point defined by GridPoint1.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint1Crossline()
The inline annotation coordinate for the point defined by GridPoint1.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint2()
An optional reference point in the grid, the annotation coordinates for this point are GridPoint2Inline and GridPoint2Crossline.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint2Inline()
The inline annotation coordinate for the point defined by GridPoint2.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint2Crossline()
The inline annotation coordinate for the point defined by GridPoint2.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint3()
An optional reference point in the grid, the annotation coordinates for this point are GridPoint3Inline and GridPoint3Crossline.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint3Inline()
The inline annotation coordinate for the point defined by GridPoint3.
-
static inline MetadataKey SurveyCoordinateSystemGridPoint3Crossline()
The inline annotation coordinate for the point defined by GridPoint3.
-
static inline MetadataKey SurveyCoordinateSystemIJKOrigin()
The XYZ position of the origin of the annotation (I/J/K) coordinate system.
-
static inline MetadataKey SurveyCoordinateSystemIStepVector()
The step vector corresponding to dimension named ‘I’.
-
static inline MetadataKey SurveyCoordinateSystemJStepVector()
The step vector corresponding to dimension named ‘J’.
-
static inline MetadataKey SurveyCoordinateSystemKStepVector()
The step vector corresponding to dimension named ‘K’.
-
static inline MetadataKey SurveyCoordinateSystemUnit()
The unit of the coordinate system.
-
static inline MetadataKey SurveyCoordinateSystemCRSWkt()
The well-known text representation of the coordinate reference system.
-
static inline const char *CategoryTraceCoordinates()
The metadata in the TraceCoordinates category is used for positioning of 2D seismic. It relates to the ‘Trace’ dimension of the VDS where the annotation coordinate is used to look up in the arrays in this category. This allows using the same positions with subsetted and interpolated or decimated data.
-
static inline MetadataKey TracePositions()
An array of DoubleVector2 defining the position for each trace, where (0, 0) is treated as an undefined position.
-
static inline MetadataKey TraceVerticalOffsets()
An array of doubles defining the offset for each trace from the vertical start position in the Time/Depth/Sample dimension of the VDS.
-
static inline MetadataKey EnergySourcePointNumbers()
An array of scalar int32 values defining the energy source point number for each trace.
-
static inline MetadataKey EnsembleNumbers()
An array of scalar int32 values defining the ensemble number for each trace.
-
static inline const char *CategoryWrittenRegion()
The metadata in the WrittenRegion category is used to indicate which area is written in a sparsely populated VDS. The guarantee is that values outside the written area will be NoValue if UseNoValue is true, and ValueRange.Min if UseNoValue is false.
-
static inline MetadataKey WrittenRegion()
An array of scalar int32 values defining the 6D min and max (NDBox) of the written region.
-
static inline const char *CategoryStatistics()
This metadata category has statistics generated from the values written to the VDS.
-
static inline MetadataKey ActualValueRange()
The actual value range of the data written to the primary channel (excluding NoValues)
-
static inline MetadataKey Histogram()
An array of histogram counts (int64) for each bucket of the histogram using the channel’s value range of the data written to the primary channel (excluding NoValues)
-
static inline const char *CategoryImportInformation()
The metadata in the ImportInformation category contains information about the initial import to VDS. That is, information about the original file (file name, last modification time etc.) and when/how it was imported. The intended use is e.g. to give a default file name for an export operation or to inform the user about whether the VDS was imported from some particular file.
-
static inline MetadataKey ImportInformationDisplayName()
An informative name that can be displayed to a user but is not necessarily a valid file name.
-
static inline MetadataKey ImportInformationInputFileName()
The original input file name. In cases where the input is not a simple file this should still be a valid file name that can be used as the default for a subsequent export operation.
-
static inline MetadataKey ImportInformationInputFileSize()
The total size (in bytes) of the input file(s), which is an integer stored as a double because there is no 64-bit integer metadata type.
-
static inline MetadataKey ImportInformationInputTimeStamp()
The last modified time of the input in ISO8601 format.
-
static inline MetadataKey ImportInformationImportTimeStamp()
The time in ISO8601 format when the data was imported to VDS.
-
static inline const char *CategorySEGY()
The metadata in the SEGY category is intended to capture information required to re-create the original SEG-Y file. It is only present if the VDS was imported from a SEG-Y file.
-
static inline MetadataKey SEGYTextHeader()
The original text header of the SEG-Y file.
-
static inline MetadataKey SEGYBinaryHeader()
The original binary header of the SEG-Y file.
-
static inline MetadataKey SEGYEndianness()
The endianness of the SEG-Y file (0=BigEndian)(1=LittleEndian)
-
static inline MetadataKey SEGYDataEndianness()
The endianness of the data samples in the SEG-Y file if different from the header endianness. This is a non-standard feature, but some SEG-Y files use it. (0=BigEndian)(1=LittleEndian)
-
static inline MetadataKey SEGYDataSampleFormatCode()
The data sample format code of the data samples imported from the SEG-Y file. (0=Unknown)(1=IBMFloat)(2=Int32)(3=Int16)(4=FixedPoint)(5=IEEEFloat)(6=IEEEDouble)(7=Int24)(8=Int8)(9=Int64)(10=UInt32)(11=UInt16)(12=UInt64)(15=UInt24)(16=UInt8)
-
static inline MetadataKey SEGYPrimaryKey()
The primary key (i.e. sort order) of the original SEG-Y file. VDSs are expected to transpose crossline-oriented seismic to use the standard (Sample, Crossline, Inline) axis triple, so in order to export the file in the original order we need to know which dimension to loop over.
-
static inline const char *CategorySurveyCoordinateSystem()
-
class KnownUnitNames
Public Static Functions
-
static inline const char *Meter()
String representing the SI meter unit.
-
static inline const char *Millisecond()
String representing the SI milliseconds unit.
-
static inline const char *Foot()
String representing the foot unit.
-
static inline const char *USSurveyFoot()
String representing the US survey foot unit.
-
static inline const char *Second()
String representing the SI second unit.
-
static inline const char *MetersPerSecond()
String representing the meters per second unit.
-
static inline const char *FeetPerSecond()
String representing the feet per second unit.
-
static inline const char *USSurveyFeetPerSecond()
String representing the US survey feet per second unit.
-
static inline const char *Unitless()
String representing unitless.
-
static inline const char *Meter()
-
struct M4
Public Members
-
DoubleVector4 data[4]
-
DoubleVector4 data[4]
-
template<typename T, size_t SIZE>
struct Matrix -
Public Functions
-
inline Matrix()
-
inline Matrix()
-
template<int BUFFERSIZE>
class MessageBufferException : public OpenVDS::Exception Public Types
Values:
-
enumerator MESSAGE_BUFFER_SIZE
-
enumerator MESSAGE_BUFFER_SIZE
-
class MetadataContainer : public OpenVDS::MetadataReadAccess, public OpenVDS::MetadataWriteAccess
Public Functions
-
MetadataContainer() = default
-
inline virtual bool IsMetadataIntAvailable(const char *category, const char *name) const override
Returns true if a metadata int with the given category and name is available.
-
inline virtual bool IsMetadataIntVector2Available(const char *category, const char *name) const override
Returns true if a metadata IntVector2 with the given category and name is available.
-
inline virtual bool IsMetadataIntVector3Available(const char *category, const char *name) const override
Returns true if a metadata IntVector3 with the given category and name is available.
-
inline virtual bool IsMetadataIntVector4Available(const char *category, const char *name) const override
Returns true if a metadata IntVector4 with the given category and name is available.
-
inline virtual bool IsMetadataFloatAvailable(const char *category, const char *name) const override
Returns true if a metadata float with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector2Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector2 with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector3Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector3 with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector4Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector4 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleAvailable(const char *category, const char *name) const override
Returns true if a metadata double with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector2Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector2 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector3Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector3 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector4Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector4 with the given category and name is available.
-
inline virtual bool IsMetadataStringAvailable(const char *category, const char *name) const override
Returns true if a metadata string with the given category and name is available.
-
inline virtual bool IsMetadataBLOBAvailable(const char *category, const char *name) const override
Returns true if a metadata BLOB with the given category and name is available.
-
inline virtual int GetMetadataInt(const char *category, const char *name) const override
Returns the metadata int with the given category and name.
-
inline virtual IntVector2 GetMetadataIntVector2(const char *category, const char *name) const override
Returns the metadata IntVector2 with the given category and name.
-
inline virtual IntVector3 GetMetadataIntVector3(const char *category, const char *name) const override
Returns the metadata IntVector3 with the given category and name.
-
inline virtual IntVector4 GetMetadataIntVector4(const char *category, const char *name) const override
Returns the metadata IntVector4 with the given category and name.
-
inline virtual float GetMetadataFloat(const char *category, const char *name) const override
Returns the metadata float with the given category and name.
-
inline virtual FloatVector2 GetMetadataFloatVector2(const char *category, const char *name) const override
Returns the metadata FloatVector2 with the given category and name.
-
inline virtual FloatVector3 GetMetadataFloatVector3(const char *category, const char *name) const override
Returns the metadata FloatVector3 with the given category and name.
-
inline virtual FloatVector4 GetMetadataFloatVector4(const char *category, const char *name) const override
Returns the metadata FloatVector4 with the given category and name.
-
inline virtual double GetMetadataDouble(const char *category, const char *name) const override
Returns the metadata double with the given category and name.
-
inline virtual DoubleVector2 GetMetadataDoubleVector2(const char *category, const char *name) const override
Returns the metadata DoubleVector2 with the given category and name.
-
inline virtual DoubleVector3 GetMetadataDoubleVector3(const char *category, const char *name) const override
Returns the metadata DoubleVector3 with the given category and name.
-
inline virtual DoubleVector4 GetMetadataDoubleVector4(const char *category, const char *name) const override
Returns the metadata DoubleVector4 with the given category and name.
-
inline virtual const char *GetMetadataString(const char *category, const char *name) const override
Returns the metadata string with the given category and name.
-
inline virtual void SetMetadataInt(const char *category, const char *name, int value) override
Sets a metadata int with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector2(const char *category, const char *name, IntVector2 value) override
Sets a metadata IntVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector3(const char *category, const char *name, IntVector3 value) override
Sets a metadata IntVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector4(const char *category, const char *name, IntVector4 value) override
Sets a metadata IntVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataFloat(const char *category, const char *name, float value) override
Sets a metadata float with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector2(const char *category, const char *name, FloatVector2 value) override
Sets a metadata FloatVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector3(const char *category, const char *name, FloatVector3 value) override
Sets a metadata FloatVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector4(const char *category, const char *name, FloatVector4 value) override
Sets a metadata FloatVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataDouble(const char *category, const char *name, double value) override
Sets a metadata double with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector2(const char *category, const char *name, DoubleVector2 value) override
Sets a metadata DoubleVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector3(const char *category, const char *name, DoubleVector3 value) override
Sets a metadata DoubleVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector4(const char *category, const char *name, DoubleVector4 value) override
Sets a metadata DoubleVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataString(const char *category, const char *name, const char *value) override
Sets a metadata string with the given category and name to the given value.
-
inline virtual void SetMetadataBLOB(const char *category, const char *name, const void *data, size_t size) override
Sets a metadata BLOB with the given category and name to the given value.
-
inline virtual void CopyMetadata(const char *category, MetadataReadAccess const *metadataReadAccess) override
Copy the metadata from another MetadataContainer
- Parameters:
category – the metadata category to copy
metadataReadAccess – the MetadataReadAccess interface to copy from
-
inline virtual void ClearMetadata(const char *category, const char *name) override
Clear the metadata with the given category and name.
-
inline virtual void ClearMetadata(const char *category) override
Clear the metadata with the given category.
-
inline virtual void GetMetadataBLOB(const char *category, const char *name, const void **data, size_t *size) const override
Returns the metadata BLOB with the given category and name.
-
inline virtual MetadataKeyRange GetMetadataKeys() const override
Returns a range of metadata keys that can be iterated over using range-based ‘for’.
-
virtual void SetMetadataBLOB(const char *category, const char *name, const void *data, size_t size) = 0
Sets a metadata BLOB with the given category and name to the given value.
-
template<typename T>
inline void SetMetadataBLOB(const char *category, const char *name, std::vector<T> const &value) - Parameters:
value – Sets a metadata BLOB with the given category and name to the given value
-
virtual void SetMetadataString(const char *category, const char *name, const char *value) = 0
Sets a metadata string with the given category and name to the given value.
-
inline void SetMetadataString(const char *category, const char *name, std::string const &value)
- Parameters:
value – Sets a metadata string with the given category and name to the given value
-
virtual void GetMetadataBLOB(const char *category, const char *name, const void **data, size_t *size) const = 0
Returns the metadata BLOB with the given category and name.
-
template<typename T>
inline void GetMetadataBLOB(const char *category, const char *name, std::vector<T> &value) const
-
virtual const char *GetMetadataString(const char *category, const char *name) const = 0
Returns the metadata string with the given category and name.
-
MetadataContainer() = default
-
class MetadataKey
- #include <MetadataKey.h>
A metadata key uniquely identifies a metadata item.
Public Functions
-
inline MetadataKey()
Default constructor.
-
inline MetadataKey(MetadataType type, const char *category, const char *name)
Constructor.
- Parameters:
type – The type of the metadata that this key identifies. The possible types are (Int, Float, Double, {Int,Float,Double}Vector{2,3,4}, String or BLOB).
category – The category of the metadata that this key identifies. A category is a collection of related metadata items, e.g. SurveyCoordinateSystem consists of Origin, InlineSpacing, CrosslineSpacing and Unit metadata.
name – The name of the metadata that this key identifies
-
inline MetadataType GetType() const
Get the type of metadata that this key identifies.
- Returns:
The type of the metadata that this key identifies
-
inline const char *GetCategory() const
Get the category of metadata that this key identifies.
- Returns:
The category of the metadata that this key identifies
-
inline const char *GetName() const
Get the name of metadata that this key identifies.
- Returns:
The name of the metadata that this key identifies
-
inline bool operator==(const MetadataKey &other) const
-
inline bool operator!=(const MetadataKey &other) const
-
inline MetadataKey()
-
class MetadataKeyRange
- #include <MetadataKey.h>
A range of metadata keys that can be iterated over using range-based ‘for’.
Public Types
-
using const_iterator = const MetadataKey*
Public Functions
-
inline MetadataKeyRange(const_iterator begin, const_iterator end)
-
inline const_iterator begin() const
Returns a const iterator pointing to the first element in the MetadataKey collection.
-
inline const_iterator end() const
Returns a const iterator pointing to the past-the-end element in the MetadataKey collection.
-
using const_iterator = const MetadataKey*
-
class MetadataReadAccess
- #include <MetadataAccess.h>
Interface for read access to Metadata.
Subclassed by OpenVDS::MetadataContainer, OpenVDS::VolumeDataLayout
Public Functions
-
virtual bool IsMetadataIntAvailable(const char *category, const char *name) const = 0
Returns true if a metadata int with the given category and name is available.
-
virtual bool IsMetadataIntVector2Available(const char *category, const char *name) const = 0
Returns true if a metadata IntVector2 with the given category and name is available.
-
virtual bool IsMetadataIntVector3Available(const char *category, const char *name) const = 0
Returns true if a metadata IntVector3 with the given category and name is available.
-
virtual bool IsMetadataIntVector4Available(const char *category, const char *name) const = 0
Returns true if a metadata IntVector4 with the given category and name is available.
-
virtual bool IsMetadataFloatAvailable(const char *category, const char *name) const = 0
Returns true if a metadata float with the given category and name is available.
-
virtual bool IsMetadataFloatVector2Available(const char *category, const char *name) const = 0
Returns true if a metadata FloatVector2 with the given category and name is available.
-
virtual bool IsMetadataFloatVector3Available(const char *category, const char *name) const = 0
Returns true if a metadata FloatVector3 with the given category and name is available.
-
virtual bool IsMetadataFloatVector4Available(const char *category, const char *name) const = 0
Returns true if a metadata FloatVector4 with the given category and name is available.
-
virtual bool IsMetadataDoubleAvailable(const char *category, const char *name) const = 0
Returns true if a metadata double with the given category and name is available.
-
virtual bool IsMetadataDoubleVector2Available(const char *category, const char *name) const = 0
Returns true if a metadata DoubleVector2 with the given category and name is available.
-
virtual bool IsMetadataDoubleVector3Available(const char *category, const char *name) const = 0
Returns true if a metadata DoubleVector3 with the given category and name is available.
-
virtual bool IsMetadataDoubleVector4Available(const char *category, const char *name) const = 0
Returns true if a metadata DoubleVector4 with the given category and name is available.
-
virtual bool IsMetadataStringAvailable(const char *category, const char *name) const = 0
Returns true if a metadata string with the given category and name is available.
-
virtual bool IsMetadataBLOBAvailable(const char *category, const char *name) const = 0
Returns true if a metadata BLOB with the given category and name is available.
-
virtual int GetMetadataInt(const char *category, const char *name) const = 0
Returns the metadata int with the given category and name.
-
virtual IntVector2 GetMetadataIntVector2(const char *category, const char *name) const = 0
Returns the metadata IntVector2 with the given category and name.
-
virtual IntVector3 GetMetadataIntVector3(const char *category, const char *name) const = 0
Returns the metadata IntVector3 with the given category and name.
-
virtual IntVector4 GetMetadataIntVector4(const char *category, const char *name) const = 0
Returns the metadata IntVector4 with the given category and name.
-
virtual float GetMetadataFloat(const char *category, const char *name) const = 0
Returns the metadata float with the given category and name.
-
virtual FloatVector2 GetMetadataFloatVector2(const char *category, const char *name) const = 0
Returns the metadata FloatVector2 with the given category and name.
-
virtual FloatVector3 GetMetadataFloatVector3(const char *category, const char *name) const = 0
Returns the metadata FloatVector3 with the given category and name.
-
virtual FloatVector4 GetMetadataFloatVector4(const char *category, const char *name) const = 0
Returns the metadata FloatVector4 with the given category and name.
-
virtual double GetMetadataDouble(const char *category, const char *name) const = 0
Returns the metadata double with the given category and name.
-
virtual DoubleVector2 GetMetadataDoubleVector2(const char *category, const char *name) const = 0
Returns the metadata DoubleVector2 with the given category and name.
-
virtual DoubleVector3 GetMetadataDoubleVector3(const char *category, const char *name) const = 0
Returns the metadata DoubleVector3 with the given category and name.
-
virtual DoubleVector4 GetMetadataDoubleVector4(const char *category, const char *name) const = 0
Returns the metadata DoubleVector4 with the given category and name.
-
virtual const char *GetMetadataString(const char *category, const char *name) const = 0
Returns the metadata string with the given category and name.
-
template<typename T>
inline void GetMetadataBLOB(const char *category, const char *name, std::vector<T> &value) const
-
virtual MetadataKeyRange GetMetadataKeys() const = 0
Returns a range of metadata keys that can be iterated over using range-based ‘for’.
Public Members
- friend PyMetadataAccess
-
virtual bool IsMetadataIntAvailable(const char *category, const char *name) const = 0
-
class MetadataWriteAccess
- #include <MetadataAccess.h>
Interface for write access to Metadata.
Subclassed by OpenVDS::MetadataContainer
Public Functions
-
virtual void SetMetadataInt(const char *category, const char *name, int value) = 0
Sets a metadata int with the given category and name to the given value.
-
virtual void SetMetadataIntVector2(const char *category, const char *name, IntVector2 value) = 0
Sets a metadata IntVector2 with the given category and name to the given value.
-
virtual void SetMetadataIntVector3(const char *category, const char *name, IntVector3 value) = 0
Sets a metadata IntVector3 with the given category and name to the given value.
-
virtual void SetMetadataIntVector4(const char *category, const char *name, IntVector4 value) = 0
Sets a metadata IntVector4 with the given category and name to the given value.
-
virtual void SetMetadataFloat(const char *category, const char *name, float value) = 0
Sets a metadata float with the given category and name to the given value.
-
virtual void SetMetadataFloatVector2(const char *category, const char *name, FloatVector2 value) = 0
Sets a metadata FloatVector2 with the given category and name to the given value.
-
virtual void SetMetadataFloatVector3(const char *category, const char *name, FloatVector3 value) = 0
Sets a metadata FloatVector3 with the given category and name to the given value.
-
virtual void SetMetadataFloatVector4(const char *category, const char *name, FloatVector4 value) = 0
Sets a metadata FloatVector4 with the given category and name to the given value.
-
virtual void SetMetadataDouble(const char *category, const char *name, double value) = 0
Sets a metadata double with the given category and name to the given value.
-
virtual void SetMetadataDoubleVector2(const char *category, const char *name, DoubleVector2 value) = 0
Sets a metadata DoubleVector2 with the given category and name to the given value.
-
virtual void SetMetadataDoubleVector3(const char *category, const char *name, DoubleVector3 value) = 0
Sets a metadata DoubleVector3 with the given category and name to the given value.
-
virtual void SetMetadataDoubleVector4(const char *category, const char *name, DoubleVector4 value) = 0
Sets a metadata DoubleVector4 with the given category and name to the given value.
-
virtual void SetMetadataString(const char *category, const char *name, const char *value) = 0
Sets a metadata string with the given category and name to the given value.
-
inline void SetMetadataString(const char *category, const char *name, std::string const &value)
- Parameters:
value – Sets a metadata string with the given category and name to the given value
-
virtual void SetMetadataBLOB(const char *category, const char *name, const void *data, size_t size) = 0
Sets a metadata BLOB with the given category and name to the given value.
-
template<typename T>
inline void SetMetadataBLOB(const char *category, const char *name, std::vector<T> const &value) - Parameters:
value – Sets a metadata BLOB with the given category and name to the given value
-
virtual void CopyMetadata(const char *category, MetadataReadAccess const *metadataReadAccess) = 0
Copy the metadata from another MetadataContainer
- Parameters:
category – the metadata category to copy
metadataReadAccess – the MetadataReadAccess interface to copy from
-
virtual void ClearMetadata(const char *category, const char *name) = 0
Clear the metadata with the given category and name.
-
virtual void ClearMetadata(const char *category) = 0
Clear the metadata with the given category.
-
virtual void SetMetadataInt(const char *category, const char *name, int value) = 0
-
struct OpenOptions
Subclassed by OpenVDS::AWSOpenOptions, OpenVDS::AzureOpenOptions, OpenVDS::AzurePresignedOpenOptions, OpenVDS::DMSOpenOptions, OpenVDS::GoogleOpenOptions, OpenVDS::HttpOpenOptions, OpenVDS::InMemoryOpenOptions, OpenVDS::VDSFileOpenOptions
Public Types
-
enum ConnectionType
Values:
-
enumerator AWS
-
enumerator Azure
-
enumerator AzureSdkForCpp
-
enumerator AzurePresigned
-
enumerator GoogleStorage
-
enumerator DMS
-
enumerator Http
-
enumerator VDSFile
-
enumerator InMemory
-
enumerator Other
-
enumerator ConnectionTypeCount
-
enumerator AWS
Public Functions
-
inline virtual ~OpenOptions()
Public Members
-
ConnectionType connectionType
-
WaveletAdaptiveMode waveletAdaptiveMode
This property (only relevant when using Wavelet compression) is used to control how the wavelet adaptive compression determines which level of wavelet compressed data to load. Depending on the setting, either the global or local WaveletAdaptiveTolerance or the WaveletAdaptiveRatio can be used.
-
float waveletAdaptiveTolerance
Wavelet adaptive tolerance, this setting will be used whenever the WavletAdaptiveMode is set to Tolerance.
-
float waveletAdaptiveRatio
Wavelet adaptive ratio, this setting will be used whenever the WavletAdaptiveMode is set to Ratio. A compression ratio of 5.0 corresponds to compressed data which is 20% of the original.
-
int requestThreadCount
Number of threads used to process requests.
-
LogLevel logLevel
Property to adjust the OpenVDSLogging handlers level.
-
enum ConnectionType
-
class OpenVDSInterface : public OpenVDS::OpenVDSVersioningInterface
- #include <OpenVDSInterface.h>
The OpenVDS interface is used to provide a versioned entrypoint for the API with wrappers for standard types to ensure ABI compatibility.
Public Types
-
typedef void (*ErrorHandler)(Error *error, int errorCode, const char *errorMessage)
-
typedef void (*WaveletAdaptiveLevelsHandler)(std::vector<WaveletAdaptiveLevel> *waveletAdaptiveLevelsVector, float compressionTolerance, float compressionRatio, int64_t compressedSize)
Public Functions
-
virtual OpenOptions *CreateOpenOptions(StringWrapper url, StringWrapper connectionString, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual bool IsSupportedProtocol(StringWrapper url) = 0
-
virtual VDSHandle Open(StringWrapper url, StringWrapper connectionString, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle OpenWithAdaptiveCompressionTolerance(StringWrapper url, StringWrapper connectionString, float waveletAdaptiveTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle OpenWithAdaptiveCompressionRatio(StringWrapper url, StringWrapper connectionString, float waveletAdaptiveRatio, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle Open(const OpenOptions &options, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle Open(IOManager *ioManager, LogLevel logLevel, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual bool IsCompressionMethodSupported(CompressionMethod compressionMethod) = 0
-
virtual VDSHandle Create(StringWrapper url, StringWrapper connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, LogLevel logLevel, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual VolumeDataLayout *GetLayout(VDSHandle handle) = 0
-
virtual IVolumeDataAccessManager *GetAccessManagerInterface(VDSHandle handle) = 0
-
virtual MetadataWriteAccess *GetMetadataWriteAccessInterface(VDSHandle handle) = 0
-
virtual CompressionMethod GetCompressionMethod(VDSHandle handle) = 0
-
virtual float GetCompressionTolerance(VDSHandle handle) = 0
-
virtual void Close(VDSHandle handle, bool flush) = 0
-
virtual void Close(VDSHandle handle, bool flush, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual void RetryableClose(VDSHandle handle, bool flush) = 0
-
virtual void RetryableClose(VDSHandle handle, bool flush, ErrorHandler errorHandler, Error *error = nullptr) = 0
-
virtual GlobalState *GetGlobalState() = 0
-
virtual int64_t GetWaveletCompressedSize(VDSHandle handle) = 0
-
virtual int64_t GetWaveletUncompressedSize(VDSHandle handle) = 0
-
virtual void GetWaveletAdaptiveLevels(VDSHandle handle, WaveletAdaptiveLevelsHandler WaveletAdaptiveLevelsHandler, std::vector<WaveletAdaptiveLevel> *waveletAdaptiveLevelsVector) = 0
-
typedef void (*ErrorHandler)(Error *error, int errorCode, const char *errorMessage)
-
class OpenVDSVersioningInterface
- #include <OpenVDSInterface.h>
The OpenVDS versioning interface is a stable base class for the OpenVDS global interface that can be used to check what version of the OpenVDS interface is provided.
Subclassed by OpenVDS::OpenVDSInterface
Public Functions
-
virtual const char *GetOpenVDSName() = 0
-
virtual const char *GetOpenVDSVersion() = 0
-
virtual void GetOpenVDSVersion(int &major, int &minor, int &patch) = 0
-
virtual const char *GetOpenVDSRevision() = 0
-
virtual const char *GetOpenVDSName() = 0
-
template<typename T>
struct optional Public Types
-
using value_type = T
Public Functions
-
inline optional()
-
inline optional(const value_type &value)
-
inline value_type value() const
-
inline value_type value_or(value_type const &value) const
-
inline value_type &emplace(value_type &&value)
-
inline bool has_value() const
-
inline operator bool() const
-
using value_type = T
-
template<typename T, bool isUseNoValue>
struct QuantizedTypesToFloatConverter
-
template<bool isUseNoValue>
struct QuantizedTypesToFloatConverter<uint16_t, isUseNoValue> Public Functions
-
inline QuantizedTypesToFloatConverter()
-
inline QuantizedTypesToFloatConverter(float integerScale, float integerOffset, bool isRangeScale)
-
inline float ConvertValue(uint16_t value) const
Public Members
-
float m_integerScale
-
float m_integerOffset
-
inline QuantizedTypesToFloatConverter()
-
template<bool isUseNoValue>
struct QuantizedTypesToFloatConverter<uint8_t, isUseNoValue> Public Functions
-
inline QuantizedTypesToFloatConverter()
-
inline QuantizedTypesToFloatConverter(float integerScale, float integerOffset, bool isRangeScale)
-
inline float ConvertValue(uint8_t value) const
Public Members
-
float m_integerScale
-
float m_integerOffset
-
inline QuantizedTypesToFloatConverter()
-
template<typename T1, typename T2, bool isUseNoValue>
class QuantizingValueConverterWithNoValue Public Functions
-
inline QuantizingValueConverterWithNoValue()
-
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, float noValue, float replacementNoValue)
-
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, double noValue, double replacementNoValue)
-
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, float noValue, float replacementNoValue, bool isConvertWithValueRangeOnly)
-
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, double noValue, double replacementNoValue, bool isConvertWithValueRangeOnly)
-
inline QuantizingValueConverterWithNoValue()
-
template<typename T>
struct Range
-
class ReadErrorException : public OpenVDS::MessageBufferException<512>
Public Functions
-
inline ReadErrorException(const char *errorMessage, int errorCode)
-
inline ReadErrorException(const ReadErrorException &other)
-
inline ReadErrorException &operator=(const ReadErrorException &other)
-
inline virtual const char *GetErrorMessage() const noexcept override
-
inline int GetErrorCode() const noexcept
-
inline ReadErrorException(const char *errorMessage, int errorCode)
-
template<typename T1, bool isUseNoValue>
struct ResultConverter
-
template<bool isUseNoValue>
struct ResultConverter<uint16_t, isUseNoValue> Public Static Functions
-
static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
-
template<typename T2>
static inline uint16_t ConvertValueT(T2 value, float offset, float reciprocalScale)
-
static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
-
template<bool isUseNoValue>
struct ResultConverter<uint8_t, isUseNoValue> Public Static Functions
-
static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
-
template<typename T2>
static inline uint8_t ConvertValueT(T2 value, float offset, float reciprocalScale)
-
static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
-
class ScopedVDSHandle
Public Functions
-
inline ScopedVDSHandle()
-
inline ScopedVDSHandle(VDSHandle const &VDS)
-
inline ScopedVDSHandle(ScopedVDSHandle &&VDS)
-
inline ~ScopedVDSHandle()
-
inline void Close()
Close the VDS and free up all associated resources. If an error occurs, an exception will be thrown.
-
inline void Close(Error &error)
Close the VDS and free up all associated resources.
-
inline void RetryableClose()
Close the VDS and free up all associated resources if the close succeeds. If an error occurs, an exception will be thrown.
-
inline void RetryableClose(Error &error)
Close the VDS and free up all associated resources if the close succeeds.
-
inline operator VDSHandle() const
-
inline operator bool() const
-
inline ScopedVDSHandle &operator=(VDSHandle const &VDS) noexcept(true)
-
inline ScopedVDSHandle &operator=(ScopedVDSHandle &&VDS) noexcept(true)
-
inline ScopedVDSHandle()
-
struct StringWrapper
Public Functions
-
inline StringWrapper()
-
inline StringWrapper(const std::string &toWrap)
-
template<size_t SIZE>
inline StringWrapper(const char (&toWrap)[SIZE])
Public Members
-
const char *data
-
size_t size
-
inline StringWrapper()
-
template<int N>
struct VDSCoordinateTransformerBase Public Functions
-
inline FloatVector<3> VoxelIndexToWorldCoordinates(const IntVector<N> &iVoxelIndex) const
Converts a voxel index to world coordinates using the indexer’s IJK grid definition and IJK dimension map
- Parameters:
iVoxelIndex – the voxel index to convert
- Returns:
the world coordinates
-
inline FloatVector<3> VoxelIndexToWorldCoordinates(const FloatVector<N> &rVoxelIndex) const
Converts a float voxel index to world coordinates using the indexer’s IJK grid definition and IJK dimension map
- Parameters:
rVoxelIndex – the float voxel index to convert
- Returns:
the world coordinates
-
inline IntVector<N> WorldCoordinatesToVoxelIndex(const FloatVector<3> &rWorldCoords, const int (&anVoxelMin)[Dimensionality_Max]) const
Converts world coordinates to a voxel index, rounding to the nearest integer
- Parameters:
rWorldCoords – the world coordinates to convert
anVoxelMin –
- Returns:
the voxel index
-
inline FloatVector<N> WorldCoordinatesToVoxelIndexFloat(const FloatVector<3> &rWorldCoords, const int (&anVoxelMin)[Dimensionality_Max]) const
Converts world coordinates to a float voxel index without rounding
- Parameters:
rWorldCoords – the world coordinates to convert
anVoxelMin –
- Returns:
the float voxel index
-
inline VDSCoordinateTransformerBase(const VDSIJKGridDefinition &vdsIjkGridDefinition)
Constructor
- Parameters:
cIJKGridAndDImensionMap – the IJK grid definition and IJK dimension map
-
inline VDSCoordinateTransformerBase()
Constructor
Public Members
-
float ijkToWorldTransform[3][3]
Coordinate transfrom matrix.
-
float worldToIJKTransform[3][3]
Coordinate transform matrix.
-
float ijkToWorldTranslation[3]
Coordinate translation vector.
-
float worldToIJKTranslation[3]
Coordinate translation vector.
-
int ijkDimensionMap[3]
Map to determine which dimension map to I, J, and K.
-
inline FloatVector<3> VoxelIndexToWorldCoordinates(const IntVector<N> &iVoxelIndex) const
-
struct VDSError
Public Functions
-
VDSError() = default
-
VDSError() = default
-
struct VDSFileOpenOptions : public OpenVDS::OpenOptions
- #include <OpenVDS.h>
Options for opening a VDS file.
Public Functions
-
inline VDSFileOpenOptions()
-
inline VDSFileOpenOptions(const std::string &fileName)
VDSFileOpenOptions constructor.
- Parameters:
fileName – The name of the VDS file
Public Members
-
std::string fileName
-
inline VDSFileOpenOptions()
-
struct VDSIJKGridDefinition : public OpenVDS::IJKGridDefinition
Public Functions
-
inline VDSIJKGridDefinition()
-
inline VDSIJKGridDefinition(const IJKGridDefinition &ijkGridDefinition, IntVector3 dimensionMap)
-
inline bool operator==(const VDSIJKGridDefinition &b) const
Public Members
-
IntVector3 dimensionMap
-
inline VDSIJKGridDefinition()
-
template<typename T, size_t N>
struct Vector
-
template<typename TYPE>
struct Vector<TYPE, 2>
-
template<typename TYPE>
struct Vector<TYPE, 3>
-
template<typename TYPE>
struct Vector<TYPE, 4>
-
template<typename T>
struct VectorWrapper
-
class VolumeDataAccessManager
Public Types
-
typedef VolumeDataPageAccessor::AccessMode AccessMode
Public Functions
-
inline VolumeDataAccessManager()
-
inline VolumeDataAccessManager(IVolumeDataAccessManager *manager)
-
inline VolumeDataAccessManager(VolumeDataAccessManager const &rhs)
-
inline ~VolumeDataAccessManager()
-
inline VolumeDataAccessManager &operator=(const VolumeDataAccessManager &rhs)
-
inline VolumeDataLayout const *GetVolumeDataLayout()
Get the VolumeDataLayout object for a VDS.
- Returns:
The VolumeDataLayout object associated with the VDS or NULL if there is no valid VolumeDataLayout.
-
inline VDSProduceStatus GetVDSProduceStatus(DimensionsND dimensionsND, int LOD, int channel) const
Get the produce status for the specific DimensionsND/LOD/Channel combination.
- Parameters:
dimensionsND – The dimensions group we’re getting the produce status for.
LOD – The LOD level we’re getting the produce status for.
channel – The channel index we’re getting the produce status for.
- Returns:
The produce status for the specific DimensionsND/LOD/Channel combination.
-
inline int64_t GetVDSChunkCount(DimensionsND dimensionsND, int LOD, int channel) const
Get the chunk count for the specific DimensionsND/LOD/Channel combination.
- Parameters:
dimensionsND – The dimensions group we’re getting the chunk count for.
LOD – The LOD level we’re getting the chunk count status for.
channel – The channel index we’re getting the chunk count status for.
- Returns:
The chunk count for the specific DimensionsND/LOD/Channel combination.
-
inline std::shared_ptr<VolumeDataPageAccessor> CreateVolumeDataPageAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, AccessMode accessMode, int chunkMetadataPageSize = 1024)
Create a VolumeDataPageAccessor object for the VDS.
- Parameters:
dimensionsND – The dimensions group that the volume data page accessor will access.
LOD – The LOD level that the volume data page accessor will access.
channel – The channel index that the volume data page accessor will access.
maxPages – The maximum number of pages that the volume data page accessor will cache.
accessMode – This specifies the access mode (ReadOnly/ReadWrite/Create) of the volume data page accessor.
chunkMetadataPageSize – The chunk metadata page size of the layer. This controls how many chunk metadata entries are written per page, and is only used when the access mode is Create. If this number is too low it will degrade performance, but in certain situations it can be advantageous to make this number a multiple of the number of chunks in some of the dimensions. Do not change this from the default (1024) unless you know exactly what you are doing.
- Returns:
A VolumeDataPageAccessor object for the VDS.
-
template<typename INDEX, typename T>
VolumeDataReadAccessor<INDEX, T> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
template<typename INDEX, typename T>
VolumeDataReadAccessor<INDEX, T> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
template<typename INDEX, typename T>
VolumeDataReadWriteAccessor<INDEX, T> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
template<typename INDEX, typename T>
VolumeDataReadWriteAccessor<INDEX, T> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
template<typename INDEX, typename T>
VolumeDataReadAccessor<INDEX, T> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
template<typename INDEX, typename T>
VolumeDataReadAccessor<INDEX, T> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DInterpolatingAccessorR64 CreateVolumeData2DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DInterpolatingAccessorR64 CreateVolumeData2DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DInterpolatingAccessorR32 CreateVolumeData2DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DInterpolatingAccessorR32 CreateVolumeData2DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessor1Bit CreateVolumeData2DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessor1Bit CreateVolumeData2DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU8 CreateVolumeData2DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU8 CreateVolumeData2DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU16 CreateVolumeData2DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU16 CreateVolumeData2DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU32 CreateVolumeData2DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU32 CreateVolumeData2DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU64 CreateVolumeData2DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorU64 CreateVolumeData2DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorR32 CreateVolumeData2DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorR32 CreateVolumeData2DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorR64 CreateVolumeData2DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadAccessorR64 CreateVolumeData2DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessor1Bit CreateVolumeData2DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessor1Bit CreateVolumeData2DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU8 CreateVolumeData2DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU8 CreateVolumeData2DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU16 CreateVolumeData2DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU16 CreateVolumeData2DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU32 CreateVolumeData2DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU32 CreateVolumeData2DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU64 CreateVolumeData2DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorU64 CreateVolumeData2DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorR32 CreateVolumeData2DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorR32 CreateVolumeData2DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorR64 CreateVolumeData2DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData2DReadWriteAccessorR64 CreateVolumeData2DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DInterpolatingAccessorR64 CreateVolumeData3DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DInterpolatingAccessorR64 CreateVolumeData3DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DInterpolatingAccessorR32 CreateVolumeData3DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DInterpolatingAccessorR32 CreateVolumeData3DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessor1Bit CreateVolumeData3DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessor1Bit CreateVolumeData3DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU8 CreateVolumeData3DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU8 CreateVolumeData3DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU16 CreateVolumeData3DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU16 CreateVolumeData3DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU32 CreateVolumeData3DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU32 CreateVolumeData3DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU64 CreateVolumeData3DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorU64 CreateVolumeData3DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorR32 CreateVolumeData3DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorR32 CreateVolumeData3DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorR64 CreateVolumeData3DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadAccessorR64 CreateVolumeData3DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessor1Bit CreateVolumeData3DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessor1Bit CreateVolumeData3DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU8 CreateVolumeData3DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU8 CreateVolumeData3DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU16 CreateVolumeData3DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU16 CreateVolumeData3DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU32 CreateVolumeData3DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU32 CreateVolumeData3DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU64 CreateVolumeData3DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorU64 CreateVolumeData3DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorR32 CreateVolumeData3DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorR32 CreateVolumeData3DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorR64 CreateVolumeData3DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData3DReadWriteAccessorR64 CreateVolumeData3DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DInterpolatingAccessorR64 CreateVolumeData4DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DInterpolatingAccessorR64 CreateVolumeData4DInterpolatingAccessorR64(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DInterpolatingAccessorR32 CreateVolumeData4DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DInterpolatingAccessorR32 CreateVolumeData4DInterpolatingAccessorR32(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessor1Bit CreateVolumeData4DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessor1Bit CreateVolumeData4DReadAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU8 CreateVolumeData4DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU8 CreateVolumeData4DReadAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU16 CreateVolumeData4DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU16 CreateVolumeData4DReadAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU32 CreateVolumeData4DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU32 CreateVolumeData4DReadAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU64 CreateVolumeData4DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorU64 CreateVolumeData4DReadAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorR32 CreateVolumeData4DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorR32 CreateVolumeData4DReadAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorR64 CreateVolumeData4DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadAccessorR64 CreateVolumeData4DReadAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessor1Bit CreateVolumeData4DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessor1Bit CreateVolumeData4DReadWriteAccessor1Bit(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU8 CreateVolumeData4DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU8 CreateVolumeData4DReadWriteAccessorU8(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU16 CreateVolumeData4DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU16 CreateVolumeData4DReadWriteAccessorU16(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU32 CreateVolumeData4DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU32 CreateVolumeData4DReadWriteAccessorU32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU64 CreateVolumeData4DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorU64 CreateVolumeData4DReadWriteAccessorU64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorR32 CreateVolumeData4DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorR32 CreateVolumeData4DReadWriteAccessorR32(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorR64 CreateVolumeData4DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue = optional<float>())
-
inline VolumeData4DReadWriteAccessorR64 CreateVolumeData4DReadWriteAccessorR64(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue = optional<float>())
-
inline int64_t GetVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], VolumeDataFormat format, int LOD = 0, int channel = 0)
Compute the buffer size (in bytes) for a volume subset request.
- Parameters:
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
format – Voxel format of the destination buffer.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
template<typename VALUETYPE>
inline int64_t GetVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], int LOD = 0, int channel = 0)
-
inline std::shared_ptr<VolumeDataRequest> RequestVolumeSubset(void *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], VolumeDataFormat format, optional<float> replacementNoValue = optional<float>())
Request a subset of the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
format – Voxel format of the destination buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequest1Bit> RequestVolumeSubset1Bit(uint8_t *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max])
Request a subset of the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
Request a subset of the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequest> RequestVolumeSubset(DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], VolumeDataFormat format, optional<float> replacementNoValue = optional<float>())
Request a subset of the input VDS, using an automatically allocated buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
format – Voxel format of the destination buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequest1Bit> RequestVolumeSubset1Bit(DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max])
Request a subset of the input VDS, using an automatically allocated buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
Request a subset of the input VDS, using an automatically allocated typed buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline int64_t GetProjectedVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], DimensionsND projectedDimensions, VolumeDataFormat format, int LOD = 0, int channel = 0)
Compute the buffer size (in bytes) for a projected volume subset request.
- Parameters:
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
format – Voxel format of the destination buffer.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
template<typename VALUETYPE>
inline int64_t GetProjectedVolumeSubsetBufferSize(const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], DimensionsND projectedDimensions, int LOD = 0, int channel = 0)
-
inline std::shared_ptr<VolumeDataRequest> RequestProjectedVolumeSubset(void *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], FloatVector4 const &voxelPlane, DimensionsND projectedDimensions, VolumeDataFormat format, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
Request a subset projected from an arbitrary 3D plane through the subset onto one of the sides of the subset.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates for the projected dimensions.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
voxelPlane – The plane equation for the projection from the dimension source to the projected dimensions (which must be a 2D subset of the source dimensions).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
interpolationMethod – Interpolation method to use when sampling the buffer.
format – Voxel format of the destination buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequest> RequestProjectedVolumeSubset(DimensionsND dimensionsND, int LOD, int channel, const int (&minVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], const int (&maxVoxelCoordinates)[VolumeDataLayout::Dimensionality_Max], FloatVector4 const &voxelPlane, DimensionsND projectedDimensions, VolumeDataFormat format, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
Request a subset projected from an arbitrary 3D plane through the subset onto one of the sides of the subset, using an automatically allocated buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
voxelPlane – The plane equation for the projection from the dimension source to the projected dimensions (which must be a 2D subset of the source dimensions).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
format – Voxel format of the destination buffer.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
Request a subset projected from an arbitrary 3D plane through the subset onto one of the sides of the subset, using an automatically allocated typed buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
voxelPlane – The plane equation for the projection from the dimension source to the projected dimensions (which must be a 2D subset of the source dimensions).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
Request a subset projected from an arbitrary 3D plane through the subset onto one of the sides of the subset, using an automatically allocated typed buffer.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least as many elements of format as indicated by minVoxelCoordinates and maxVoxelCoordinates for the projected dimensions.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
minVoxelCoordinates – The minimum voxel coordinates to request in each dimension (inclusive).
maxVoxelCoordinates – The maximum voxel coordinates to request in each dimension (exclusive).
voxelPlane – The plane equation for the projection from the dimension source to the projected dimensions (which must be a 2D subset of the source dimensions).
projectedDimensions – The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline int64_t GetVolumeSamplesBufferSize(int sampleCount, int channel = 0)
Compute the buffer size (in bytes) for a volume samples request.
- Parameters:
sampleCount – Number of samples to request.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
inline std::shared_ptr<VolumeDataRequestFloat> RequestVolumeSamples(float *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const float (*samplePositions)[VolumeDataLayout::Dimensionality_Max], int sampleCount, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
Request sampling of the input VDS at the specified coordinates.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least sampleCount elements.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
samplePositions – Pointer to array of VolumeDataLayout::Dimensionality_Max-elements indicating the positions to sample. May be deleted once RequestVolumeSamples return, as HueSpace makes a deep copy of the data.
sampleCount – Number of samples to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequestFloat> RequestVolumeSamples(DimensionsND dimensionsND, int LOD, int channel, const float (*samplePositions)[VolumeDataLayout::Dimensionality_Max], int sampleCount, InterpolationMethod interpolationMethod, optional<float> replacementNoValue = optional<float>())
Request sampling of the input VDS at the specified coordinates, using an automatically allocated buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
samplePositions – Pointer to array of VolumeDataLayout::Dimensionality_Max-elements indicating the positions to sample. May be deleted once RequestVolumeSamples return, as HueSpace makes a deep copy of the data.
sampleCount – Number of samples to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline int64_t GetVolumeTracesBufferSize(int traceCount, int traceDimension, int LOD = 0, int channel = 0)
Compute the buffer size (in bytes) for a volume traces request.
- Parameters:
traceCount – Number of traces to request.
traceDimension – The dimension to trace
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
- Returns:
The buffer size needed.
-
inline std::shared_ptr<VolumeDataRequestFloat> RequestVolumeTraces(DimensionsND dimensionsND, int LOD, int channel, const float (*tracePositions)[VolumeDataLayout::Dimensionality_Max], int traceCount, InterpolationMethod interpolationMethod, int traceDimension, optional<float> replacementNoValue = optional<float>())
Request traces from the input VDS, using an automatically allocated buffer.
- Parameters:
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
tracePositions – Pointer to array of traceCount VolumeDataLayout::Dimensionality_Max-elements indicating the trace positions.
traceCount – Number of traces to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
traceDimension – The dimension to trace
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequestFloat> RequestVolumeTraces(float *buffer, int64_t bufferByteSize, DimensionsND dimensionsND, int LOD, int channel, const float (*tracePositions)[VolumeDataLayout::Dimensionality_Max], int traceCount, InterpolationMethod interpolationMethod, int traceDimension, optional<float> replacementNoValue = optional<float>())
Request traces from the input VDS.
- Parameters:
buffer – Pointer to a preallocated buffer holding at least traceCount * number of samples in the traceDimension.
bufferByteSize – The size of the provided buffer, in bytes.
dimensionsND – The dimensiongroup the requested data is read from.
LOD – The LOD level the requested data is read from.
channel – The channel index the requested data is read from.
tracePositions – Pointer to array of traceCount VolumeDataLayout::Dimensionality_Max-elements indicating the trace positions.
traceCount – Number of traces to request.
interpolationMethod – Interpolation method to use when sampling the buffer.
traceDimension – The dimension to trace
replacementNoValue – If specified, this value is used to replace regions of the input VDS that has no data.
- Returns:
A VolumeDataRequest instance encapsulating the request status and buffer.
-
inline std::shared_ptr<VolumeDataRequest> PrefetchVolumeChunk(DimensionsND dimensionsND, int LOD, int channel, int64_t chunkIndex)
Force production of a specific volume data chunk.
- Parameters:
dimensionsND – The dimensiongroup the requested chunk belongs to.
LOD – The LOD level the requested chunk belongs to.
channel – The channel index the requested chunk belongs to.
chunkIndex – The index of the chunk to prefetch.
- Returns:
A VolumeDataRequest instance encapsulating the request status.
-
inline void Flush(Error &error)
Flush any pending writes and write updated layer status.
-
template<>
inline VolumeDataReadAccessor<IntVector2, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector2, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector3, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, double> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint64_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, float> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint32_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint16_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, uint8_t> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<IntVector4, bool> CreateVolumeDataReadAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector2, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector3, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, double> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint64_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, float> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint32_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint16_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, uint8_t> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadWriteAccessor<IntVector4, bool> CreateVolumeDataReadWriteAccessor(DimensionsND dimensionsND, int LOD, int channel, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector2, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector2, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector3, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector3, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector4, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector4, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, int maxPages, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector2, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector2, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector3, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector3, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector4, double> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
-
template<>
inline VolumeDataReadAccessor<FloatVector4, float> CreateInterpolatingVolumeDataAccessor(DimensionsND dimensionsND, int LOD, int channel, InterpolationMethod interpolationMethod, optional<float> replacementNoValue)
Public Static Attributes
-
static constexpr AccessMode AccessMode_ReadOnly = VolumeDataPageAccessor::AccessMode_ReadOnly
-
static constexpr AccessMode AccessMode_ReadWrite = VolumeDataPageAccessor::AccessMode_ReadWrite
-
static constexpr AccessMode AccessMode_Create = VolumeDataPageAccessor::AccessMode_Create
-
static constexpr AccessMode AccessMode_CreateWithoutLODGeneration = VolumeDataPageAccessor::AccessMode_CreateWithoutLODGeneration
-
static constexpr AccessMode AccessMode_ReadWriteWithoutLODGeneration = VolumeDataPageAccessor::AccessMode_ReadWriteWithoutLODGeneration
-
static constexpr int Dimensionality_Max = VolumeDataLayout::Dimensionality_Max
the maximum number of dimensions a VDS can have
-
static constexpr int maxPagesDefault = 8
the default maxPages for VolumeDataPageAccessors
-
typedef VolumeDataPageAccessor::AccessMode AccessMode
-
class VolumeDataAxisDescriptor
- #include <VolumeDataAxisDescriptor.h>
Describes the number of samples, name, unit and coordinates (annotation) of an axis (dimension) of the volume.
Public Functions
-
inline VolumeDataAxisDescriptor()
Default constructor.
-
inline VolumeDataAxisDescriptor(int numSamples, const char *name, const char *unit, float coordinateMin, float coordinateMax)
Constructor.
- Parameters:
numSamples – The number of samples along this axis
name – The name of this axis
unit – The unit of the coordinates of this axis
coordinateMin – The coordinate of the first sample of this axis
coordinateMax – The coordinate of the last sample of this axis
-
inline int GetNumSamples() const
Get the number of samples along this axis.
- Returns:
The number of samples along this axis
-
inline const char *GetName() const
Get the name of this axis.
- Returns:
The name of this axis
-
inline const char *GetUnit() const
Get the unit of the coordinates of this axis.
- Returns:
The unit of the coordinates of this axis
-
inline float GetCoordinateMin() const
Get the coordinate of the first sample of this axis.
- Returns:
The coordinate of the first sample of this axis
-
inline float GetCoordinateMax() const
Get the coordinate of the last sample of this axis.
- Returns:
The coordinate of the last sample of this axis
-
inline float GetCoordinateStep() const
Get the coordiante step size per sample.
- Returns:
The coordiante step size per sample
-
inline float SampleIndexToCoordinate(int sampleIndex) const
Convert a sample index on this axis to a coordinate.
- Parameters:
sampleIndex – The sample index get the coordinate of
- Returns:
The coordinate of the sample index
-
inline int CoordinateToSampleIndex(float coordinate) const
Convert a coordinate to a sample index (rounding to the closest index)
- Parameters:
coordinate – The coordinate to get the sample index of
- Returns:
The sample index of the coordinate
-
inline float CoordinateToSamplePosition(float coordinate) const
Convert a coordinate to a sample position (to use with RequestVolumeSamples or an InterpolatingVolumeDataAccessor)
- Parameters:
coordinate – The coordinate to get the sample position of
- Returns:
The sample position of the coordinate
-
inline VolumeDataAxisDescriptor()
-
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.
-
enumerator Default
-
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
-
enum Flags
-
class VolumeDataLayout : public OpenVDS::MetadataReadAccess
- #include <VolumeDataLayout.h>
a class that contains axis and channel information for a VDS A layout is associated with a VDS object and contains information about axis and channels in the VDS. A VolumeDataLayout can be invalidated when the VDS is invalidated.
Public Functions
-
virtual uint64_t GetContentsHash() const = 0
gets the contents hash of this VDS
-
virtual uint64_t GetLayoutHash() const = 0
gets the hash for the layout properties including axis and channels
-
virtual int GetDimensionality() const = 0
gets the number of dimensions in this VDS
-
virtual int GetChannelCount() const = 0
gets the number of channels in this VDS
-
virtual bool IsChannelAvailable(const char *channelName) const = 0
Returns true of the VDS contains.
-
virtual int GetChannelIndex(const char *channelName) const = 0
Returns the index of a the channel with the given name.
-
virtual VolumeDataLayoutDescriptor GetLayoutDescriptor() const = 0
Returns the descriptor for the layout.
-
virtual VolumeDataChannelDescriptor GetChannelDescriptor(int channel) const = 0
Returns the descriptor for the given channel index.
-
virtual VolumeDataAxisDescriptor GetAxisDescriptor(int dimension) const = 0
Returns the axis descriptor for the given dimension.
-
virtual VolumeDataFormat GetChannelFormat(int channel) const = 0
get the format for the given channel index
-
virtual VolumeDataComponents GetChannelComponents(int channel) const = 0
get the vector count for the given channel index
-
virtual const char *GetChannelName(int channel) const = 0
get the name for the given channel index
-
virtual const char *GetChannelUnit(int channel) const = 0
get the unit for the given channel index
-
virtual float GetChannelValueRangeMin(int channel) const = 0
get the value range minimum for the given channel index
-
virtual float GetChannelValueRangeMax(int channel) const = 0
get the value range maximum for the given channel index
-
virtual bool IsChannelDiscrete(int channel) const = 0
get the discrete flag for the the given channel index
-
virtual bool IsChannelRenderable(int channel) const = 0
get the renderable flag for the given channel index
-
virtual bool IsChannelAllowingLossyCompression(int channel) const = 0
get the allow lossy compression flag for the given channel index
-
virtual bool IsChannelUseZipForLosslessCompression(int channel) const = 0
get the use Zip when compressing flag for the given channel index
-
virtual VolumeDataMapping GetChannelMapping(int channel) const = 0
get the mapping for the given channel index
-
virtual int GetDimensionNumSamples(int dimension) const = 0
get the number of samples for the given dimension
-
virtual const char *GetDimensionName(int dimension) const = 0
get the name for the given dimension
-
virtual const char *GetDimensionUnit(int dimension) const = 0
get the unit for the given dimension
-
virtual float GetDimensionMin(int dimension) const = 0
get the coordinate minimum for the given dimension
-
virtual float GetDimensionMax(int dimension) const = 0
get the coordinate maximum for the given dimension
-
virtual VDSIJKGridDefinition GetVDSIJKGridDefinitionFromMetadata() const = 0
get the VDSIJKGridDefinition from the metadata in this VDS
-
virtual bool IsChannelUseNoValue(int channel) const = 0
Returns true if the given channel index uses No Value.
-
virtual float GetChannelNoValue(int channel) const = 0
gets the No Value for the given channel index
-
virtual float GetChannelIntegerScale(int channel) const = 0
Returns the integer scale for the given channel index.
-
virtual float GetChannelIntegerOffset(int channel) const = 0
Returns the integer offset for the given channel index.
Public Static Attributes
-
static constexpr int Dimensionality_Max = 6
the maximum number of dimensions a VDS can have
-
virtual uint64_t GetContentsHash() const = 0
-
class VolumeDataLayoutDescriptor
Public Types
-
enum BrickSize
Values:
-
enumerator BrickSize_32
-
enumerator BrickSize_64
-
enumerator BrickSize_128
-
enumerator BrickSize_256
-
enumerator BrickSize_512
-
enumerator BrickSize_1024
-
enumerator BrickSize_2048
-
enumerator BrickSize_4096
-
enumerator BrickSize_32
-
enum LODLevels
Values:
-
enumerator LODLevels_None
-
enumerator LODLevels_1
-
enumerator LODLevels_2
-
enumerator LODLevels_3
-
enumerator LODLevels_4
-
enumerator LODLevels_5
-
enumerator LODLevels_6
-
enumerator LODLevels_7
-
enumerator LODLevels_8
-
enumerator LODLevels_9
-
enumerator LODLevels_10
-
enumerator LODLevels_11
-
enumerator LODLevels_12
-
enumerator LODLevels_None
-
enum Options
Values:
-
enumerator Options_None
-
enumerator Options_Create2DLODs
-
enumerator Options_ForceFullResolutionDimension
-
enumerator Options_None
Public Functions
-
inline VolumeDataLayoutDescriptor()
-
inline VolumeDataLayoutDescriptor(BrickSize brickSize, int negativeMargin, int positiveMargin, int brickSize2DMultiplier, LODLevels lodLevels, Options options, int fullResolutionDimension = 0)
-
inline bool IsValid() const
-
inline BrickSize GetBrickSize() const
-
inline int GetNegativeMargin() const
-
inline int GetPositiveMargin() const
-
inline int GetBrickSizeMultiplier2D() const
-
inline LODLevels GetLODLevels() const
-
inline bool IsCreate2DLODs() const
-
inline bool IsForceFullResolutionDimension() const
-
inline VolumeDataLayoutDescriptor::Options GetOptions() const
-
inline int GetFullResolutionDimension() const
-
enum BrickSize
-
class VolumeDataPage
Public Functions
-
virtual VolumeDataPageAccessor &GetVolumeDataPageAccessor() const = 0
-
virtual void GetMinMax(int (&min)[Dimensionality_Max], int (&max)[Dimensionality_Max]) const = 0
-
virtual void GetMinMaxExcludingMargin(int (&minExcludingMargin)[Dimensionality_Max], int (&maxExcludingMargin)[Dimensionality_Max]) const = 0
-
virtual ReadErrorException GetError() const = 0
-
virtual const void *GetBuffer(int (&size)[Dimensionality_Max], int (&pitch)[Dimensionality_Max]) = 0
-
inline const void *GetBuffer(int (&pitch)[Dimensionality_Max])
-
virtual void *GetWritableBuffer(int (&size)[Dimensionality_Max], int (&pitch)[Dimensionality_Max]) = 0
-
inline void *GetWritableBuffer(int (&pitch)[Dimensionality_Max])
-
virtual void UpdateWrittenRegion(const int (&writtenMin)[Dimensionality_Max], const int (&writtenMax)[Dimensionality_Max]) = 0
-
virtual void Release() = 0
-
virtual VolumeDataPageAccessor &GetVolumeDataPageAccessor() const = 0
-
class VolumeDataPageAccessor
Public Types
-
enum AccessMode
Values:
-
enumerator AccessMode_ReadOnly
The volume data page accessor will only be used for reading.
-
enumerator AccessMode_ReadWrite
The volume data page accessor will be used for reading and writing (can only be used with LOD 0, the other LODs will be automatically updated)
-
enumerator AccessMode_Create
The volume data page accessor will be used to write new data, overwriting any existing data (can only be used with LOD 0, the other LODs will be automatically created)
-
enumerator AccessMode_CreateWithoutLODGeneration
The volume data page accessor will be used to write new data, overwriting any existing data (each LOD has to be created separately)
-
enumerator AccessMode_ReadWriteWithoutLODGeneration
The volume data page accessor will be used used for reading and writing (each LOD has to be created separately)
-
enumerator AccessMode_ReadOnly
Public Functions
-
virtual VolumeDataLayout const *GetLayout() const = 0
-
virtual int GetLOD() const = 0
-
virtual int GetChannelIndex() const = 0
-
virtual VolumeDataChannelDescriptor GetChannelDescriptor() const = 0
-
virtual void GetNumSamples(int (&numSamples)[Dimensionality_Max]) const = 0
-
virtual int64_t GetChunkCount() const = 0
-
virtual void GetChunkMinMax(int64_t chunk, int (&min)[Dimensionality_Max], int (&max)[Dimensionality_Max]) const = 0
-
virtual void GetChunkMinMaxExcludingMargin(int64_t chunk, int (&minExcludingMargin)[Dimensionality_Max], int (&maxExcludingMargin)[Dimensionality_Max]) const = 0
-
virtual uint64_t GetChunkVolumeDataHash(int64_t chunkIndex) const = 0
Get the volume data hash for the given chunk index. The value returned may be tested using the methods VolumeDataHash_IsDefined, VolumeDataHash_IsNoValue, and VolumeDataHash_IsConstant defined in VolumeData.h.
- Parameters:
chunkIndex – The chunk index to get the volume data hash for.
- Returns:
The volume data hash for the chunk.
-
virtual int64_t GetChunkIndex(const int (&position)[Dimensionality_Max]) const = 0
-
virtual int64_t GetMappedChunkIndex(int64_t primaryChannelChunkIndex) const = 0
Get the chunk index for this VolumeDataPageAccessor corresponding to the given chunk index in the primary channel. Because some channels can have mappings (e.g. one value per trace), the number of chunks can be less than in the primary channel and we need to have a mapping to figure out the chunk index in each channel that is produced together.
- Parameters:
primaryChannelChunkIndex – The index of the chunk in the primary channel (channel 0) that we want to map to a chunk index for this VolumeDataPageAccessor.
- Returns:
The chunk index for this VolumeDataPageAccessor corresponding to the given chunk index in the primary channel.
-
virtual int64_t GetPrimaryChannelChunkIndex(int64_t chunkIndex) const = 0
Get the primary channel chunk index corresponding to the given chunk index of this VolumeDataPageAccessor. In order to avoid creating duplicates requests when a channel is mapped, we need to know which primary channel chunk index is representative of a particular mapped chunk index.
- Parameters:
chunkIndex – The chunk index for this VolumeDataPageAccessor that we want the representative primary channel chunk index of.
- Returns:
The primary channel chunk index corresponding to the given chunk index for this VolumeDataPageAccessor.
-
virtual int64_t GetSuperChunkCount() const = 0
Get the number of super-chunks for this VolumeDataPageAccessor. Each super-chunk is an overlapping block of chunks from the remap source of this VolumeDataPageAccessor and the chunks in this VolumeDataPageAccessor. In order to produce the chunks as efficiently as possible (if there are more chunks than super-chunks), any code that iterates over all the chunks of a page accessor should iterate over the super-chunks and then over the chunks within each super-chunk.
- Returns:
The number of super-chunks for this VolumeDataPageAccessor.
-
inline std::vector<int64_t> GetChunkIndicesInSuperChunk(int64_t superChunkIndex) const
Get the list of chunks in the given super-chunk. Each super-chunk is an overlapping block of chunks from the remap source of this VolumeDataPageAccessor and the chunks in this VolumeDataPageAccessor. In order to produce the chunks as efficiently as possible (if there are more chunks than super-chunks), any code that iterates over all the chunks of a page accessor should iterate over the super-chunks and then over the chunks within each super-chunk.
- Parameters:
superChunkIndex – The super-chunk index for this VolumeDataPageAccessor that we want the list of chunks in.
- Returns:
The list of chunks in the super-chunk
-
virtual int AddReference() = 0
-
virtual int RemoveReference() = 0
-
virtual int GetMaxPages() = 0
-
virtual void SetMaxPages(int maxPages) = 0
-
virtual VolumeDataPage *CreatePage(int64_t chunkIndex) = 0
-
virtual void CopyPage(int64_t chunkIndex, VolumeDataPageAccessor const &source) = 0
Copy a page of data from another VolumeDataPageAccessor with a compatible layout. This method is not blocking so if you want to access the copied data you need to call ReadPage which will block until the copy is done and return the copied data.
- Parameters:
chunkIndex – The chunk index to copy
source – The VolumeDataPageAccessor to copy data from
-
virtual VolumeDataPage *ReadPage(int64_t chunkIndex) = 0
-
virtual VolumeDataPage *ReadPageAtPosition(const int (&position)[Dimensionality_Max]) = 0
-
virtual void Commit() = 0
-
enum AccessMode
-
template<typename INDEX, typename T>
class VolumeDataReadAccessor - #include <VolumeDataAccess.h>
A class that provides random read access to the voxel values of a VDS.
Subclassed by OpenVDS::VolumeDataReadWriteAccessor< INDEX, T >
Public Functions
-
inline VolumeDataLayout const *GetLayout() const
-
inline int64_t RegionCount() const
-
inline IndexRegion<INDEX> Region(int64_t region) const
-
inline int64_t RegionFromIndex(INDEX index)
-
inline IndexRegion<INDEX> CurrentRegion() const
-
inline VolumeDataReadAccessor()
-
inline VolumeDataReadAccessor(IVolumeDataReadAccessor<INDEX, T> *accessor)
-
inline VolumeDataReadAccessor(VolumeDataReadAccessor const &readAccessor)
-
inline ~VolumeDataReadAccessor()
-
inline VolumeDataLayout const *GetLayout() const
-
template<typename INDEX, typename T>
class VolumeDataReadWriteAccessor : public OpenVDS::VolumeDataReadAccessor<INDEX, T> - #include <VolumeDataAccess.h>
A class that provides random read/write access to the voxel values of a VDS.
Public Functions
-
inline void Commit()
-
inline void Cancel()
-
inline VolumeDataReadWriteAccessor()
-
inline VolumeDataReadWriteAccessor(IVolumeDataReadWriteAccessor<INDEX, T> *accessor)
-
inline VolumeDataReadWriteAccessor(VolumeDataReadWriteAccessor const &readWriteAccessor)
-
inline void Commit()
-
class VolumeDataRequest
- #include <VolumeDataAccessManager.h>
A VolumeDataRequest encapsulates an asynchronous request for volume data from a VDS object instance.
When created by a VolumeDataAccessManager a VolumeDataRequest will be active. The request remains active until either IsCompleted(), IsCanceled() or WaitForCompletion() returns true.
It is supported to access a VolumeDataRequest from a different thread than where it was created, but concurrent access to the same instance from multiple threads can result in race conditions.
Subclassed by OpenVDS::VolumeDataRequest_t< VALUETYPE >
Public Functions
-
inline VolumeDataRequest()
-
inline VolumeDataRequest(IVolumeDataAccessManager *manager)
-
inline VolumeDataRequest(IVolumeDataAccessManager *manager, void *buffer, int64_t bufferByteSize, VolumeDataFormat bufferDataType)
-
inline VolumeDataRequest(IVolumeDataAccessManager *manager, int64_t bufferByteSize, VolumeDataFormat bufferDataType)
-
inline virtual ~VolumeDataRequest()
Destructor will automatically cancel the request if it is still active.
-
inline void ValidateRequest()
Check if the request object is valid. Throws an InvalidOperation exception if the request object is not valid.
-
inline int64_t RequestID() const
Get the ID of the request.
- Returns:
The ID of the request.
-
inline bool IsCompleted()
Check if the request completed successfully. If the request completed, the buffer now contains valid data.
- Returns:
The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns true.
-
inline bool IsCanceled()
Check if the request was canceled (e.g. the VDS was invalidated before the request was processed). If the request was canceled, the buffer does not contain valid data.
- Returns:
The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns true.
-
inline bool WaitForCompletion(int millisecondsBeforeTimeout = 0)
Wait for the VolumeDataRequest to complete successfully. If the request completed, the buffer now contains valid data.
- Parameters:
millisecondsBeforeTimeout – The number of milliseconds to wait before timing out (optional). A value of 0 indicates there is no timeout and we will wait for however long it takes. Note that the request is not automatically canceled if the wait times out, you can also use this mechanism to e.g. update a progress bar while waiting. If you want to cancel the request you have to explicitly call CancelRequest() and then wait for the request to stop writing to the buffer.
- Returns:
The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns true. Whenever WaitForCompletion returns false you need to call IsCanceled() to know if that was because of a timeout or if the request was canceled.
-
inline void Cancel()
Try to cancel the request. You still have to call WaitForCompletion/IsCanceled to make sure the buffer is not being written to and to take the job out of the system. It is possible that the request has completed concurrently with the call to Cancel in which case WaitForCompletion will return true.
-
inline void CancelAndWaitForCompletion()
Cancel the request and wait for it to complete. This call will block until the request has completed so you can be sure the buffer is not being written to and the job is taken out of the system.
-
inline int GetErrorCode()
Get the error code of a request that has been cancelled.
- Returns:
The error code. If the error code is positive, it corresponds to the enum values in Hue::HueSpaceLib::ErrorCode. Compute plugins may set their own negative error code, which causes the return value of this method to be a plain int value that does not correspond to one of the enum values.
-
inline std::string GetErrorMessage()
Get the error string of a request that has been cancelled.
- Returns:
The error string.
-
inline float GetCompletionFactor()
Get the completion factor (between 0 and 1) of the request.
- Returns:
A factor (between 0 and 1) indicating how much of the request has been completed.
-
inline void *Buffer() const
Get the pointer to the buffer the request is writing to.
- Returns:
The pointer to the buffer the request is writing to.
-
inline int64_t BufferByteSize() const
Get the size of the buffer the request is writing to.
- Returns:
The size of the buffer the request is writing to.
-
inline VolumeDataFormat BufferDataType() const
Get the volume data format of the buffer the request is writing to.
- Returns:
The volume data format of the buffer the request is writing to.
-
template<>
struct RequestFormat<double> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_R64
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_R64
-
template<>
struct RequestFormat<float> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_R32
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_R32
-
template<>
struct RequestFormat<uint16_t> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U16
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U16
-
template<>
struct RequestFormat<uint32_t> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U32
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U32
-
template<>
struct RequestFormat<uint64_t> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U64
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U64
-
template<>
struct RequestFormat<uint8_t> Public Static Attributes
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U8
-
static constexpr VolumeDataFormat format = VolumeDataFormat::Format_U8
-
inline VolumeDataRequest()
-
template<typename VALUETYPE>
class VolumeDataRequest_t : public OpenVDS::VolumeDataRequest Public Types
-
using element_t = VALUETYPE
-
using element_t = VALUETYPE
-
template<int N>
struct VolumeIndexerBase : public OpenVDS::VolumeIndexerData Public Functions
-
inline int GetDataBlockNumSamples(int iDimension) const
Gets the number of samples for a dimension in the DataBlock
- Parameters:
iDimension – the DataBlock dimension
- Returns:
the number of samples in the dimension
-
inline int GetLocalChunkNumSamples(int iDimension) const
Get the number of samples for a dimension in the volume
- Parameters:
iDimension – the volume dimension
- Returns:
the number of samples in the dimension
-
inline IntVector<N> LocalIndexToVoxelIndex(const IntVector<N> &iLocalIndex) const
Converts a local index to a voxel index
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the voxel index
-
inline FloatVector<N> LocalIndexToVoxelIndexFloat(const FloatVector<N> &iLocalIndex) const
Converts a float local index to a float voxel index
- Parameters:
iLocalIndex – the float local index to convert
- Returns:
the float voxel index
-
inline IntVector<N> LocalIndexToLocalChunkIndex(const IntVector<N> &iLocalIndex) const
Converts a local index to a local chunk index
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the local chunk index
-
inline IntVector<N> VoxelIndexToLocalIndex(const IntVector<N> &iVoxelIndex) const
Converts a voxel index to a local index
- Parameters:
iVoxelIndex – the voxel index to convert
- Returns:
the local index
-
inline FloatVector<N> VoxelIndexToLocalIndexFloat(const FloatVector<N> &iVoxelIndex) const
Converts a float voxel index to a float local index
- Parameters:
iVoxelIndex – the float voxel index to convert
- Returns:
the float local index
-
inline FloatVector<N> VoxelIndexToVolumeSamplerLocalIndex(const FloatVector<N> &iVoxelIndex) const
Converts a float voxel index to a volume sampler local index. The volume sampler works like OpenGL textures so the first sample starts at 0.5.
- Parameters:
iVoxelIndex – the float voxel index to convert
- Returns:
the float volume sampler local index
-
inline IntVector<N> VoxelIndexToLocalChunkIndex(const IntVector<N> &iVoxelIndex) const
Converts a voxel index to a local chunk index
- Parameters:
iVoxelIndex – the voxel index to convert
- Returns:
the local chunk index
-
inline IntVector<N> LocalChunkIndexToLocalIndex(const IntVector<N> &iLocalChunkIndex) const
Converts a local chunk index to a local index
- Parameters:
iLocalChunkIndex – the local chunk index to convert
- Returns:
the local index
-
inline IntVector<N> LocalChunkIndexToVoxelIndex(const IntVector<N> &iLocalChunkIndex) const
Converts a local chunk index to a voxel index
- Parameters:
iLocalChunkIndex – the local chunk index to convert
- Returns:
the local voxel index
-
inline int VoxelIndexToDataIndex(const IntVector<N> &iVoxelIndex) const
Converts a voxel index to a data index
- Parameters:
iVoxelIndex – the voxel index to convert
- Returns:
the buffer offset for the voxel index
-
inline int LocalIndexToDataIndex(const IntVector<N> &iLocalIndex) const
Converts a local index to a data index
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the buffer offset for the local index
-
inline int LocalChunkIndexToDataIndex(const IntVector<N> &iLocalChunkIndex) const
Converts a local chunk index to a data index
- Parameters:
iLocalChunkIndex – the local chunk index to convert
- Returns:
the buffer offset for the local chunk index
-
inline int VoxelIndexToBitDataIndex(const IntVector<N> &iVoxelIndex) const
Converts a voxel index to a bit data index
Used with the BitMask functions to read and write 1Bit data
See also
- Parameters:
iVoxelIndex – the voxel index to convert
- Returns:
the buffer offset (in number of bits) for the voxel index
-
inline int LocalIndexToBitDataIndex(const IntVector<N> &iLocalIndex) const
Converts a local index to a bit data index
Used with the BitMask functions to read and write 1Bit data
See also
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the buffer offset (in number of bits) for the local index
-
inline int LocalChunkIndexToBitDataIndex(const IntVector<N> &iLocalChunkIndex) const
Converts a local chunk index to a bit data index
Used with the BitMask functions to read and write 1Bit data
See also
- Parameters:
iLocalChunkIndex – the local chunk index to convert
- Returns:
the buffer offset (in number of bits) for the local chunk index
-
inline unsigned char BitMaskFromLocalIndex(const IntVector<N> &iLocalIndex) const
Gets the bit mask for a local index
Used with the BitDataIndex functions to read and write 1Bit data
Common usage:
bool bit = buffer[LocalIndexToBitDataIndex(iLocalIndex) / 8] & BitMaskFromLocalIndex(iLocalIndex) != 0;
See also
- Parameters:
iLocalIndex – the local index to compute the mask from
- Returns:
the bit mask for the local index
-
inline unsigned char BitMaskFromVoxelIndex(const IntVector<N> &iVoxelIndex) const
Gets the bit mask for a voxel index
Used with the BitDataIndex functions to read and write 1Bit data
Common usage:
bool bit = buffer[VoxelIndexToBitDataIndex(iVoxelIndex) / 8] & BitMaskFromVoxelIndex(iVoxelIndex) != 0;
See also
- Parameters:
iVoxelIndex – the voxel index to compute the mask from
- Returns:
the bit mask for the voxel index
-
inline unsigned char BitMaskFromLocalChunkIndex(const IntVector<N> &iLocalChunkIndex) const
Gets the bit mask for a local chunk index
Used with the BitDataIndex functions to read and write 1Bit data
Common usage:
bool bit = buffer[LocalChunkIndexToBitDataIndex(iLocalChunkIndex) / 8] & BitMaskFromLocalChunkIndex(iLocalChunkIndex) != 0;
See also
- Parameters:
iLocalChunkIndex – the local index to compute the mask from
- Returns:
the bit mask for the local chunk index
-
inline bool BitValueFromLocalIndex(const unsigned char *data, const IntVector<N> &iLocalIndex) const
Convenience function for reading the bit value from a 1Bit DataBlock buffer at a local index
See also
See also
- Parameters:
data – the 1Bit buffer to read
iLocalIndex – the local index to read
- Returns:
the binary value read
-
inline bool BitValueFromVoxelIndex(const unsigned char *data, const IntVector<N> &iVoxelIndex) const
Convenience function for reading the bit value from a 1Bit DataBlock buffer at a voxel index
See also
See also
- Parameters:
data – the 1Bit buffer to read
iVoxelIndex – the voxel index to read
- Returns:
the binary value read
-
inline bool BitValueFromLocalChunkIndex(const unsigned char *data, const IntVector<N> &iLocalChunkIndex) const
Convenience function for reading the bit value from a 1Bit DataBlock buffer at a local chunk index
See also
See also
- Parameters:
data – the 1Bit buffer to read
iLocalChunkIndex – the local chunk index to read
- Returns:
the binary value read
-
inline bool VoxelIndexInProcessArea(const IntVector<N> &iVoxelIndex) const
Checks if a voxel index is within the chunk this indexer was created with
- Parameters:
iVoxelIndex – the voxel index to check
- Returns:
true if the index is within this chunk, false otherwise
-
inline bool LocalIndexInProcessArea(const IntVector<N> &iLocalIndex) const
Checks if a local index is within the DataBlock this indexer was created with
- Parameters:
iLocalIndex – the local index to check
- Returns:
true if the index is within this chunk, false otherwise
-
inline bool LocalChunkIndexInProcessArea(const IntVector<N> &iLocalChunkIndex) const
Checks if a local chunk index is within the chunk this indexer was created with
- Parameters:
iLocalChunkIndex – the local chunk index to check
- Returns:
true if the index is within this chunk, false otherwise
-
inline float GetCoordinateStep(int iDimension) const
Gets the coordinate step for the given volume dimension at LOD 0
- Parameters:
iDimension – the volume dimension
- Returns:
the coordinate step at LOD 0
-
inline FloatVector<N> LocalIndexToCoordinate(const IntVector<N> &iLocalIndex) const
Converts a local index to coordinates
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the coordinates
-
inline float VoxelIndexToCoordinate(int iVoxelIndex, int iDimension) const
Converts a voxel index for a specific volume dimension to a coordinate value
- Parameters:
iVoxelIndex – the voxel index to convert
iDimension – the volume dimension
- Returns:
the coordinate
-
inline float VoxelIndexFloatToCoordinate(float rVoxelIndex, int iDimension) const
Converts a float voxel index for a specific volume dimension to a coordinate value
- Parameters:
rVoxelIndex – the voxel index to convert
iDimension – the volume dimension
- Returns:
the coordinate
-
inline IntVector<N> CoordinateToLocalIndex(const FloatVector<N> &rCoordinate) const
Converts coordinates to a local index, rounding to the nearest integer
- Parameters:
rCoordinate – the coordinates to convert
- Returns:
the local index
-
inline FloatVector<N> CoordinateToLocalIndexFloat(const FloatVector<N> &rCoordinate) const
Converts coordinates to a float local index without rounding
- Parameters:
rCoordinate – the coordinates to convert
- Returns:
the float local index
-
inline FloatVector<N> CoordinateToVolumeSamplerLocalIndex(const FloatVector<N> &rCoordinate) const
Converts coordinates to a volume sampler local index. The volume sampler works like OpenGL textures so the first sample starts at 0.5.
- Parameters:
rCoordinate – the coordinates to convert
- Returns:
the float volume sampler local index
-
inline int CoordinateToVoxelIndex(float rCoordinate, int iDimension) const
Converts a coordinate for a specific volume dimension to a voxel index, rounding to the nearest integer
- Parameters:
rCoordinate – the coordinate to convert
iDimension – the volume dimension
- Returns:
the voxel index
-
inline float CoordinateToVoxelIndexFloat(float rCoordinate, int iDimension) const
Converts a coordinate for a specific volume dimension to a float voxel index without rounding
- Parameters:
rCoordinate – the coordinate to convert
iDimension – the volume dimension
- Returns:
the float voxel index
-
inline FloatVector<N> LocalIndexToRelativeAxisPosition(const IntVector<N> &iLocalIndex) const
Converts a local index to a relative position (between 0 and 1) along the volume axes
- Parameters:
iLocalIndex – the local index to convert
- Returns:
the relative position along volume axes
-
inline IntVector<N> RelativeAxisPositionToLocalIndex(const FloatVector<N> &rPosition) const
Converts a relative position along the volume axes to a local index
- Parameters:
rPosition – the relative postion to convert
- Returns:
the local index
-
inline float VoxelIndexToRelativeAxisPosition(int iVoxelIndex, int iDimension) const
Converts a voxel index for a specific dimension to a relative position (between 0 and 1) along a volume axis
- Parameters:
iVoxelIndex – the voxel index to convert
iDimension – the volume dimension
- Returns:
the relative position along the iDimension axis
-
inline int RelativeAxisPositionToVoxelIndex(float rPosition, int iDimension) const
Converts a relative volume axis position to a voxel index, rounding to the nears integer
- Parameters:
rPosition – the axis position
iDimension – the volume dimension
- Returns:
the voxel index
-
inline FloatVector<3> VoxelIndexToWorldCoordinates(const IntVector<N> &iVoxelIndex, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts a voxel index to world coordinates using the coordinate transformer’s IJK grid definition and IJK dimension map
- Parameters:
iVoxelIndex – the voxel index to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the world coordinates
-
inline FloatVector<3> VoxelIndexToWorldCoordinates(const FloatVector<N> &rVoxelIndex, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts a float voxel index to world coordinates using the coordinate transformer’s IJK grid definition and IJK dimension map
- Parameters:
rVoxelIndex – the float voxel index to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the world coordinates
-
inline IntVector<N> WorldCoordinatesToVoxelIndex(const FloatVector<3> &rWorldCoords, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts world coordinates to a voxel index, rounding to the nearest integer
- Parameters:
rWorldCoords – the world coordinates to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the voxel index
-
inline FloatVector<N> WorldCoordinatesToVoxelIndexFloat(const FloatVector<3> &rWorldCoords, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts world coordinates to a float voxel index without rounding
- Parameters:
rWorldCoords – the world coordinates to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the float voxel index
-
inline FloatVector<3> LocalIndexToWorldCoordinates(const IntVector<N> &iLocalIndex, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts a local index to world coordinates using the coordinate transformer’s IJK grid definition and IJK dimension map
- Parameters:
iLocalIndex – the local index to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the world coordinates
-
inline IntVector<N> WorldCoordinatesToLocalIndex(const FloatVector<3> &rWorldCoords, const VDSCoordinateTransformerBase<N> &cVDSCoordinateTransformer) const
Converts world coordinates to a local index, rounding to the nearest integer
- Parameters:
rWorldCoords – the world coordinates to convert
cVDSCoordinateTransformer – the coordinate transformer to use
- Returns:
the local index
-
inline VolumeIndexerBase()
-
inline VolumeIndexerBase(const VolumeDataPage *page, int32_t channelIndex, int32_t lod, DimensionsND dimensions, const VolumeDataLayout *layout)
Public Static Functions
-
static inline unsigned char BitMaskFromBitDataIndex(int iBitDataIndex)
Gets the bit mask for a bit data index
Used with the BitDataIndex functions to read and write 1Bit data
Common usage:
bool bit = buffer[iBitDataIndex >> 3] &
BitMaskFromBitDataIndex(iBitDataIndex) != 0;- Parameters:
iBitDataIndex – the local index to compute the mask from
- Returns:
the bit mask for the local index
-
static inline bool BitValueFromBitDataIndex(const unsigned char *data, int iBitDataIndex)
Convenience function for reading the bit value from a 1Bit DataBlock buffer at a local index
See also
- Parameters:
data – the 1Bit buffer to read
iBitDataIndex – the bit index to read
- Returns:
the binary value read
-
static inline VolumeIndexerBase<N> CreateTempBufferIndexer(int (&anVoxelMin)[6], int (&anVoxelMax)[6], int iLOD = 0)
Creates an indexer for a temp buffer from voxel minimum and maximums.
- Parameters:
anVoxelMin – voxel minimum for this indexer
anVoxelMax – voxel maximum for this indexer
iLOD – the LOD for this indexer
- Returns:
the created indexer
-
static inline VolumeIndexerBase<N> CreateTempBufferIndexer(const VolumeIndexerBase<N> &indexer)
Create a temp buffer indexer with the same area and configuration as another indexer.
- Parameters:
indexer – the indexer to copy configuration and area from
- Returns:
the created indexer
-
static inline VolumeIndexerBase<N> CreateTempBufferIndexer(const VolumeIndexerBase<N> &indexer, int anNewVoxelMin[6], int anNewVoxelMax[6])
Create a temp buffer indexer with the same configuration as another indexer, but a new voxel min and max
- Parameters:
indexer – the indexer to copy configuration from
anNewVoxelMin – the voxel minimum for the created indexer
anNewVoxleMax – the voxel maximum for the created indexer
- Returns:
the created indexer
-
inline int GetDataBlockNumSamples(int iDimension) const
-
struct VolumeIndexerData
Subclassed by OpenVDS::VolumeIndexerBase< N >
Public Functions
-
inline VolumeIndexerData()
-
VolumeIndexerData(const VolumeDataPage *page, int32_t channelIndex, int32_t lod, DimensionsND dimensions, const VolumeDataLayout *layout)
Public Members
-
int32_t voxelMin[Dimensionality_Max]
Minimum voxel range in volume dimensions.
-
int32_t voxelMax[Dimensionality_Max]
Maximum voxel range in volume dimensions.
-
int32_t localChunkSamples[Dimensionality_Max]
Number of samples in volume dimensions.
-
int32_t localChunkAllocatedSize[Dimensionality_Max]
Allocated size of buffer in volume dimensions.
-
int32_t pitch[Dimensionality_Max]
Pitch for buffer in volume dimensions.
-
int32_t bitPitch[Dimensionality_Max]
Pitch for bits in volume dimensions.
-
int32_t dataBlockSamples[DataBlockDimensionality_Max]
Number of sample in DataBlock dimensions.
-
int32_t dataBlockAllocatedSize[DataBlockDimensionality_Max]
Allocated size of buffer in DataBlock dimensions.
-
int32_t dataBlockPitch[DataBlockDimensionality_Max]
Pitch for buffer in DataBlock dimensions.
-
int32_t dataBlockBitPitch[DataBlockDimensionality_Max]
Pitch for bits in DataBlock dimensions.
-
int32_t dimensionMap[DataBlockDimensionality_Max]
Map from DataBlock dimensions to volume dimensions.
-
int32_t lod
Level of Detail for data being indexed.
-
bool isDimensionLODDecimated[Dimensionality_Max]
Indicates if a volume dimension is decimated with the LOD or not.
-
float coordinateMin[Dimensionality_Max]
Minimum coordinates in volume dimensions.
-
float coordinateMax[Dimensionality_Max]
Maximum coordinates in volume dimensions.
-
int axisNumSamples[Dimensionality_Max]
Total number of samples in volume dimensions for whole volume (not just this chunk)
-
float valueRangeMin
The value range minimum for the volume.
-
float valueRangeMax
The value range maximum for the volume.
Public Static Attributes
-
static constexpr int DataBlockDimensionality_Max = 4
-
inline VolumeIndexerData()
-
template<typename T, InterpolationMethod INTERPMETHOD, bool ISUSENOVALUE>
class VolumeSampler Public Functions
-
inline VolumeSampler()
-
inline VolumeSampler(const int (&anSize)[DataBlockDimensionality_Max], const int (&anPitch)[DataBlockDimensionality_Max], float rangeMin, float rangeMax, float integerScale, float integerOffset, float noValalue, float replacementNoValue)
- Parameters:
anSize – the (at least 3D) size of the buffer to be sampled
anPitch – the (at least 3D) pitch of the buffer to be sampled
rangeMin – the value range minimum of the data to be sampled
rangemax – the value range maximum of the data to be sampled
noValalue – the no value for the data to be sampled
replacementNoValue – the value to replace any NoValues with
-
inline TREAL Sample3D(const T *ptBuffer, FloatVector3 localIndex) const
Sample the given buffer at the the given 3D index
The returned TREAL type is double when T is double, int32, or int64 and float for all other types
- Parameters:
ptBuffer – pointer to the buffer to be samples
localIndex – the local 3D index into the buffer
- Returns:
a TREAL sampled using the ::InterpolationType at the given index
-
inline bool IsHeightValid(T tHeight) const
-
inline TREAL Sample2D(const T *ptBuffer, FloatVector2 localIndex) const
Sample the given buffer at the the given 2D index
The returned TREAL type is double when T is double, int32, or int64 and float for all other types
- Parameters:
ptBuffer – pointer to the buffer to be samples
localIndex – the local 2D index into the buffer
- Returns:
a TREAL sampled using the ::InterpolationType at the given index
Public Static Attributes
-
static constexpr int DataBlockDimensionality_Max = 4
-
inline VolumeSampler()
-
struct WaveletAdaptiveLevel
- #include <OpenVDS.h>
Description of an available level of wavelet compression.
Public Functions
-
inline WaveletAdaptiveLevel()
-
inline WaveletAdaptiveLevel(float compressionTolerance, float compressionRatio, int64_t compressedSize)
Public Members
-
float compressionTolerance
Compression tolerance of the wavelet adaptive level.
-
float compressionRatio
Compression ratio (uncompressed size / compressed size) of the wavelet adaptive level.
-
int64_t compressedSize
Compressed size of the wavelet adaptive level.
-
inline WaveletAdaptiveLevel()
-
typedef VDSCoordinateTransformerBase<2> VDSCoordinateTransformer2D