OpenWalnut
1.5.0dev
|
This module takes an vector dataset and used it to apply an image space based (fast) LIC to an arbitrary surface. More...
#include <WMImageSpaceLIC.h>
Public Member Functions | |
WMImageSpaceLIC () | |
Default constructor. More... | |
virtual | ~WMImageSpaceLIC () |
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_vectorsIn |
The input connector containing the vector field. More... | |
std::shared_ptr< WModuleInputData< WDataSetScalar > > | m_scalarIn |
The input connector containing the scalar 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... | |
WPropBool | m_useDepthCueing |
indicates whether to use depth cueing in the shader More... | |
WPropBool | m_useHighContrast |
use the high contrast version? 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... | |
WPropBool | m_3dNoise |
If true, a 3d noise texture is used for advection. More... | |
WPropDouble | m_3dNoiseRes |
The resolution scaling for the 3d noise. More... | |
WPropBool | m_3dNoiseAutoRes |
Automatically adapt resolution of 3d texture according to zoom level. 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 an vector dataset and used it to apply an image space based (fast) LIC to an arbitrary surface.
The surface can be specified as tri mesh or, if not specified, slices.
Definition at line 46 of file WMImageSpaceLIC.h.
WMImageSpaceLIC::WMImageSpaceLIC | ( | ) |
Default constructor.
Definition at line 60 of file WMImageSpaceLIC.cpp.
Referenced by factory().
|
virtual |
Destructor.
Definition at line 65 of file WMImageSpaceLIC.cpp.
|
protectedvirtual |
Initialize the connectors this module is using.
Reimplemented from WModule.
Definition at line 86 of file WMImageSpaceLIC.cpp.
References WModule::connectors(), WModuleInputData< T >::createAndAdd(), m_meshIn, m_scalarIn, and m_vectorsIn.
|
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 70 of file WMImageSpaceLIC.cpp.
References WMImageSpaceLIC().
|
virtual |
Gives back a description of this module.
Implements WPrototyped.
Definition at line 80 of file WMImageSpaceLIC.cpp.
|
virtual |
Gives back the name of this module.
Implements WPrototyped.
Definition at line 75 of file WMImageSpaceLIC.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 182 of file WMImageSpaceLIC.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 267 of file WMImageSpaceLIC.cpp.
References WConditionSet::add(), WGEColormapping::apply(), WModule::debugLog(), wge::generateCullProxy(), wge::genWhiteNoiseTexture(), WKernel::getGraphicsEngine(), WKernel::getRunningKernel(), initOSG(), m_3dNoise, m_3dNoiseAutoRes, m_3dNoiseRes, WModule::m_active, m_cmapRatio, m_lightIntensity, WModule::m_localPath, m_meshIn, WModule::m_moduleState, m_numIters, m_output, m_projectionAngleThreshold, m_propCondition, m_root, m_scalarIn, m_showHUD, WThreadedRunner::m_shutdownFlag, m_useDepthCueing, m_useEdges, m_useEdgesColor, m_useEdgesStep, m_useHighContrast, m_useLight, m_useSlices, m_vectorsIn, 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 102 of file WMImageSpaceLIC.cpp.
References m_3dNoise, m_3dNoiseAutoRes, m_3dNoiseRes, m_advancedLicGroup, m_cmapRatio, m_geometryGroup, m_licGroup, m_lightIntensity, m_numIters, m_projectionAngleThreshold, m_propCondition, WModule::m_properties, m_showHUD, m_showonX, m_showonY, m_showonZ, m_sliceGroup, m_useDepthCueing, m_useEdges, m_useEdgesColor, m_useEdgesStep, m_useHighContrast, m_useLight, m_useSlices, m_xPos, m_yPos, m_zPos, and WModule::properties().
|
private |
If true, a 3d noise texture is used for advection.
Definition at line 194 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
Automatically adapt resolution of 3d texture according to zoom level.
Definition at line 204 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The resolution scaling for the 3d noise.
Definition at line 199 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The group for more advanced LIC features.
Definition at line 189 of file WMImageSpaceLIC.h.
Referenced by properties().
|
private |
the ratio between colormap and LIC
Definition at line 182 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
the group contains several input geometry parameters
Definition at line 146 of file WMImageSpaceLIC.h.
Referenced by properties().
|
private |
A property allowing the user to select whether the slices or the mesh should be used.
Definition at line 122 of file WMImageSpaceLIC.h.
|
private |
A list of items that can be selected using m_geometrySelection.
Definition at line 127 of file WMImageSpaceLIC.h.
|
private |
the group contains several LIC properties
Definition at line 148 of file WMImageSpaceLIC.h.
Referenced by properties().
|
private |
light intensity
Definition at line 174 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The input containing the surface on which the LIC should be applied on.
Definition at line 117 of file WMImageSpaceLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
the number of iterations done per frame
Definition at line 180 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
The Geode containing all the slices and the mesh.
Definition at line 137 of file WMImageSpaceLIC.h.
Referenced by initOSG(), and moduleMain().
|
private |
the angle threshold between surface and vector before clipping the vector.
Definition at line 184 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
A condition used to notify about changes in several properties.
Definition at line 132 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
|
private |
The input connector containing the scalar field whose derived field is used for LIC.
Definition at line 112 of file WMImageSpaceLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
indicates whether to show the texture HUD
Definition at line 164 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether the vector should be shown on slice X
Definition at line 158 of file WMImageSpaceLIC.h.
Referenced by initOSG(), and properties().
|
private |
indicates whether the vector should be shown on slice Y
Definition at line 160 of file WMImageSpaceLIC.h.
Referenced by initOSG(), and properties().
|
private |
indicates whether the vector should be shown on slice Z
Definition at line 162 of file WMImageSpaceLIC.h.
Referenced by initOSG(), and properties().
|
private |
the group contains several slice properties
Definition at line 144 of file WMImageSpaceLIC.h.
Referenced by properties().
|
private |
indicates whether to use depth cueing in the shader
Definition at line 176 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether to show the edges
Definition at line 166 of file WMImageSpaceLIC.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 168 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
define the steepness of the step function used to blend in the edge color.
Definition at line 170 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
use the high contrast version?
Definition at line 178 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether to use Phong
Definition at line 172 of file WMImageSpaceLIC.h.
Referenced by moduleMain(), and properties().
|
private |
indicates whether the vector should be shown on slices or input geometry
Definition at line 150 of file WMImageSpaceLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
The input connector containing the vector field.
Definition at line 107 of file WMImageSpaceLIC.h.
Referenced by connectors(), and moduleMain().
|
private |
x position of the slice
Definition at line 152 of file WMImageSpaceLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
y position of the slice
Definition at line 154 of file WMImageSpaceLIC.h.
Referenced by initOSG(), moduleMain(), and properties().
|
private |
z position of the slice
Definition at line 156 of file WMImageSpaceLIC.h.
Referenced by initOSG(), moduleMain(), and properties().