Field3D
EmptyField< Data_T > Class Template Reference

This subclass of Field does not store any data. More...

#include <EmptyField.h>

Inheritance diagram for EmptyField< Data_T >:
ResizableField< Data_T > ResizableField< Data_T > WritableField< Data_T > WritableField< Data_T > WritableField< Data_T > WritableField< Data_T > Field< Data_T > Field< Data_T > Field< Data_T > Field< Data_T > Field< Data_T > Field< Data_T > Field< Data_T > Field< Data_T >

List of all members.

Public Types

typedef EmptyField< Data_T > class_type
typedef EmptyField< Data_T > class_type
typedef boost::intrusive_ptr
< EmptyField
Ptr
typedef boost::intrusive_ptr
< EmptyField
Ptr
typedef std::vector< PtrVec
 This is a convenience typedef for the list that Field3DInputFile::readScalarLayers() and Field3DInputFile::readVectorLayers() will return its data in.
typedef std::vector< PtrVec
 This is a convenience typedef for the list that Field3DInputFile::readScalarLayers() and Field3DInputFile::readVectorLayers() will return its data in.

Public Member Functions

virtual void clear (const Data_T &value)
 Clears all the voxels in the storage.
virtual void clear (const Data_T &value)
 Clears all the voxels in the storage.
const Data_T & constantvalue () const
 Returns the constant value.
const Data_T & constantvalue () const
 Returns the constant value.
void setConstantvalue (const Data_T &val)
 Sets the constant value.
void setConstantvalue (const Data_T &val)
 Sets the constant value.
Constructors & destructor
 EmptyField ()
 Constructs an empty buffer.
 EmptyField ()
 Constructs an empty buffer.
From Field
virtual Data_T value (int i, int j, int k) const
 Read access to a voxel. The coordinates are in integer voxel space .
virtual long long int memSize () const
 Returns the memory usage (in bytes)
virtual Data_T value (int i, int j, int k) const
 Read access to a voxel. The coordinates are in integer voxel space .
virtual long long int memSize () const
 Returns the memory usage (in bytes)
From WritableField
virtual Data_T & lvalue (int i, int j, int k)
 Write access to a voxel. The coordinates are global coordinates.
virtual Data_T & lvalue (int i, int j, int k)
 Write access to a voxel. The coordinates are global coordinates.
From FieldBase
virtual std::string className () const
 Returns the class name of the object. Used by the class pool and when writing the data to disk.
virtual FieldBase::Ptr clone () const
 Returns a pointer to a copy of the field, pure virtual so ensure derived classes properly implement it.
virtual std::string className () const
 Returns the class name of the object. Used by the class pool and when writing the data to disk.
virtual FieldBase::Ptr clone () const
 Returns a pointer to a copy of the field, pure virtual so ensure derived classes properly implement it.

Protected Attributes

Data_T m_constantData
 Field constant value.
Data_T m_default
 Field default value.
Data_T m_ignoredData
 Dummy variable for assignment.

Private Types

typedef ResizableField< Data_T > base
 Convenience typedef for referring to base class.
typedef ResizableField< Data_T > base
 Convenience typedef for referring to base class.

Detailed Description

template<class Data_T>
class EmptyField< Data_T >

This subclass of Field does not store any data.

Its primary purpose is to be used as a proxy field. It can carry the same resolution, metadata and mapping as a regular field.

Usage is similar to a DenseField, except that it does not contain any data. It stores a default value that may be set and queried, so it can be treated as a constant field.

Definition at line 81 of file EmptyField.h.


Member Typedef Documentation

template<class Data_T>
typedef boost::intrusive_ptr<EmptyField> EmptyField< Data_T >::Ptr

Reimplemented from ResizableField< Data_T >.

Definition at line 88 of file EmptyField.h.

template<class Data_T>
typedef std::vector<Ptr> EmptyField< Data_T >::Vec

This is a convenience typedef for the list that Field3DInputFile::readScalarLayers() and Field3DInputFile::readVectorLayers() will return its data in.

Reimplemented from Field< Data_T >.

Definition at line 89 of file EmptyField.h.

template<class Data_T>
typedef EmptyField<Data_T> EmptyField< Data_T >::class_type

Reimplemented from ResizableField< Data_T >.

Definition at line 135 of file EmptyField.h.

template<class Data_T>
typedef ResizableField<Data_T> EmptyField< Data_T >::base [private]

Convenience typedef for referring to base class.

Reimplemented from ResizableField< Data_T >.

Definition at line 172 of file EmptyField.h.

template<class Data_T>
typedef boost::intrusive_ptr<EmptyField> EmptyField< Data_T >::Ptr

Reimplemented from ResizableField< Data_T >.

Definition at line 88 of file EmptyField.h.

template<class Data_T>
typedef std::vector<Ptr> EmptyField< Data_T >::Vec

This is a convenience typedef for the list that Field3DInputFile::readScalarLayers() and Field3DInputFile::readVectorLayers() will return its data in.

Reimplemented from Field< Data_T >.

Definition at line 89 of file EmptyField.h.

template<class Data_T>
typedef EmptyField<Data_T> EmptyField< Data_T >::class_type

Reimplemented from ResizableField< Data_T >.

Definition at line 135 of file EmptyField.h.

template<class Data_T>
typedef ResizableField<Data_T> EmptyField< Data_T >::base [private]

Convenience typedef for referring to base class.

Reimplemented from ResizableField< Data_T >.

Definition at line 172 of file EmptyField.h.


Constructor & Destructor Documentation

template<class Data_T >
EmptyField< Data_T >::EmptyField ( )

Constructs an empty buffer.

Definition at line 181 of file EmptyField.h.

Referenced by EmptyField< Data_T >::clone().

  : base()
{ 
  // Empty
}
template<class Data_T>
EmptyField< Data_T >::EmptyField ( )

Constructs an empty buffer.


Member Function Documentation

template<class Data_T >
void EmptyField< Data_T >::clear ( const Data_T &  value) [virtual]

Clears all the voxels in the storage.

Reimplemented from WritableField< Data_T >.

Definition at line 235 of file EmptyField.h.

template<class Data_T >
const Data_T & EmptyField< Data_T >::constantvalue ( ) const [inline]

Returns the constant value.

Definition at line 300 of file EmptyField.h.

{
  return m_constantData;
}
template<class Data_T >
void EmptyField< Data_T >::setConstantvalue ( const Data_T &  val) [inline]

Sets the constant value.

Definition at line 292 of file EmptyField.h.

{
  m_constantData = val;
}
template<class Data_T >
Data_T EmptyField< Data_T >::value ( int  i,
int  j,
int  k 
) const [virtual]

Read access to a voxel. The coordinates are in integer voxel space .

Note:
Before the internal storage is accessed, the subclass must compute the data window coordinates by looking at Field::m_dataWindow.
Virtual functions are known not to play nice with threading. Therefor, concrete classes can implement (by convention) fastValue() as a non-virtual function.

Implements Field< Data_T >.

Definition at line 243 of file EmptyField.h.

References UNUSED.

{
  assert (i >= base::m_dataWindow.min.x);
  assert (i <= base::m_dataWindow.max.x);
  assert (j >= base::m_dataWindow.min.y);
  assert (j <= base::m_dataWindow.max.y);
  assert (k >= base::m_dataWindow.min.z);
  assert (k <= base::m_dataWindow.max.z);

  UNUSED(i);
  UNUSED(j);
  UNUSED(k);

  // Access data
  return m_default;
}
template<class Data_T >
long long int EmptyField< Data_T >::memSize ( ) const [virtual]

Returns the memory usage (in bytes)

Note:
This needs to be re-implemented for any subclass that adds data members. Those classes should also call their superclass and add the combined memory use.

Reimplemented from FieldRes.

Definition at line 263 of file EmptyField.h.

{ 
  long long int superClassMemSize = base::memSize();
  return sizeof(*this) + superClassMemSize; 
}
template<class Data_T >
Data_T & EmptyField< Data_T >::lvalue ( int  i,
int  j,
int  k 
) [virtual]

Write access to a voxel. The coordinates are global coordinates.

Note:
Before the internal storage is accessed, the subclass must compute the crop window coordinates by looking at Field::m_dataWindow.
This is named differently from the const value so that non-const objects still have a clear way of accessing data in a const way.
Virtual functions are known not to play nice with threading. Therefor, concrete classes can implement (by convention) fastLValue() as a non-virtual function.

Implements WritableField< Data_T >.

Definition at line 272 of file EmptyField.h.

References UNUSED.

{
  assert (i >= base::m_dataWindow.min.x);
  assert (i <= base::m_dataWindow.max.x);
  assert (j >= base::m_dataWindow.min.y);
  assert (j <= base::m_dataWindow.max.y);
  assert (k >= base::m_dataWindow.min.z);
  assert (k <= base::m_dataWindow.max.z);

  UNUSED(i);
  UNUSED(j);
  UNUSED(k);

  // Access data
  return m_ignoredData;
}
template<class Data_T>
virtual std::string EmptyField< Data_T >::className ( ) const [inline, virtual]

Returns the class name of the object. Used by the class pool and when writing the data to disk.

Implements FieldBase.

Definition at line 149 of file EmptyField.h.

  { return std::string("EmptyField"); }
template<class Data_T>
virtual FieldBase::Ptr EmptyField< Data_T >::clone ( ) const [inline, virtual]

Returns a pointer to a copy of the field, pure virtual so ensure derived classes properly implement it.

Implements FieldBase.

Definition at line 152 of file EmptyField.h.

References EmptyField< Data_T >::EmptyField().

  { return Ptr(new EmptyField(*this)); }
template<class Data_T>
virtual void EmptyField< Data_T >::clear ( const Data_T &  value) [virtual]

Clears all the voxels in the storage.

Reimplemented from WritableField< Data_T >.

template<class Data_T>
const Data_T& EmptyField< Data_T >::constantvalue ( ) const

Returns the constant value.

template<class Data_T>
void EmptyField< Data_T >::setConstantvalue ( const Data_T &  val)

Sets the constant value.

template<class Data_T>
virtual Data_T EmptyField< Data_T >::value ( int  i,
int  j,
int  k 
) const [virtual]

Read access to a voxel. The coordinates are in integer voxel space .

Note:
Before the internal storage is accessed, the subclass must compute the data window coordinates by looking at Field::m_dataWindow.
Virtual functions are known not to play nice with threading. Therefor, concrete classes can implement (by convention) fastValue() as a non-virtual function.

Implements Field< Data_T >.

template<class Data_T>
virtual long long int EmptyField< Data_T >::memSize ( ) const [virtual]

Returns the memory usage (in bytes)

Note:
This needs to be re-implemented for any subclass that adds data members. Those classes should also call their superclass and add the combined memory use.

Reimplemented from FieldRes.

template<class Data_T>
virtual Data_T& EmptyField< Data_T >::lvalue ( int  i,
int  j,
int  k 
) [virtual]

Write access to a voxel. The coordinates are global coordinates.

Note:
Before the internal storage is accessed, the subclass must compute the crop window coordinates by looking at Field::m_dataWindow.
This is named differently from the const value so that non-const objects still have a clear way of accessing data in a const way.
Virtual functions are known not to play nice with threading. Therefor, concrete classes can implement (by convention) fastLValue() as a non-virtual function.

Implements WritableField< Data_T >.

template<class Data_T>
virtual std::string EmptyField< Data_T >::className ( ) const [inline, virtual]

Returns the class name of the object. Used by the class pool and when writing the data to disk.

Implements FieldBase.

Definition at line 149 of file EmptyField.h.

  { return std::string("EmptyField"); }
template<class Data_T>
virtual FieldBase::Ptr EmptyField< Data_T >::clone ( ) const [inline, virtual]

Returns a pointer to a copy of the field, pure virtual so ensure derived classes properly implement it.

Implements FieldBase.

Definition at line 152 of file EmptyField.h.

References EmptyField< Data_T >::EmptyField().

  { return Ptr(new EmptyField(*this)); }

Member Data Documentation

template<class Data_T>
Data_T EmptyField< Data_T >::m_default [protected]

Field default value.

Definition at line 162 of file EmptyField.h.

template<class Data_T>
Data_T EmptyField< Data_T >::m_ignoredData [protected]

Dummy variable for assignment.

Definition at line 164 of file EmptyField.h.

template<class Data_T>
Data_T EmptyField< Data_T >::m_constantData [protected]

Field constant value.

Definition at line 166 of file EmptyField.h.


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