11#ifndef PBAT_GPU_COMMON_BUFFER_H
12#define PBAT_GPU_COMMON_BUFFER_H
14#include "PhysicsBasedAnimationToolkitExport.h"
30 enum class EType { uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, float64 };
35 Eigen::Ref<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>
const>;
181 PBAT_API std::size_t
Size()
const;
197 PBAT_API
void*
Impl();
202 PBAT_API
void const*
Impl()
const;
1- or 2-dimensional GPU buffer of numeric types
Definition Buffer.h:25
static auto constexpr kMaxDims
Maximum number of dimensions.
Definition Buffer.h:31
PBAT_API Buffer(Data< std::int8_t > const &data)
Construct a new Buffer object from input data.
PBAT_API std::size_t Size() const
Get the number of elements per dimension in the buffer (i.e. columns)
Definition Buffer.cu:129
PBAT_API Buffer(Data< std::uint16_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer(Data< double > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer(Data< std::uint64_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer(Data< std::int32_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer(Data< std::int16_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer & operator=(Data< std::int64_t > const &data)
Copy assignment operator.
PBAT_API EType Type() const
Get the type of the buffer elements.
Definition Buffer.cu:104
PBAT_API void * Impl()
Get handle to the buffer implementation.
Definition Buffer.cu:217
PBAT_API Buffer & operator=(Data< std::uint64_t > const &data)
Copy assignment operator.
PBAT_API Buffer & operator=(Data< std::int32_t > const &data)
Copy assignment operator.
PBAT_API void Resize(GpuIndex n)
Resize the buffer to n elements per dimension.
Definition Buffer.cu:156
PBAT_API Buffer(GpuIndex dims, GpuIndex n, EType type)
Construct a new Buffer object of dims rows, n columns, and element type type.
Definition Buffer.cu:19
PBAT_API Buffer(Data< std::uint8_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer & operator=(Data< std::uint16_t > const &data)
Copy assignment operator.
PBAT_API Buffer(Data< std::uint32_t > const &data)
Construct a new Buffer object from input data.
EType
Type of the buffer elements.
Definition Buffer.h:30
PBAT_API Buffer(Data< std::int64_t > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer & operator=(Data< std::uint8_t > const &data)
Copy assignment operator.
GpuIndex Dims() const
Get the number of dimensions (i.e. rows) of the buffer.
Definition Buffer.h:171
PBAT_API Buffer(Data< float > const &data)
Construct a new Buffer object from input data.
PBAT_API Buffer & operator=(Data< float > const &data)
Copy assignment operator.
PBAT_API Buffer & operator=(Data< std::int8_t > const &data)
Copy assignment operator.
PBAT_API Buffer & operator=(Data< std::uint32_t > const &data)
Copy assignment operator.
Eigen::Ref< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > const > Data
Input data type.
Definition Buffer.h:34
PBAT_API Buffer & operator=(Data< double > const &data)
Copy assignment operator.
PBAT_API Buffer & operator=(Data< std::int16_t > const &data)
Copy assignment operator.
Type aliases for GPU code.
Public API to core GPU utilities.
Definition Buffer.cu:17
std::int32_t GpuIndex
Index type for GPU code.
Definition Aliases.h:20