Rev 595 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/* ----------------------------------------------------------------------- *
* This file is part of GEL, http://www.imm.dtu.dk/GEL
* Copyright (C) the authors and DTU Informatics
* For license and list of authors, see ../../doc/intro.pdf
* ----------------------------------------------------------------------- */
/**
* @file GradientFilter.h
* Compute gradients from a voxel grid. The class maintains a reference to a
* voxel grid and acts as a filter for gradient computation.
*/
#ifndef __GEOMETRY_VOXELGRID_GRADIENTFILTER_H
#define __GEOMETRY_VOXELGRID_GRADIENTFILTER_H
// Author: J. Andreas Bærentzen,
// Created: Wed Feb 13 11:00:1
#include "../CGLA/Vec3i.h"
#include "../CGLA/Vec3f.h"
namespace Geometry
{
/// This class is a filter that computes gradients from a grid.
template<class GridT>
class GradientFilter
{
const GridT* const grid;
public:
typedef CGLA::Vec3f DataType;
GradientFilter(const GridT* const _grid): grid(_grid) {}
bool map(const CGLA::Vec3i&, CGLA::Vec3f&) const;
bool in_domain(const CGLA::Vec3i& p) const;
const CGLA::Vec3f operator[](const CGLA::Vec3i& pi) const
{
CGLA::Vec3f g(0);
map(pi,g);
return g;
}
};
}
#endif