Field3D
SparseField.h File Reference

Contains the SparseField class. More...

#include <vector>
#include <boost/thread/mutex.hpp>
#include <boost/lexical_cast.hpp>
#include "Field.h"
#include "SparseFile.h"
#include "ns.h"

Go to the source code of this file.

Classes

class  CubicGenericFieldInterp< Field_T >
 
class  LinearGenericFieldInterp< Field_T >
 
class  LinearSparseFieldInterp< Data_T >
 
struct  Sparse::CheckAllEqual< Data_T >
 Checks if all the values in the SparseBlock are equal. Used by SparseField::releaseBlocks(). More...
 
struct  Sparse::CheckMaxAbs< Data_T >
 Checks if all the absolute values in the SparseBlock are greater than some number. Useful for making narrow band levelsets Used by SparseField::releaseBlocks(). More...
 
class  Sparse::SparseBlock< Data_T >
 Storage for one individual block of a SparseField. More...
 
class  SparseField< Data_T >
 This Field subclass stores voxel data in block-allocated arrays. More...
 
class  SparseField< Data_T >::block_iterator
 
class  SparseField< Data_T >::const_iterator
 
class  SparseField< Data_T >::iterator
 

Namespaces

 Sparse
 Namespace for sparse field specifics.
 

Macros

#define BLOCK_ORDER   4
 

Typedefs

typedef SparseField< V3dSparseField3d
 
typedef SparseField< V3fSparseField3f
 
typedef SparseField< V3hSparseField3h
 
typedef SparseField< double > SparseFieldd
 
typedef SparseField< float > SparseFieldf
 
typedef SparseField< halfSparseFieldh
 

Functions

template<typename Data_T >
Box3i blockCoords (const Box3i &dvsBounds, const SparseField< Data_T > *f)
 
 FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION (LinearSparseFieldInterp)
 
 FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION (SparseField)
 
template<typename Data_T >
bool Sparse::isAnyLess (const Data_T &left, const Data_T &right)
 
template<>
bool Sparse::isAnyLess (const V3h &left, const V3h &right)
 
template<>
bool Sparse::isAnyLess (const V3f &left, const V3f &right)
 
template<>
bool Sparse::isAnyLess (const V3d &left, const V3d &right)
 

Detailed Description

Contains the SparseField class.

Definition in file SparseField.h.

Macro Definition Documentation

#define BLOCK_ORDER   4

Definition at line 57 of file SparseField.h.

Typedef Documentation

Definition at line 664 of file SparseField.h.

typedef SparseField<float> SparseFieldf

Definition at line 665 of file SparseField.h.

typedef SparseField<double> SparseFieldd

Definition at line 666 of file SparseField.h.

Definition at line 667 of file SparseField.h.

Definition at line 668 of file SparseField.h.

Definition at line 669 of file SparseField.h.

Function Documentation

FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION ( LinearSparseFieldInterp  )
FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION ( SparseField  )
template<typename Data_T >
Box3i blockCoords ( const Box3i dvsBounds,
const SparseField< Data_T > *  f 
)

Definition at line 676 of file SparseField.h.

References SparseField< Data_T >::getBlockCoord().

Referenced by detail::checkInputEmpty().

677 {
678  Box3i dbsBounds;
679  if (f) {
680  f->getBlockCoord(dvsBounds.min.x, dvsBounds.min.y, dvsBounds.min.z,
681  dbsBounds.min.x, dbsBounds.min.y, dbsBounds.min.z);
682  f->getBlockCoord(dvsBounds.max.x, dvsBounds.max.y, dvsBounds.max.z,
683  dbsBounds.max.x, dbsBounds.max.y, dbsBounds.max.z);
684  }
685  return dbsBounds;
686 }
Imath::Box3i Box3i
Definition: SpiMathLib.h:77
void getBlockCoord(int i, int j, int k, int &bi, int &bj, int &bk) const
Calculates the block coordinates that a given set of voxel coords are in.
Definition: SparseField.h:1860