34 #ifndef CARTODATA_VOLUME_VOLUMEREF_D_INLINE_H 
   35 #define CARTODATA_VOLUME_VOLUMEREF_D_INLINE_H 
   65 #ifdef CARTO_VOLUME_AUTO_DEREFERENCE 
   72                            const AllocatorContext& allocatorContext,
 
   75                                        allocatorContext, allocated ) )
 
   80                            const AllocatorContext& allocatorContext,
 
   88                            const AllocatorContext& allocatorContext,
 
   91                                        allocatorContext, allocated ) )
 
   96                            const AllocatorContext& allocatorContext,
 
  101   template <
typename T>
 
  104                            const AllocatorContext& allocatorContext,
 
  107                                        allocatorContext, allocated ) )
 
  110   template <
typename T>
 
  113                            const AllocatorContext& allocatorContext,
 
  118   template <
typename T>
 
  122                            const AllocatorContext & allocContext ):
 
  126   template <
typename T>
 
  130                            const AllocatorContext & allocContext ):
 
  137   template <
typename T>
 
  141     return (*this)->getSize();
 
  144   template <
typename T>
 
  148     return (*this)->getSizeX();
 
  151   template <
typename T>
 
  155     return (*this)->getSizeY();
 
  158   template <
typename T>
 
  162     return (*this)->getSizeZ();
 
  165   template <
typename T>
 
  169     return (*this)->getSizeT();
 
  172   template <
typename T>
 
  176     return (*this)->header();
 
  179   template <
typename T>
 
  183     return (*this)->header();
 
  186   template <
typename T>
 
  190     return (*this)->header();
 
  193   template <
typename T>
 
  197     return (*this)->header();
 
  200   template <
typename T>
 
  204     return (*this)->getVoxelSize();
 
  207   template <
typename T>
 
  211     (*this)->setVoxelSize( vs );
 
  214   template <
typename T>
 
  218     (*this)->setVoxelSize( vx, vy, vz, vt );
 
  224   template <
typename T>
 
  228     return (*this)->begin();
 
  231   template <
typename T>
 
  235     return (*this)->end();
 
  238   template <
typename T>
 
  242     return (*this)->begin();
 
  245   template <
typename T>
 
  249     return (*this)->end();
 
  255   template <
typename T>
 
  259     return (**
this)( x, y, z, t );
 
  262   template <
typename T>
 
  266     return (**
this)( x, y, z, t );
 
  269   template <
typename T>
 
  273     return (*this)->at( x, y, z, t );
 
  276   template <
typename T>
 
  280     return (*this)->at( x, y, z, t );
 
  283   template <
typename T>
 
  287     return (**
this)(position);
 
  290   template <
typename T>
 
  294     return (**
this)(position);
 
  297   template <
typename T>
 
  301     return (*this)->at(position);
 
  304   template <
typename T>
 
  308     return (*this)->at(position);
 
  311   template <
typename T>
 
  315     return (**
this)(position);
 
  318   template <
typename T>
 
  322     return (**
this)(position);
 
  325   template <
typename T>
 
  329     return (*this)->at(position);
 
  332   template <
typename T>
 
  336     return (*this)->at(position);
 
  342   template <
typename T>
 
  346     (*this)->initialize();
 
  349   template <
typename T>
 
  353     return (*this)->allocatorContext();
 
  356   template <
typename T>
 
  363   template <
typename T>
 
  367                                  const AllocatorContext& allocatorContext,
 
  370     (*this)->reallocate( sizeX, sizeY, sizeZ, sizeT,
 
  371                          keepcontents, allocatorContext, allocate );
 
  375   template <
typename T>
 
  378                                  const AllocatorContext& allocatorContext,
 
  381     (*this)->reallocate( size, keepcontents, allocatorContext, allocate );
 
  390   template <
typename T>
 
  394     return (*this)->refVolume();
 
  397   template <
typename T>
 
  401     return (*this)->setRefVolume( refvol );
 
  404   template <
typename T>
 
  408     return (*this)->posInRefVolume();
 
  411   template <
typename T>
 
  415     return (*this)->setPosInRefVolume( pos );
 
  419   template <
typename T>
 
  422     return (*this)->getLevelsCount();
 
  425   template <
typename T>
 
  428     return (*this)->refLevel(level);
 
  431   template <
typename T>
 
  434     return (*this)->refVolumeAtLevel(level);
 
  437   template <
typename T>
 
  440       const int level)
 const {
 
  441     return (*this)->posInRefVolumeAtLevel(level);
 
  444   template <
typename T>
 
  448     return (*this)->getBorders();
 
  451   template <
typename T>
 
  455       return (*this)->getStrides();
 
  458   template < 
typename T >
 
  462     (*this)->copyHeaderFrom( other );
 
  471   template <
typename T>
 
  478   template <
typename T>
 
  485   template <
typename T>
 
  495   template <
typename T>
 
  499     out.
ostream() << 
"VolumeRef" << std::flush;
 
  500     if( !volume.get() ) {
 
  502                     << 
": empty" << std::endl;
 
  507       out.
ostream() << 
": " << std::flush;
 
  508       return out << *(volume.get());
 
  512   template <
typename T>
 
  517     return volumeout << volume;
 
  520   template <
typename T>
 
Object reference(Object &value)
std::ostream & ostream() const
Convenient handle for a Volume - this is normally the entry point for all volumes handling.
virtual void reallocate(int sizeX=1, int sizeY=1, int sizeZ=1, int sizeT=1, bool keepcontents=false, const AllocatorContext &allocatorContext=AllocatorContext(), bool allocate=true)
const PropertySet & getPropertySet() const __attribute__((__deprecated__("use header() instead")))
int refLevel(const int level) const
std::vector< int > getBorders() const
Volume< T >::Position Position
void setVoxelSize(float vx, float vy=1., float vz=1., float vt=1.)
std::vector< float > getVoxelSize() const
void setRefVolume(const rc_ptr< Volume< T > > &refvol)
virtual void copyHeaderFrom(const PropertySet &other)
Volume< T >::Position posInRefVolumeAtLevel(const int level) const
int getLevelsCount() const
rc_ptr< Volume< T > > refVolume() const
rc_ptr< Volume< T > > refVolumeAtLevel(const int level) const
std::vector< int > getSize() const
const T & at(long x, long y=0, long z=0, long t=0) const
Volume< T >::iterator iterator
const PropertySet & header() const
const T & operator()(long x, long y=0, long z=0, long t=0) const
std::vector< size_t > getStrides() const
const AllocatorContext & allocatorContext() const
Volume< T >::const_iterator const_iterator
virtual void initialize()
void setPosInRefVolume(const Position4Di &pos)
const Position4Di posInRefVolume() const
VolumeRef< T > view(const Position4Di &pos, const Position4Di &size)
std::vector< int > Position
std::ostream & operator<<(std::ostream &out, const VoxelValue< T, C > &aa)
void displayRefVolumes(const Volume< T > &vol)
Display information about volumes hierarchy.
carto::Object getObjectHeader(Headered &h)