OpenWalnut
1.5.0dev
|
This module takes a second order symmetric tensor dataset and uses it to apply an image space based (fast) fabric-like LIC to an arbitrary surface. More...
#include <WMImageSpaceTensorLIC.h>
Public Member Functions | |
WMImageSpaceTensorLIC () | |
Default constructor. More... | |
virtual | ~WMImageSpaceTensorLIC () |
Destructor. More... | |
virtual const std::string | getName () const |
Gives back the name of this module. More... | |
virtual const std::string | getDescription () const |
Gives back a description of this module. More... | |
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 method. More... | |
Public Member Functions inherited from WModule | |
WModule () | |
Constructs a new WModule instance. More... | |
virtual | ~WModule () |
Destructor. More... | |
const InputConnectorList & | getInputConnectors () const |
Gives back input connectors. More... | |
std::shared_ptr< WModuleInputConnector > | getInputConnector (std::string name) |
Finds the named connector for the module. More... | |
std::shared_ptr< WModuleInputConnector > | findInputConnector (std::string name) |
Finds the named connector for the module. More... | |
const OutputConnectorList & | getOutputConnectors () const |
Gives back output connectors. More... | |
std::shared_ptr< WModuleOutputConnector > | getOutputConnector (std::string name) |
Finds the named connector for the module. More... | |
std::shared_ptr< WModuleOutputConnector > | findOutputConnector (std::string name) |
Finds the named connector for the module. More... | |
std::shared_ptr< WModuleConnector > | getConnector (std::string name) |
Finds the named connector for the module. More... | |
std::shared_ptr< WModuleConnector > | findConnector (std::string name) |
Finds the named connector for the module. More... | |
std::shared_ptr< WProperties > | getProperties () const |
Return a pointer to the properties object of the module. More... | |
std::shared_ptr< WProperties > | getInformationProperties () const |
Return a pointer to the information properties object of the module. More... | |
const WBoolFlag & | isInitialized () const |
Determines whether the module instance is properly initialized. More... | |
const WBoolFlag & | isUseable () const |
Checks whether the module instance is ready to be used. More... | |
const WBoolFlag & | isAssociated () const |
Checks whether this module is associated with an container. More... | |
const WBoolFlag & | isReady () const |
Checks whether this module is ready. More... | |
const WBoolFlag & | isReadyOrCrashed () const |
This is the logical or of isReady and isCrashed. More... | |
const WBoolFlag & | isRunning () const |
Returns a flag denoting whether the thread currently is running or nor. More... | |
void | waitRestored () |
This method waits for the module to be restored completely. More... | |
bool | isRestoreNeeded () const |
Check whether this module is in restore mode. More... | |
void | setRestoreNeeded (bool restore=true) |
Change the restore mode. More... | |
void | reportRestoreComplete () |
Called by loaders to tell the module that loading has been completed. More... | |
std::shared_ptr< WModuleContainer > | getAssociatedContainer () const |
The container this module is associated with. More... | |
virtual boost::signals2::connection | subscribeSignal (MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier) |
Connects a specified notify function with a signal this module instance is offering. More... | |
virtual boost::signals2::connection | subscribeSignal (MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier) |
Connects a specified notify function with a signal this module instance is offering. More... | |
virtual std::shared_ptr< WProgressCombiner > | getRootProgressCombiner () |
Gets the modules base progress. More... | |
virtual const char ** | getXPMIcon () const |
Get the icon for this module in XPM format. More... | |
virtual MODULE_TYPE | getType () const |
Gets the type of the module. More... | |
void | disconnect () |
Completely disconnects all connected connectors of this module. More... | |
WCombinerTypes::WDisconnectList | getPossibleDisconnections () |
Gives a list of all WDisconnectCombiners possible. More... | |
boost::filesystem::path | getLocalPath () const |
Returns the local path of the module. More... | |
boost::filesystem::path | getLibPath () const |
Returns the absolute path to the library containing this module. More... | |
std::string | getPackageName () const |
Returns the name of the package the module belongs to, The package name basically is the name of the library containing this and maybe other modules. More... | |
bool | isDeprecated () const |
Checks whether the module was marked as deprecated. More... | |
std::string | getDeprecationMessage () const |
Queries the deprecation message of a module if specified. More... | |
virtual WModuleMetaInformation::ConstSPtr | getMetaInformation () const |
The meta information of this module. More... | |
const std::string & | getUUID () const |
Get the UUID of the module instance. More... | |
WPropString | getRuntimeName () const |
Returns the name the user has given this module. More... | |
const WRequirement * | checkRequirements () const |
This method checks whether all the requirements of the module are complied. More... | |
virtual boost::signals2::connection | subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier) |
Connects a specified notify function with a signal this thread instance is offering. More... | |
Public Member Functions inherited from WThreadedRunner | |
WThreadedRunner () | |
Default constructor. More... | |
virtual | ~WThreadedRunner () |
Destructor. More... | |
virtual void | run () |
Run thread. More... | |
void | run (THREADFUNCTION f) |
Run thread. More... | |
void | wait (bool requestFinish=false) |
Wait for the thread to be finished. More... | |
virtual void | requestStop () |
This method's purpose is to request a stop without waiting for it. More... | |
virtual boost::signals2::connection | subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier) |
Connects a specified notify function with a signal this thread instance is offering. More... | |
const WBoolFlag & | isCrashed () const |
Checks whether this thread has been crashed. More... | |
const std::string & | getCrashMessage () const |
Get the message of the exception finally causing the crash. More... | |
void | setThreadName (std::string name) |
Set the name of the thread. More... | |
std::string | getThreadName () const |
Returns the current thread name. More... | |
Public Member Functions inherited from WPrototyped | |
WPrototyped () | |
Default constructor. More... | |
virtual | ~WPrototyped () |
Destructor. More... | |
template<typename T > | |
bool | isA () |
Checks whether the actual prototype has the specified runtime type. More... | |
Protected Member Functions | |
virtual void | moduleMain () |
Entry point after loading the module. More... | |
virtual void | connectors () |
Initialize the connectors this module is using. More... | |
virtual void | properties () |
Initialize the properties for this module. More... | |
Protected Member Functions inherited from WModule | |
void | threadMain () |
Thread entry point. More... | |
virtual void | onThreadException (const WException &e) |
This method is called if an exception was caught, which came from the custom thread code. More... | |
void | setAssociatedContainer (std::shared_ptr< WModuleContainer > container) |
Sets the container this module is associated with. More... | |
virtual void | requirements () |
Initialize requirements in this function. More... | |
virtual std::string | deprecated () const |
This function allows module programmers to mark their modules deprecated in a user-friendly way. More... | |
void | initialize () |
Manages initialization. More... | |
virtual void | cleanup () |
Called whenever the module should shutdown. More... | |
void | addConnector (std::shared_ptr< WModuleInputConnector > con) |
Adds the specified connector to the list of inputs. More... | |
void | addConnector (std::shared_ptr< WModuleOutputConnector > con) |
Adds the specified connector to the list of outputs. More... | |
void | removeConnectors () |
Removes all connectors properly. More... | |
virtual void | activate () |
Callback for m_active. More... | |
virtual const t_GenericSignalHandlerType | getSignalHandler (MODULE_CONNECTOR_SIGNAL signal) |
Gives the signal handler function responsible for a given signal. More... | |
virtual void | notifyConnectionEstablished (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there) |
Gets called whenever a connector gets connected to the specified input. More... | |
virtual void | notifyConnectionClosed (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there) |
Gets called whenever a connection between a remote and local connector gets closed. More... | |
virtual void | notifyDataChange (std::shared_ptr< WModuleConnector > input, std::shared_ptr< WModuleConnector > output) |
Gets called when the data on one input connector changed. More... | |
void | ready () |
Call this whenever your module is ready and can react on property changes. More... | |
wlog::WStreamedLogger | infoLog () const |
Logger instance for comfortable info logging. More... | |
wlog::WStreamedLogger | debugLog () const |
Logger instance for comfortable debug logging. More... | |
wlog::WStreamedLogger | warnLog () const |
Logger instance for comfortable warning- logs. More... | |
wlog::WStreamedLogger | errorLog () const |
Logger instance for comfortable error logging. More... | |
void | setLocalPath (boost::filesystem::path path) |
Sets the local module path. More... | |
void | setLibPath (boost::filesystem::path path) |
Set the path to the library which contains this module. More... | |
void | setPackageName (std::string name) |
Set the package name. More... | |
Protected Member Functions inherited from WThreadedRunner | |
virtual void | notifyStop () |
Gets called when the thread should be stopped. More... | |
void | yield () const |
Give remaining execution timeslice to another thread. More... | |
void | sleep (const int32_t t) const |
Sets thread asleep. More... | |
void | msleep (const int32_t t) const |
Sets thread asleep. More... | |
void | waitForStop () |
Let the thread sleep until a stop request was given. More... | |
void | handleDeadlyException (const WException &e, std::string sender="WThreadedRunner") |
Handle the specified exception which was not caught in the thread, which basically means the thread has crashed. More... | |
Private Member Functions | |
void | initOSG (std::shared_ptr< WGridRegular3D > grid, std::shared_ptr< WTriangleMesh > mesh) |
Initializes the needed geodes, transformations and vertex arrays. More... | |
Private Attributes | |
std::shared_ptr< WModuleInputData< WDataSetVector > > | m_evec1In |
The input connector containing the DTI field whose derived field is used for LIC. More... | |
std::shared_ptr< WModuleInputData< WDataSetVector > > | m_evec2In |
The input connector containing the DTI field whose derived field is used for LIC. More... | |
std::shared_ptr< WModuleInputData< WDataSetVector > > | m_evalsIn |
The input connector containing the DTI field whose derived field is used for LIC. More... | |
std::shared_ptr< WModuleInputData< WTriangleMesh > > | m_meshIn |
The input containing the surface on which the LIC should be applied on. More... | |
WPropSelection | m_geometrySelection |
A property allowing the user to select whether the slices or the mesh should be used. More... | |
std::shared_ptr< WItemSelection > | m_geometrySelections |
A list of items that can be selected using m_geometrySelection. More... | |
std::shared_ptr< WCondition > | m_propCondition |
A condition used to notify about changes in several properties. More... | |
osg::ref_ptr< WGEGroupNode > | m_output |
The Geode containing all the slices and the mesh. More... | |
osg::ref_ptr< WGEManagedGroupNode > | m_root |
Scene root node. More... | |
WPropGroup | m_sliceGroup |
the group contains several slice properties More... | |
WPropGroup | m_geometryGroup |
the group contains several input geometry parameters More... | |
WPropGroup | m_licGroup |
the group contains several LIC properties More... | |
WPropBool | m_useSlices |
indicates whether the vector should be shown on slices or input geometry More... | |
WPropInt | m_xPos |
x position of the slice More... | |
WPropInt | m_yPos |
y position of the slice More... | |
WPropInt | m_zPos |
z position of the slice More... | |
WPropBool | m_showonX |
indicates whether the vector should be shown on slice X More... | |
WPropBool | m_showonY |
indicates whether the vector should be shown on slice Y More... | |
WPropBool | m_showonZ |
indicates whether the vector should be shown on slice Z More... | |
WPropBool | m_showHUD |
indicates whether to show the texture HUD More... | |
WPropBool | m_useEdges |
indicates whether to show the edges More... | |
WPropColor | m_useEdgesColor |
indicated whether the edges (if enabled) should be black or white or green or red or .... More... | |
WPropDouble | m_useEdgesStep |
define the steepness of the step function used to blend in the edge color. More... | |
WPropBool | m_useLight |
indicates whether to use Phong More... | |
WPropDouble | m_lightIntensity |
light intensity More... | |
WPropInt | m_numIters |
the number of iterations done per frame More... | |
WPropDouble | m_cmapRatio |
the ratio between colormap and LIC More... | |
WPropDouble | m_projectionAngleThreshold |
the angle threshold between surface and vector before clipping the vector. More... | |
WPropGroup | m_advancedLicGroup |
The group for more advanced LIC features. More... | |
WPropDouble | m_noiseRes |
The resolution scaling for the noise. More... | |
WPropDouble | m_faClip |
Clipp according to FA. More... | |
Additional Inherited Members | |
Public Types inherited from WModule | |
typedef std::vector< std::shared_ptr< WModuleInputConnector > > | InputConnectorList |
The type for the list of input connectors. More... | |
typedef std::vector< std::shared_ptr< WModuleOutputConnector > > | OutputConnectorList |
The type for the list of output connectors. More... | |
typedef std::shared_ptr< WModule > | SPtr |
Shared pointer to a WModule. More... | |
typedef std::shared_ptr< const WModule > | ConstSPtr |
Shared pointer to a const WModule. More... | |
Public Types inherited from WThreadedRunner | |
typedef std::shared_ptr< WThreadedRunner > | SPtr |
Abbreviation to a shared_ptr to this type. More... | |
typedef std::shared_ptr< const WThreadedRunner > | ConstSPtr |
Abbreviation to a const shared_ptr to this type. More... | |
typedef boost::function< void(void) > | THREADFUNCTION |
Type used for simple thread functions. More... | |
Static Public Member Functions inherited from WModule | |
static SPtr | findByUUID (std::string uuid) |
Find a module instance by UUID. More... | |
Static Public Member Functions inherited from WThreadedRunner | |
static void | setThisThreadName (std::string name) |
Static function to set the name of the calling thread. More... | |
Protected Types inherited from WModule | |
typedef std::vector< WRequirement * > | Requirements |
The type of the requirement list. More... | |
Protected Attributes inherited from WModule | |
std::shared_ptr< WProperties > | m_properties |
The property object for the module. More... | |
std::shared_ptr< WProperties > | m_infoProperties |
The property object for the module containing only module whose purpose is "PV_PURPOSE_INFORMNATION". More... | |
std::shared_ptr< WProgressCombiner > | m_progress |
Progress indicator used as parent for all progress' of this module. More... | |
WBoolFlag | m_initialized |
True if everything is initialized and ready to be used. More... | |
WBoolFlag | m_isAssociated |
True if container got associated with this flag. More... | |
WBoolFlag | m_isUsable |
True if associated && initialized. More... | |
WBoolFlag | m_isReady |
True if ready() was called. More... | |
WBoolFlag | m_isReadyOrCrashed |
It is true whenever m_isReady or WThreadedRunner::m_isCrashed is true. More... | |
WBoolFlag | m_isRunning |
True if the module currently is running. More... | |
WBoolFlag | m_isLoadFinished |
Flag to denote whether the module container and the project loader have finished their work. More... | |
bool | m_restoreMode |
Flag denoting the current restore mode. More... | |
std::shared_ptr< WProgress > | m_readyProgress |
Progress indicator for the "ready" state. More... | |
WConditionSet | m_moduleState |
The internal state of the module. More... | |
std::shared_ptr< WModuleContainer > | m_container |
The container this module belongs to. More... | |
InputConnectorList | m_inputConnectors |
Set of input connectors associated with this module. More... | |
OutputConnectorList | m_outputConnectors |
Set of output connectors associated with this module. More... | |
WPropBool | m_active |
True whenever the module should be active. More... | |
WPropString | m_runtimeName |
This property holds a user specified name for the current module instance. More... | |
boost::filesystem::path | m_localPath |
The path where the module binary resides in. More... | |
boost::filesystem::path | m_libPath |
The absolute path to the library containing this module. More... | |
std::string | m_packageName |
The name of the lib/the package containing this module. More... | |
Requirements | m_requirements |
The list of requirements. More... | |
Protected Attributes inherited from WThreadedRunner | |
boost::thread | m_thread |
Thread instance. More... | |
WBoolFlag | m_shutdownFlag |
Condition getting fired whenever the thread should quit. More... | |
WBoolFlag | m_isCrashed |
True whenever an exception is thrown during threadMain. More... | |
std::string | m_crashMessage |
The crash message. More... | |
This module takes a second order symmetric tensor dataset and uses it to apply an image space based (fast) fabric-like LIC to an arbitrary surface.
The surface can be specified as tri mesh or, if not specified, slices.
Definition at line 44 of file WMImageSpaceTensorLIC.h.
WMImageSpaceTensorLIC::WMImageSpaceTensorLIC | ( | ) |
Default constructor.
Definition at line 217 of file WMImageSpaceTensorLIC.cpp.
Referenced by factory().
|
virtual |
Destructor.
Definition at line 222 of file WMImageSpaceTensorLIC.cpp.
|
protectedvirtual |
Initialize the connectors this module is using.
Reimplemented from WModule.
Definition at line 242 of file WMImageSpaceTensorLIC.cpp.
References WModule::connectors(), WModuleInputData< T >::createAndAdd(), m_evalsIn, m_evec1In, m_evec2In, and m_meshIn.
|
virtual |
Due to the prototype design pattern used to build modules, this method returns a new instance of this method.
NOTE: it should never be initialized or modified in some other way. A simple new instance is required.
Implements WModule.
Definition at line 227 of file WMImageSpaceTensorLIC.cpp.
References WMImageSpaceTensorLIC().
|
virtual |
Gives back a description of this module.
Implements WPrototyped.
Definition at line 237 of file WMImageSpaceTensorLIC.cpp.
|
virtual |
Gives back the name of this module.
Implements WPrototyped.
Definition at line 232 of file WMImageSpaceTensorLIC.cpp.
|
private |
Initializes the needed geodes, transformations and vertex arrays.
This needs to be done once for each new dataset.
grid | the grid to places the slices in |
mesh | the mesh to use if not NULL and m_useSlices is false |
Definition at line 329 of file WMImageSpaceTensorLIC.cpp.
References wge::genFinitePlane(), m_output, m_showonX, m_showonY, m_showonZ, m_useSlices, m_xPos, m_yPos, m_zPos, and WModule::warnLog().
Referenced by moduleMain().
|
protectedvirtual |
Entry point after loading the module.
Runs in separate thread.
Implements WModule.
Definition at line 414 of file WMImageSpaceTensorLIC.cpp.
References WConditionSet::add(), WGEColormapping::apply(), WModule::debugLog(), wge::generateCullProxy(), WKernel::getGraphicsEngine(), WKernel::getRunningKernel(), initOSG(), WModule::m_active, m_cmapRatio, m_evalsIn, m_evec1In, m_evec2In, m_faClip, m_lightIntensity, WModule::m_localPath, m_meshIn, WModule::m_moduleState, m_noiseRes, m_numIters, m_output, m_projectionAngleThreshold, m_propCondition, m_root, m_showHUD, WThreadedRunner::m_shutdownFlag, m_useEdges, m_useEdgesColor, m_useEdgesStep, m_useLight, m_useSlices, m_xPos, m_yPos, m_zPos, WModule::ready(), WConditionSet::setResetable(), and WConditionSet::wait().
|
protectedvirtual |
Initialize the properties for this module.
Reimplemented from WModule.
Definition at line 256 of file WMImageSpaceTensorLIC.cpp.
References m_advancedLicGroup, m_cmapRatio, m_faClip, m_geometryGroup, m_licGroup, m_lightIntensity, m_noiseRes, m_numIters, m_projectionAngleThreshold, m_propCondition, WModule::m_properties, m_showHUD, m_showonX, m_showonY, m_showonZ, m_sliceGroup, m_useEdges, m_useEdgesColor, m_useEdgesStep, m_useLight, m_useSlices, m_xPos, m_yPos, m_zPos, and WModule::properties().
|
private |
The group for more advanced LIC features.
Definition at line 188 of file WMImageSpaceTensorLIC.h.
Referenced by properties().
|
private |
the ratio between colormap and LIC
Definition at line 181 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The input connector containing the DTI field whose derived field is used for LIC.
Definition at line 115 of file WMImageSpaceTensorLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
The input connector containing the DTI field whose derived field is used for LIC.
Definition at line 105 of file WMImageSpaceTensorLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
The input connector containing the DTI field whose derived field is used for LIC.
Definition at line 110 of file WMImageSpaceTensorLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
Clipp according to FA.
Definition at line 198 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
the group contains several input geometry parameters
Definition at line 149 of file WMImageSpaceTensorLIC.h.
Referenced by properties().
|
private |
A property allowing the user to select whether the slices or the mesh should be used.
Definition at line 125 of file WMImageSpaceTensorLIC.h.
|
private |
A list of items that can be selected using m_geometrySelection.
Definition at line 130 of file WMImageSpaceTensorLIC.h.
|
private |
the group contains several LIC properties
Definition at line 151 of file WMImageSpaceTensorLIC.h.
Referenced by properties().
|
private |
light intensity
Definition at line 177 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The input containing the surface on which the LIC should be applied on.
Definition at line 120 of file WMImageSpaceTensorLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
The resolution scaling for the noise.
Definition at line 193 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
the number of iterations done per frame
Definition at line 179 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The Geode containing all the slices and the mesh.
Definition at line 140 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), and moduleMain().
|
private |
the angle threshold between surface and vector before clipping the vector.
Definition at line 183 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
A condition used to notify about changes in several properties.
Definition at line 135 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
Scene root node.
Definition at line 145 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain().
|
private |
indicates whether to show the texture HUD
Definition at line 167 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether the vector should be shown on slice X
Definition at line 161 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), and properties().
|
private |
indicates whether the vector should be shown on slice Y
Definition at line 163 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), and properties().
|
private |
indicates whether the vector should be shown on slice Z
Definition at line 165 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), and properties().
|
private |
the group contains several slice properties
Definition at line 147 of file WMImageSpaceTensorLIC.h.
Referenced by properties().
|
private |
indicates whether to show the edges
Definition at line 169 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicated whether the edges (if enabled) should be black or white or green or red or ....
Definition at line 171 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
define the steepness of the step function used to blend in the edge color.
Definition at line 173 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether to use Phong
Definition at line 175 of file WMImageSpaceTensorLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether the vector should be shown on slices or input geometry
Definition at line 153 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
x position of the slice
Definition at line 155 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
y position of the slice
Definition at line 157 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
z position of the slice
Definition at line 159 of file WMImageSpaceTensorLIC.h.
Referenced by initOSG(), moduleMain(), and properties().