28 #include "WDataSetDTIToScalar_I.h"
29 #include "core/common/WFlag.h"
30 #include "core/common/WLogger.h"
31 #include "core/common/WProgress.h"
32 #include "core/dataHandler/WDataSetDTI.h"
33 #include "core/dataHandler/WDataSetScalar.h"
34 #include "core/dataHandler/WDataSetVector.h"
43 wlog::debug(
"WDataSetDTIToScalar_I" ) <<
"Start computation";
44 typedef double ValueType;
46 std::shared_ptr< WGrid > grid( evals->getGrid() );
47 std::shared_ptr< std::vector< ValueType > > data(
new std::vector< ValueType >( grid->size() ) );
49 std::shared_ptr< WValueSet< float > > t = std::dynamic_pointer_cast< WValueSet< float > >( tensors->getValueSet() );
50 WAssert( t,
"Error: Only tensor data sets with doubles are allowed currently." );
52 for(
unsigned int i = 0; i < grid->size() && !shutdown; ++i )
65 wlog::debug(
"WDataSetDTIToScalar_I" ) <<
"Computation done.";
66 std::shared_ptr< ValueSetType > vals(
new ValueSetType( 0, 1, data ) );
virtual ~WDataSetDTIToScalar_I()
Destructor.
virtual WDataSetScalar::SPtr operator()(WProgress::SPtr progress, WBoolFlag const &shutdown, WDataSetDTI::SPtr tensors, WDataSetVector::SPtr evals)
This runs the given strategy on the given dataset.
virtual double tensorToScalar(const WVector3d &evals, const WTensorSym< 2, 3, float > &tensor)=0
Actual scalar computation.
This data set type contains scalars as values.
std::shared_ptr< WDataSetScalar > SPtr
shared_ptr abbreviation
std::shared_ptr< WDataSetVector > SPtr
shared_ptr abbreviation
std::shared_ptr< WDataSet > SPtr
Shared pointer abbreviation to a instance of this class.
std::shared_ptr< WProgress > SPtr
Shared pointer on a WProgress.
Implements a symmetric tensor that has the same number of components in every direction.
Base Class for all value set types.
WStreamedLogger debug(const std::string &source)
Logging a debug message.