35#ifndef AIMS_RESAMPLING_HARMONICCAGERESAMPLER_H
36#define AIMS_RESAMPLING_HARMONICCAGERESAMPLER_H
38#include <cartodata/volume/volume.h>
39#include <aims/mesh/surface.h>
52 std::vector<Point3df> &controls,
53 short background=0,
short border=1,
short inside=2);
86 Point3df p2(rint(p[0]), rint(p[1]), rint(p[2]));
87 const std::map<int, float> &w = (*(
_weights.find(p2))).second;
88 std::map<int, float>::const_iterator i, e;
91 for (i = w.begin(), e = w.end(); i != e; ++i)
void computeCoordinates(float threshold=10e-4)
HarmonicCageMeshResampler(const AimsSurfaceTriangle &cage, float spacing)
std::map< Point3df, std::map< int, float >, Point3dfCompare > _weights
Point3df coordinate(const Point3df &p) const
from native coordinate to resample coordinates (point version)
const Point3df & getControl(int ind) const
carto::VolumeRef< unsigned int > _cage
const carto::VolumeRef< float > & get_image_coords(int ind) const
~HarmonicCageMeshResampler()
AimsSurfaceTriangle * coordinates(const AimsSurfaceTriangle &mesh) const
from native coordinate to resample coordinates (mesh version)
std::vector< Point3df > _controls
std::vector< carto::VolumeRef< float > > _image_coords
void set_keep_image_coords(bool state)
void moveControl(int ind, const Point3df &p)
HarmonicCageMeshResampler(const carto::rc_ptr< carto::Volume< unsigned int > > &cage, std::vector< Point3df > &controls, short background=0, short border=1, short inside=2)
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle
AimsVector< float, 3 > Point3df