44#ifndef _INCLUDED_Field3D_EmptyField_H_
45#define _INCLUDED_Field3D_EmptyField_H_
49#include <boost/lexical_cast.hpp>
65# define UNUSED(p) ((p)=(p))
85template <
class Data_T>
93 typedef boost::intrusive_ptr<EmptyField>
Ptr;
94 typedef std::vector<Ptr>
Vec;
120 virtual Data_T
value(
int i,
int j,
int k)
const;
143 virtual Data_T&
lvalue(
int i,
int j,
int k);
181template <
class Data_T>
190template <
class Data_T>
198template <
class Data_T>
218template <
class Data_T>
222 return sizeof(*this) + superClassMemSize;
227template <
class Data_T>
247template <
class Data_T>
255template <
class Data_T>
std::vector< ProxyPtr > Proxies
EmptyField< float > Proxy
EmptyField< float >::Ptr ProxyPtr
Contains Field, WritableField and ResizableField classes.
#define FIELD3D_CLASSNAME_CLASSTYPE_IMPLEMENTATION
#define DEFINE_FIELD_RTTI_CONCRETE_CLASS
This subclass of Field does not store any data.
const Data_T & constantvalue() const
Returns the constant value.
void setConstantvalue(const Data_T &val)
Sets the constant value.
virtual FIELD3D_CLASSNAME_CLASSTYPE_IMPLEMENTATION FieldBase::Ptr clone() const
Returns a pointer to a copy of the field, pure virtual so ensure derived classes properly implement i...
virtual long long int memSize() const
Returns the memory usage (in bytes)
boost::intrusive_ptr< EmptyField > Ptr
virtual Data_T & lvalue(int i, int j, int k)
Write access to a voxel. The coordinates are global coordinates.
ResizableField< Data_T > base
EmptyField()
Constructs an empty buffer.
virtual float value(int i, int j, int k) const
static DEFINE_FIELD_RTTI_CONCRETE_CLASS const char * staticClassName()
static const char * staticClassType()
virtual void clear(const Data_T &value)
Clears all the voxels in the storage.
EmptyField< Data_T > class_type
boost::intrusive_ptr< FieldBase > Ptr
Box3i m_dataWindow
Defines the area where data is allocated. This should be treated as a closed (i.e....
virtual long long int memSize() const
Returns the memory usage (in bytes)
#define FIELD3D_NAMESPACE_HEADER_CLOSE