Go to the documentation of this file.
44 #ifndef _INCLUDED_Field3D_EmptyField_H_
45 #define _INCLUDED_Field3D_EmptyField_H_
49 #include <boost/lexical_cast.hpp>
65 # define UNUSED(p) ((p)=(p))
85 template <
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;
121 virtual long long int memSize()
const;
143 virtual Data_T&
lvalue(
int i,
int j,
int k);
181 template <
class Data_T>
190 template <
class Data_T>
193 m_constantData = m_default = value;
198 template <
class Data_T>
201 assert (i >= base::m_dataWindow.
min.x);
202 assert (i <= base::m_dataWindow.
max.x);
203 assert (j >= base::m_dataWindow.
min.y);
204 assert (j <= base::m_dataWindow.
max.y);
205 assert (k >= base::m_dataWindow.
min.z);
206 assert (k <= base::m_dataWindow.
max.z);
218 template <
class Data_T>
221 long long int superClassMemSize = base::memSize();
222 return sizeof(*this) + superClassMemSize;
227 template <
class Data_T>
230 assert (i >= base::m_dataWindow.
min.x);
231 assert (i <= base::m_dataWindow.
max.x);
232 assert (j >= base::m_dataWindow.
min.y);
233 assert (j <= base::m_dataWindow.
max.y);
234 assert (k >= base::m_dataWindow.
min.z);
235 assert (k <= base::m_dataWindow.
max.z);
242 return m_ignoredData;
247 template <
class Data_T>
250 m_constantData = val;
255 template <
class Data_T>
258 return m_constantData;
279 #endif // Include guard
#define FIELD3D_NAMESPACE_HEADER_CLOSE
#define DEFINE_FIELD_RTTI_CONCRETE_CLASS
EmptyField< float > Proxy
void setConstantvalue(const Data_T &val)
Sets the constant value.
Data_T m_default
Field default value.
boost::intrusive_ptr< EmptyField > Ptr
EmptyField< float >::Ptr ProxyPtr
const Data_T & constantvalue() const
Returns the constant value.
boost::intrusive_ptr< FieldBase > Ptr
static const char * staticClassType()
virtual Data_T value(int i, int j, int k) const
Read access to a voxel. The coordinates are in integer voxel space .
T max(const T a, const T2 b)
Max operation on mixed types.
Data_T m_constantData
Field constant value.
EmptyField< Data_T > class_type
virtual long long int memSize() const
Returns the memory usage (in bytes)
Contains Field, WritableField and ResizableField classes.
std::vector< ProxyPtr > Proxies
This subclass of Field does not store any data.
ResizableField< Data_T > base
#define FIELD3D_CLASSNAME_CLASSTYPE_IMPLEMENTATION
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 Data_T & lvalue(int i, int j, int k)
Write access to a voxel. The coordinates are global coordinates.
virtual void clear(const Data_T &value)
Clears all the voxels in the storage.
Data_T m_ignoredData
Dummy variable for assignment.
EmptyField()
Constructs an empty buffer.
T min(const T a, const T2 b)
Min operation on mixed types.
static const DEFINE_FIELD_RTTI_CONCRETE_CLASS char * staticClassName()