40#ifndef YL_ISOVOLUME_HH_INCLUDED
41#define YL_ISOVOLUME_HH_INCLUDED
43#include <cartodata/volume/volume.h>
44#include <aims/mesh/surface.h>
70std::pair<carto::VolumeRef<float>, carto::VolumeRef<float> >
75 float max_advection_distance,
99 float max_advection_distance,
129 float max_advection_distance,
154 float max_advection_distance,
160template <
class TDomainField>
Access a scalar field stored in a volume.
Store a scalar field and access it at any coordinates.
Store a vector field and access it at any coordinates.
carto::VolumeRef< T > advect_value(const carto::VolumeRef< int16_t > &seeds, const yl::ScalarField &domain, const yl::VectorField3d &advection_field, const carto::VolumeRef< T > &values, float max_advection_distance, float step_size, int verbosity=0)
Advect a point along a field, and propagate end points values to the starting point.
carto::VolumeRef< float > advect_euclidean(const carto::VolumeRef< int16_t > &seeds, const yl::ScalarField &domain, const yl::VectorField3d &advection_field, float max_advection_distance, float step_size, int verbosity=0)
Advect a point along a field, keeping track of the distance.
std::pair< carto::VolumeRef< float >, carto::VolumeRef< float > > advect_tubes(const carto::VolumeRef< int16_t > &seeds, const yl::ScalarField &domain, const yl::VectorField3d &advection_field, const yl::ScalarField &divergence_field, float max_advection_distance, float step_size, int verbosity=0)
Advect a tube along a field, starting with unit surface.
yl::ScalarField * create_domain_field(const carto::VolumeRef< int16_t > &domain)
Build a ScalarField of the given type from an int16_t volume.
AimsSurface< 2 > advect_path(const carto::VolumeRef< int16_t > &seeds, const yl::ScalarField &domain, const yl::VectorField3d &advection_field, float max_advection_distance, float step_size, int verbosity=0)
Advect a point along a field, recording advection tracts in a wireframe mesh.