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  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

namespace  Sparse
 Namespace for sparse field specifics.
 

Macros

#define BLOCK_ORDER   4
 

Typedefs

typedef SparseField< V3dSparseField3d
 
typedef SparseField< V3fSparseField3f
 
typedef SparseField< V3hSparseField3h
 
typedef SparseField< doubleSparseFieldd
 
typedef SparseField< floatSparseFieldf
 
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 V3d &left, const V3d &right)
 
template<>
bool Sparse::isAnyLess (const V3f &left, const V3f &right)
 
template<>
bool Sparse::isAnyLess (const V3h &left, const V3h &right)
 

Detailed Description

Contains the SparseField class.

Definition in file SparseField.h.

Macro Definition Documentation

◆ BLOCK_ORDER

#define BLOCK_ORDER   4

Definition at line 57 of file SparseField.h.

Typedef Documentation

◆ SparseFieldh

Definition at line 664 of file SparseField.h.

◆ SparseFieldf

Definition at line 665 of file SparseField.h.

◆ SparseFieldd

Definition at line 666 of file SparseField.h.

◆ SparseField3h

Definition at line 667 of file SparseField.h.

◆ SparseField3f

Definition at line 668 of file SparseField.h.

◆ SparseField3d

Definition at line 669 of file SparseField.h.

Function Documentation

◆ FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION() [1/2]

FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION ( LinearSparseFieldInterp )

◆ FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION() [2/2]

FIELD3D_CLASSTYPE_TEMPL_INSTANTIATION ( SparseField )

◆ blockCoords()

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

Definition at line 676 of file SparseField.h.

677{
678 // Check empty bbox input
680 return Box3i();
681 }
682 // Discrete offset voxel space
684 f->applyDataWindowOffset(dovsBounds.min.x,
685 dovsBounds.min.y,
686 dovsBounds.min.z);
687 f->applyDataWindowOffset(dovsBounds.max.x,
688 dovsBounds.max.y,
689 dovsBounds.max.z);
690 // Discrete block space bounds
692 if (f) {
693 f->getBlockCoord(dovsBounds.min.x, dovsBounds.min.y, dovsBounds.min.z,
694 dbsBounds.min.x, dbsBounds.min.y, dbsBounds.min.z);
695 f->getBlockCoord(dovsBounds.max.x, dovsBounds.max.y, dovsBounds.max.z,
696 dbsBounds.max.x, dbsBounds.max.y, dbsBounds.max.z);
697 }
698 return dbsBounds;
699}
Box3d continuousBounds(const Box3i &bbox)
Definition Field.h:1111
Imath::Box3i Box3i
Definition SpiMathLib.h:77
#define FIELD3D_MTX_T
Definition StdMathLib.h:99

References continuousBounds(), and FIELD3D_MTX_T.

Referenced by detail::checkInputEmpty().