HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IndexFilter.h File Reference

Index filters primarily designed to be used with a FilterIndexIter. More...

#include <openvdb/version.h>
#include <openvdb/Types.h>
#include <openvdb/math/Transform.h>
#include <openvdb/tools/Interpolation.h>
#include "IndexIterator.h"
#include "AttributeArray.h"
#include "AttributeGroup.h"
#include "AttributeSet.h"
#include <random>
#include <numeric>
#include <unordered_map>
+ Include dependency graph for IndexFilter.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openvdb::OPENVDB_VERSION_NAME::points::ValueMaskFilter< On >
 Index filtering on active / inactive state of host voxel. More...
 
class  openvdb::OPENVDB_VERSION_NAME::points::MultiGroupFilter
 
class  openvdb::OPENVDB_VERSION_NAME::points::RandomLeafFilter< PointDataTreeT, RandGenT >
 
class  openvdb::OPENVDB_VERSION_NAME::points::AttributeHashFilter< RandGenT, IntType >
 
class  openvdb::OPENVDB_VERSION_NAME::points::LevelSetFilter< LevelSetGridT >
 
class  openvdb::OPENVDB_VERSION_NAME::points::BBoxFilter
 
class  openvdb::OPENVDB_VERSION_NAME::points::BinaryFilter< T1, T2, And >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::FilterTraits< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::FilterTraits< BBoxFilter >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::FilterTraits< LevelSetFilter< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::FilterTraits< BinaryFilter< T0, T1, And > >
 

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::points
 

Typedefs

using openvdb::OPENVDB_VERSION_NAME::points::ActiveFilter = ValueMaskFilter< true >
 
using openvdb::OPENVDB_VERSION_NAME::points::InactiveFilter = ValueMaskFilter< false >
 

Detailed Description

Index filters primarily designed to be used with a FilterIndexIter.

Author
Dan Bailey

Filters must adhere to the interface described in the example below:

struct MyFilter
{
// Return true when the filter has been initialized for first use
bool initialized() { return true; }
// Return index::ALL if all points are valid, index::NONE if no points are valid
// and index::PARTIAL if some points are valid
index::State state() { return index::PARTIAL; }
// Return index::ALL if all points in this leaf are valid, index::NONE if no points
// in this leaf are valid and index::PARTIAL if some points in this leaf are valid
template <typename LeafT>
index::State state(const LeafT&) { return index::PARTIAL; }
// Resets the filter to refer to the specified leaf, all subsequent valid() calls
// will be relative to this leaf until reset() is called with a different leaf.
// Although a required method, many filters will provide an empty implementation if
// there is no leaf-specific logic needed.
template <typename LeafT> void reset(const LeafT&) { }
// Returns true if the filter is valid for the supplied iterator
template <typename IterT> bool valid(const IterT&) { return true; }
};

Definition in file IndexFilter.h.