Field3D
EmptyField Class Reference

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

#include <EmptyField.h>

Inheritance diagram for EmptyField:
ResizableField< Data_T >

List of all members.

Public Types

typedef EmptyField< Data_T > class_type
typedef boost::intrusive_ptr
< EmptyField
Ptr
typedef std::vector< PtrVec

Public Member Functions

virtual void clear (const Data_T &value)
 Clears all the voxels in the storage.
const Data_T & constantvalue () const
 Returns the constant value.
void setConstantvalue (const Data_T &val)
 Sets the constant value.
Constructors & destructor
 EmptyField ()
 Constructs an empty buffer.
From Field
virtual Data_T value (int i, int j, int k) const
virtual long long int memSize () const
From WritableField
virtual Data_T & lvalue (int i, int j, int k)
From FieldBase
virtual std::string className () const
virtual FieldBase::Ptr clone () const

Static Public Member Functions

static
DEFINE_FIELD_RTTI_CONCRETE_CLASS
const char * 
classType ()
 RTTI replacement.

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

Detailed Description

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.


Member Typedef Documentation

typedef boost::intrusive_ptr<EmptyField> EmptyField::Ptr

Reimplemented from ResizableField< Data_T >.

Definition at line 88 of file EmptyField.h.

typedef std::vector<Ptr> EmptyField::Vec

Definition at line 89 of file EmptyField.h.

Reimplemented from ResizableField< Data_T >.

Definition at line 121 of file EmptyField.h.

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

Reimplemented from ResizableField< Data_T >.

Definition at line 165 of file EmptyField.h.


Constructor & Destructor Documentation

EmptyField::EmptyField ( )

Constructs an empty buffer.

Definition at line 174 of file EmptyField.h.

Referenced by clone().

  : base()
{ 
  // Empty
}

Member Function Documentation

void EmptyField::clear ( const Data_T &  value) [virtual]

Clears all the voxels in the storage.

Definition at line 183 of file EmptyField.h.

const Data_T & EmptyField::constantvalue ( ) const [inline]

Returns the constant value.

Definition at line 248 of file EmptyField.h.

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

Sets the constant value.

Definition at line 240 of file EmptyField.h.

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

Definition at line 191 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;
}
long long int EmptyField::memSize ( ) const [virtual]

Definition at line 211 of file EmptyField.h.

{ 
  long long int superClassMemSize = base::memSize();
  return sizeof(*this) + superClassMemSize; 
}
static DEFINE_FIELD_RTTI_CONCRETE_CLASS const char* EmptyField::classType ( ) [inline, static]

RTTI replacement.

Reimplemented from ResizableField< Data_T >.

Definition at line 125 of file EmptyField.h.

Referenced by className().

  {
    return "EmptyField";
  }
Data_T & EmptyField::lvalue ( int  i,
int  j,
int  k 
) [virtual]

Definition at line 220 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;
}
virtual std::string EmptyField::className ( ) const [inline, virtual]

Definition at line 142 of file EmptyField.h.

References classType().

  { return std::string(classType()); }
virtual FieldBase::Ptr EmptyField::clone ( ) const [inline, virtual]

Definition at line 145 of file EmptyField.h.

References EmptyField().

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

Member Data Documentation

Data_T EmptyField::m_default [protected]

Field default value.

Definition at line 155 of file EmptyField.h.

Data_T EmptyField::m_ignoredData [protected]

Dummy variable for assignment.

Definition at line 157 of file EmptyField.h.

Data_T EmptyField::m_constantData [protected]

Field constant value.

Definition at line 159 of file EmptyField.h.


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