cgv
Loading...
Searching...
No Matches
cgv::data::data_view_impl< D, P > Class Template Reference

template class implementing the part of the view that depends on whether the pointer is const or not and manages the data pointer itself. More...

#include <data_view.h>

Inheritance diagram for cgv::data::data_view_impl< D, P >:
cgv::data::data_view_base

Public Member Functions

 data_view_impl (const data_format *_format=0, typename cgv::type::func::transfer_const< P, void * >::type _data_ptr=0)
 construct a data view from the given format, viewing the complete data set
 
bool empty () const
 return whether the data pointer is a null pointer
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type get_ptr () const
 return a data pointer to type S
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type get_ptr (size_t i) const
 return a pointer to type S for i-th data entry
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type get_ptr (size_t i, size_t j) const
 return a pointer to type S for (i,j)-th data entry
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type get_ptr (size_t i, size_t j, size_t k) const
 return a pointer to type S for (i,j,k)-th data entry
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type get_ptr (size_t i, size_t j, size_t k, size_t l) const
 return a pointer to type S for (i,j,k,l)-th data entry
 
template<typename S >
get (unsigned ci) const
 constant access to the ci-th component
 
template<typename S >
get (unsigned ci, size_t i) const
 constant access to the ci-th component of i-th data entry
 
template<typename S >
get (unsigned ci, size_t i, size_t j) const
 constant access to the ci-th component of (i,j)-th data entry
 
template<typename S >
get (unsigned ci, size_t i, size_t j, size_t k) const
 constant access to the ci-th component of (i,j,k)-th data entry
 
template<typename S >
get (unsigned ci, size_t i, size_t j, size_t k, size_t l) const
 constant access to the ci-th component of (i,j,k,l)-th data entry
 
operator() (size_t i) const
 access to i-th data entry
 
operator() (size_t i, size_t j) const
 access to entry at (i,j)
 
operator() (size_t i, size_t j, size_t k) const
 access to entry at (i,j,k)
 
operator() (size_t i, size_t j, size_t k, size_t l) const
 access to entry at (i,j,k,l)
 
permute (const std::string &permutation) const
 permute the order of the indices, where the permutation argument "kji" implies that after the permutation the operator (i,j,k) returns the same as the operator (k,j,i) before the call to permute.
 
transpose () const
 transpose is equivalent to permute("ji")
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type step_i (S *ptr, std::ptrdiff_t n=1) const
 return a pointer that points to the n-th next location if index i is increase by n
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type step_j (S *ptr, std::ptrdiff_t n=1) const
 return a pointer that points to the n-th next location if index j is increase by n
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type step_k (S *ptr, std::ptrdiff_t n=1) const
 return a pointer that points to the n-th next location if index k is increase by n
 
template<typename S >
cgv::type::func::transfer_const< P, S * >::type step_l (S *ptr, std::ptrdiff_t n=1) const
 return a pointer that points to the n-th next location if index l is increase by n
 
- Public Member Functions inherited from cgv::data::data_view_base
 data_view_base (const data_format *_format=0)
 construct the base of a data view from the given format, such that the step sizes and dimension are set to view the complete data set defined in the format.
 
virtual ~data_view_base ()
 delete format if it is owned
 
void manage_format (bool enable=true)
 whether to manage the data format pointer
 
const data_formatget_format () const
 return the component format
 
void set_format (const data_format *_format)
 set a new data format
 
unsigned int get_dim () const
 return the dimension of the data view, which is less or equal to the dimension of the data format
 
size_t get_step_size (unsigned int dim) const
 return the step size in bytes in the i-th dimension
 

Protected Member Functions

 data_view_impl (const data_format *_format, P _data_ptr, unsigned _dim, const size_t *_step_sizes)
 constructor used to construct sub views onto the data view
 
- Protected Member Functions inherited from cgv::data::data_view_base
 data_view_base (const data_format *_format, unsigned int _dim, const size_t *_step_sizes)
 constructor used to construct sub views onto the data view
 

Protected Attributes

data_ptr
 data pointer of type unsigned char or const unsigned char
 
- Protected Attributes inherited from cgv::data::data_view_base
const data_formatformat
 
bool owns_format
 whether to own the data format
 
unsigned int dim
 
size_t step_sizes [4]
 

Detailed Description

template<class D, typename P = unsigned char*>
class cgv::data::data_view_impl< D, P >

template class implementing the part of the view that depends on whether the pointer is const or not and manages the data pointer itself.

Definition at line 47 of file data_view.h.

Constructor & Destructor Documentation

◆ data_view_impl() [1/2]

template<class D , typename P >
cgv::data::data_view_impl< D, P >::data_view_impl ( const data_format _format,
_data_ptr,
unsigned  _dim,
const size_t *  _step_sizes 
)
protected

constructor used to construct sub views onto the data view

Definition at line 94 of file data_view.cxx.

◆ data_view_impl() [2/2]

template<class D , typename P >
cgv::data::data_view_impl< D, P >::data_view_impl ( const data_format _format = 0,
typename cgv::type::func::transfer_const< P, void * >::type  _data_ptr = 0 
)

construct a data view from the given format, viewing the complete data set

Definition at line 100 of file data_view.cxx.

Member Function Documentation

◆ empty()

◆ get() [1/5]

template<class D , typename P = unsigned char*>
template<typename S >
S cgv::data::data_view_impl< D, P >::get ( unsigned  ci) const
inline

constant access to the ci-th component

Definition at line 86 of file data_view.h.

Referenced by cgv::media::volume::volume::get_voxel_component(), and cgv::media::image::bmp_writer::write_image().

◆ get() [2/5]

template<class D , typename P = unsigned char*>
template<typename S >
S cgv::data::data_view_impl< D, P >::get ( unsigned  ci,
size_t  i 
) const
inline

constant access to the ci-th component of i-th data entry

Definition at line 90 of file data_view.h.

◆ get() [3/5]

template<class D , typename P = unsigned char*>
template<typename S >
S cgv::data::data_view_impl< D, P >::get ( unsigned  ci,
size_t  i,
size_t  j 
) const
inline

constant access to the ci-th component of (i,j)-th data entry

Definition at line 94 of file data_view.h.

◆ get() [4/5]

template<class D , typename P = unsigned char*>
template<typename S >
S cgv::data::data_view_impl< D, P >::get ( unsigned  ci,
size_t  i,
size_t  j,
size_t  k 
) const
inline

constant access to the ci-th component of (i,j,k)-th data entry

Definition at line 98 of file data_view.h.

◆ get() [5/5]

template<class D , typename P = unsigned char*>
template<typename S >
S cgv::data::data_view_impl< D, P >::get ( unsigned  ci,
size_t  i,
size_t  j,
size_t  k,
size_t  l 
) const
inline

constant access to the ci-th component of (i,j,k,l)-th data entry

Definition at line 102 of file data_view.h.

◆ get_ptr() [1/5]

◆ get_ptr() [2/5]

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::get_ptr ( size_t  i) const
inline

return a pointer to type S for i-th data entry

Definition at line 66 of file data_view.h.

◆ get_ptr() [3/5]

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::get_ptr ( size_t  i,
size_t  j 
) const
inline

return a pointer to type S for (i,j)-th data entry

Definition at line 71 of file data_view.h.

◆ get_ptr() [4/5]

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::get_ptr ( size_t  i,
size_t  j,
size_t  k 
) const
inline

return a pointer to type S for (i,j,k)-th data entry

Definition at line 76 of file data_view.h.

◆ get_ptr() [5/5]

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::get_ptr ( size_t  i,
size_t  j,
size_t  k,
size_t  l 
) const
inline

return a pointer to type S for (i,j,k,l)-th data entry

Definition at line 81 of file data_view.h.

◆ operator()() [1/4]

template<class D , typename P >
D cgv::data::data_view_impl< D, P >::operator() ( size_t  i) const

access to i-th data entry

Definition at line 111 of file data_view.cxx.

◆ operator()() [2/4]

template<class D , typename P >
D cgv::data::data_view_impl< D, P >::operator() ( size_t  i,
size_t  j 
) const

access to entry at (i,j)

Definition at line 121 of file data_view.cxx.

◆ operator()() [3/4]

template<class D , typename P >
D cgv::data::data_view_impl< D, P >::operator() ( size_t  i,
size_t  j,
size_t  k 
) const

access to entry at (i,j,k)

Definition at line 131 of file data_view.cxx.

◆ operator()() [4/4]

template<class D , typename P >
D cgv::data::data_view_impl< D, P >::operator() ( size_t  i,
size_t  j,
size_t  k,
size_t  l 
) const

access to entry at (i,j,k,l)

Definition at line 141 of file data_view.cxx.

◆ permute()

template<class D , typename P >
D cgv::data::data_view_impl< D, P >::permute ( const std::string &  permutation) const

permute the order of the indices, where the permutation argument "kji" implies that after the permutation the operator (i,j,k) returns the same as the operator (k,j,i) before the call to permute.

The permutation string must have at least two entries. If it has n entries it must contain each of the first n letters of "ijkl" exactly once, i.e. "ik" would be invalid, whereas "ikj" is a valid permutation.

Definition at line 151 of file data_view.cxx.

◆ step_i()

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::step_i ( S *  ptr,
std::ptrdiff_t  n = 1 
) const
inline

return a pointer that points to the n-th next location if index i is increase by n

Definition at line 126 of file data_view.h.

◆ step_j()

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::step_j ( S *  ptr,
std::ptrdiff_t  n = 1 
) const
inline

return a pointer that points to the n-th next location if index j is increase by n

Definition at line 130 of file data_view.h.

◆ step_k()

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::step_k ( S *  ptr,
std::ptrdiff_t  n = 1 
) const
inline

return a pointer that points to the n-th next location if index k is increase by n

Definition at line 134 of file data_view.h.

◆ step_l()

template<class D , typename P = unsigned char*>
template<typename S >
cgv::type::func::transfer_const< P, S * >::type cgv::data::data_view_impl< D, P >::step_l ( S *  ptr,
std::ptrdiff_t  n = 1 
) const
inline

return a pointer that points to the n-th next location if index l is increase by n

Definition at line 138 of file data_view.h.

◆ transpose()

template<class D , typename P = unsigned char*>
D cgv::data::data_view_impl< D, P >::transpose ( ) const
inline

transpose is equivalent to permute("ji")

Definition at line 121 of file data_view.h.

Member Data Documentation

◆ data_ptr

template<class D , typename P = unsigned char*>
P cgv::data::data_view_impl< D, P >::data_ptr
protected

data pointer of type unsigned char or const unsigned char

Definition at line 51 of file data_view.h.

Referenced by cgv::data::const_data_view::operator=(), and cgv::data::data_view::operator=().


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