34#ifndef CARTODATA_VOLUME_VOLUMEOPERATORS_H
35#define CARTODATA_VOLUME_VOLUMEOPERATORS_H
46 template <
typename T>
inline
53 template <
typename T>
inline
60 template <
typename T>
inline
68 template <
typename T>
inline
75 template <
typename T>
inline
83 template <
typename T>
inline
90 template <
typename T>
inline
98 template <
typename T>
inline
105 template <
typename T>
inline
113 template <
typename T>
inline
118 ( val, std::plus<T>() ), o1 );
122 template <
typename T>
inline
127 ( val, std::plus<T>() ), o1 );
131 template <
typename T>
inline
135 ( val, std::plus<T>() ), o1 );
140 template <
typename T>
inline
145 ( val, std::minus<T>() ), o1 );
149 template <
typename T>
inline
154 ( val, std::minus<T>() ), o1 );
158 template <
typename T>
inline
162 ( val, std::minus<T>() ), o1 );
167 template <
typename T,
typename U>
inline
174 template <
typename T,
typename U>
inline
181 template <
typename T,
typename U>
inline
189 template <
typename T,
typename U>
inline
196 template <
typename T>
inline
201 ( val, std::divides<T>() ), o1 );
205 template <
typename T,
typename U>
inline
Convenient handle for a Volume - this is normally the entry point for all volumes handling.
static void selfApply(UnaryFunction f, VolumeRef< T > &o)
applies a binary function to each voxel of a pair of volumes
static VolumeRef< T > apply(UnaryFunction f, const VolumeRef< T > &o)
applies a unary function to each voxel of a volume
VoxelRGB operator/(const VoxelRGB &aa, const uint8_t &bb)
VoxelRGB operator+(const VoxelRGB &aa, const VoxelRGB &bb)
carto::Volume< T > & operator/=(carto::Volume< T > &vol, const U &value)
VoxelRGB operator-(const VoxelRGB &aa, const VoxelRGB &bb)
VoxelRGB operator*(const VoxelRGB &aa, const uint8_t &bb)
carto::Volume< T > & operator+=(carto::Volume< T > &vol, const U &value)
carto::Volume< T > & operator*=(carto::Volume< T > &vol, const U &value)
carto::Volume< T > & operator-=(carto::Volume< T > &vol, const U &value)