PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
pbat::gpu::common::Buffer Class Reference

1- or 2-dimensional GPU buffer of numeric types More...

#include <Buffer.h>

Public Types

enum class  EType {
  uint8 , uint16 , uint32 , uint64 ,
  int8 , int16 , int32 , int64 ,
  float32 , float64
}
 Type of the buffer elements.
 
template<class T>
using Data
 Input data type.
 

Public Member Functions

PBAT_API Buffer (GpuIndex dims, GpuIndex n, EType type)
 Construct a new Buffer object of dims rows, n columns, and element type type.
 
 Buffer (const Buffer &other)=delete
 
Bufferoperator= (const Buffer &other)=delete
 
PBAT_API Buffer (Buffer &&other) noexcept
 Move constructor.
 
PBAT_API Bufferoperator= (Buffer &&other) noexcept
 Move assignment operator.
 
PBAT_API Buffer (Data< std::uint8_t > const &data)
 Construct a new Buffer object from input data.
 
PBAT_API Buffer (Data< std::uint16_t > const &data)
 Construct a new Buffer object from input data.
 
PBAT_API Buffer (Data< std::uint32_t > 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::int8_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 (Data< std::int32_t > const &data)
 Construct a new Buffer object from input data.
 
PBAT_API Buffer (Data< std::int64_t > const &data)
 Construct a new Buffer object from input data.
 
PBAT_API Buffer (Data< float > 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 Bufferoperator= (Data< std::uint8_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::uint16_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::uint32_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::uint64_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::int8_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::int16_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::int32_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< std::int64_t > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< float > const &data)
 Copy assignment operator.
 
PBAT_API Bufferoperator= (Data< double > const &data)
 Copy assignment operator.
 
GpuIndex Dims () const
 Get the number of dimensions (i.e. rows) of the buffer.
 
PBAT_API EType Type () const
 Get the type of the buffer elements.
 
PBAT_API std::size_t Size () const
 Get the number of elements per dimension in the buffer (i.e. columns)
 
PBAT_API void Resize (GpuIndex n)
 Resize the buffer to n elements per dimension.
 
PBAT_API void Resize (GpuIndex dims, GpuIndex n)
 Resize the buffer to dims rows and n columns.
 
PBAT_API void * Impl ()
 Get handle to the buffer implementation.
 
PBAT_API void const * Impl () const
 Get handle to the buffer implementation.
 

Static Public Attributes

static auto constexpr kMaxDims = 4
 Maximum number of dimensions.
 

Detailed Description

1- or 2-dimensional GPU buffer of numeric types

Member Typedef Documentation

◆ Data

template<class T>
using pbat::gpu::common::Buffer::Data
Initial value:
Eigen::Ref<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> const>

Input data type.

Constructor & Destructor Documentation

◆ Buffer() [1/12]

pbat::gpu::common::Buffer::Buffer ( GpuIndex dims,
GpuIndex n,
EType type )

Construct a new Buffer object of dims rows, n columns, and element type type.

Parameters
dimsNumber of rows
nNumber of columns
typeType of the elements

◆ Buffer() [2/12]

pbat::gpu::common::Buffer::Buffer ( Buffer && other)
noexcept

Move constructor.

Parameters
otherBuffer to move

◆ Buffer() [3/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::uint8_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [4/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::uint16_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [5/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::uint32_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [6/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::uint64_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [7/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::int8_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [8/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::int16_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [9/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::int32_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [10/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< std::int64_t > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [11/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< float > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

◆ Buffer() [12/12]

PBAT_API pbat::gpu::common::Buffer::Buffer ( Data< double > const & data)

Construct a new Buffer object from input data.

Parameters
dataInput data

Member Function Documentation

◆ Dims()

GpuIndex pbat::gpu::common::Buffer::Dims ( ) const
inline

Get the number of dimensions (i.e. rows) of the buffer.

Returns
Number of dimensions

◆ Impl() [1/2]

void * pbat::gpu::common::Buffer::Impl ( )

Get handle to the buffer implementation.

Returns
Pointer to Buffer implementation

◆ Impl() [2/2]

void const * pbat::gpu::common::Buffer::Impl ( ) const

Get handle to the buffer implementation.

Returns
Pointer to Buffer implementation

◆ operator=() [1/11]

Buffer & pbat::gpu::common::Buffer::operator= ( Buffer && other)
noexcept

Move assignment operator.

Parameters
otherBuffer to move
Returns
Reference to this buffer

◆ operator=() [2/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< double > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [3/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< float > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [4/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::int16_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [5/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::int32_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [6/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::int64_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [7/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::int8_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [8/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::uint16_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [9/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::uint32_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [10/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::uint64_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ operator=() [11/11]

PBAT_API Buffer & pbat::gpu::common::Buffer::operator= ( Data< std::uint8_t > const & data)

Copy assignment operator.

Parameters
dataInput data to copy
Returns
Reference to this buffer

◆ Resize() [1/2]

void pbat::gpu::common::Buffer::Resize ( GpuIndex dims,
GpuIndex n )

Resize the buffer to dims rows and n columns.

Parameters
dimsNumber of rows
nNumber of columns

◆ Resize() [2/2]

void pbat::gpu::common::Buffer::Resize ( GpuIndex n)

Resize the buffer to n elements per dimension.

Parameters
nNumber of elements per dimension

◆ Size()

std::size_t pbat::gpu::common::Buffer::Size ( ) const

Get the number of elements per dimension in the buffer (i.e. columns)

Returns
Number of elements per dimension

◆ Type()

Buffer::EType pbat::gpu::common::Buffer::Type ( ) const

Get the type of the buffer elements.

Returns
Type of the buffer elements

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