29 #include "WMResampleRegular.h"
30 #include "core/common/WProgress.h"
31 #include "core/dataHandler/WGridTransformOrtho.h"
32 #include "core/kernel/WKernel.h"
55 return "Resample Regular";
60 return "A module to resample a regular dataset with a different regular grid.";
65 m_original = std::shared_ptr<WModuleInputData<WDataSetScalar> >(
67 "The dataset to resample." ) );
70 m_target = std::shared_ptr<WModuleInputData<WDataSetScalar> >(
72 "The original dataset is resamples to the grid of this dataset." ) );
75 m_resampled = std::shared_ptr<WModuleOutputData<WDataSetScalar> >(
77 "The resampled data set." ) );
116 std::shared_ptr< WDataSetScalar > originalData =
m_original->getData();
117 std::shared_ptr< WDataSetScalar > targetData =
m_target->getData();
120 if( !originalData || !targetData )
126 std::shared_ptr< WGridRegular3D > resampledGrid = std::dynamic_pointer_cast< WGridRegular3D >( targetData->getGrid() );
128 std::shared_ptr<WValueSetBase> vals;
129 vals = std::dynamic_pointer_cast<WValueSetBase >( originalData->getValueSet() );
131 std::shared_ptr< std::vector< float > > theValues;
132 theValues = std::make_shared< std::vector< float > >();
134 size_t nX = resampledGrid->getNbCoordsX();
135 size_t nY = resampledGrid->getNbCoordsY();
136 size_t nZ = resampledGrid->getNbCoordsZ();
138 std::shared_ptr< WProgress > progress(
new WProgress(
"Resampling", nZ ) );
141 for(
size_t idZ = 0; idZ < nZ; ++idZ )
144 for(
size_t idY = 0; idY < nY; ++idY )
146 for(
size_t idX = 0; idX < nX; ++idX )
149 theValues->push_back(
static_cast<float>( originalData->interpolate( resampledGrid->getPosition( idX, idY, idZ ), &valid ) ) );
154 std::shared_ptr< WValueSet< float > > newValueSet;
155 newValueSet = std::shared_ptr< WValueSet< float > >(
new WValueSet<float>( vals->order(), vals->dimension(), theValues ) );
virtual void wait() const
Wait for the condition.
virtual void add(std::shared_ptr< WCondition > condition)
Adds another condition to the set of conditions to wait for.
Class to encapsulate boost::condition_variable_any.
This data set type contains scalars as values.
A module to resample a regular dataset with a different regular grid.
virtual void requirements()
Initialize requirements for this module.
virtual std::shared_ptr< WModule > factory() const
Due to the prototype design pattern used to build modules, this method returns a new instance of this...
std::shared_ptr< WModuleInputData< WDataSetScalar > > m_original
Connector providing original input data.
virtual const std::string getDescription() const
Gives back a description of this module.
WMResampleRegular()
Constructor currently only initializing the class members.
std::shared_ptr< WModuleInputData< WDataSetScalar > > m_target
Connector providing target grid.
virtual const std::string getName() const
Gives back the name of this module.
virtual void connectors()
Initialize the connectors this module is using.
virtual ~WMResampleRegular()
Still empty destructor.
virtual void moduleMain()
Entry point after loading the module.
std::shared_ptr< WModuleOutputData< WDataSetScalar > > m_resampled
Connector yielding resampled data.
std::shared_ptr< WCondition > m_propCondition
A condition used to notify about changes in several properties.
virtual void properties()
Initialize the properties for this module.
Class offering an instantiate-able data connection between modules.
Class representing a single module of OpenWalnut.
virtual void properties()
Initialize properties in this function.
wlog::WStreamedLogger debugLog() const
Logger instance for comfortable debug logging.
void addConnector(std::shared_ptr< WModuleInputConnector > con)
Adds the specified connector to the list of inputs.
void ready()
Call this whenever your module is ready and can react on property changes.
WConditionSet m_moduleState
The internal state of the module.
std::shared_ptr< WProgressCombiner > m_progress
Progress indicator used as parent for all progress' of this module.
virtual void connectors()
Initialize connectors in this function.
Class managing progress inside of modules.
WBoolFlag m_shutdownFlag
Condition getting fired whenever the thread should quit.
Base Class for all value set types.