OpenWalnut  1.5.0dev
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
WMMultiHistogramView Class Reference

A module that draws a histogram of one or mode scalar datasets in a custom widget. More...

#include <WMMultiHistogramView.h>

+ Inheritance diagram for WMMultiHistogramView:
+ Collaboration diagram for WMMultiHistogramView:

Public Member Functions

 WMMultiHistogramView ()
 Constuctor. More...
 
virtual ~WMMultiHistogramView ()
 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< WModulefactory () const
 Due to the prototype design pattern used to build modules, this method returns a new instance of this method. More...
 
virtual const char ** getXPMIcon () const
 Get the icon for this module in XPM format. More...
 
- Public Member Functions inherited from WModule
 WModule ()
 Constructs a new WModule instance. More...
 
virtual ~WModule ()
 Destructor. More...
 
const InputConnectorListgetInputConnectors () const
 Gives back input connectors. More...
 
std::shared_ptr< WModuleInputConnectorgetInputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleInputConnectorfindInputConnector (std::string name)
 Finds the named connector for the module. More...
 
const OutputConnectorListgetOutputConnectors () const
 Gives back output connectors. More...
 
std::shared_ptr< WModuleOutputConnectorgetOutputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleOutputConnectorfindOutputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleConnectorgetConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleConnectorfindConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WPropertiesgetProperties () const
 Return a pointer to the properties object of the module. More...
 
std::shared_ptr< WPropertiesgetInformationProperties () const
 Return a pointer to the information properties object of the module. More...
 
const WBoolFlagisInitialized () const
 Determines whether the module instance is properly initialized. More...
 
const WBoolFlagisUseable () const
 Checks whether the module instance is ready to be used. More...
 
const WBoolFlagisAssociated () const
 Checks whether this module is associated with an container. More...
 
const WBoolFlagisReady () const
 Checks whether this module is ready. More...
 
const WBoolFlagisReadyOrCrashed () const
 This is the logical or of isReady and isCrashed. More...
 
const WBoolFlagisRunning () 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< WModuleContainergetAssociatedContainer () 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< WProgressCombinergetRootProgressCombiner ()
 Gets the modules base progress. 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 WRequirementcheckRequirements () 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 WBoolFlagisCrashed () 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...
 
virtual void requirements ()
 Initialize requirements 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 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 handleMouseMove (WVector2f pos)
 Called on every mouse move event from the custom widget. More...
 
void handleResize (int x, int y, int width, int height)
 Called on every resize event from the custom widget. More...
 
void redraw ()
 Redraws the histogram and add it to the main geode. More...
 
void updateHistogramMax (bool cumulative)
 This updates the maximum value of the histograms. More...
 
void calculateFrameSize ()
 Finds a good size for the frame, depending on the chosen spacing for axis labels. More...
 
void calculateFramePosition ()
 Finds a good position of the frame relative to the lower left corner of the window. More...
 
void calculateHistograms ()
 This simply calculates a histogram per dataset, where the bin sizes and positions are the same for each histogram. More...
 
void createGeometryBars (int type)
 Creates the geometry for histogram bars. More...
 
void createGeometryStairs (int type)
 Creates the geometry for stairs (i.e. More...
 
void createGeometryCurves (int type)
 Creates the geometry for curves. More...
 
void createFrame ()
 Creates the geometry for the frame and the ticks/labels. More...
 
void createInfo (WVector2f mousePos)
 Writes the values of the currently selected histogram bin to the top right corner of the window. More...
 
double findOptimalSpacing (double intervalLength, double availableSpace, double textSize)
 This finds a suitable spacing of ticks to use for an axis with a certain length and value interval. More...
 
WVector2d histogramSpaceToWindowSpace (WVector2d const &v)
 This transforms histogram space coordinates to window coordinates. More...
 
WVector2d windowSpaceToHistogramSpace (WVector2d const &v)
 This is the inverse of histogramSpaceToWindowSpace. More...
 
void createNothing ()
 This simply prints a NYI message to the errorLog. More...
 

Private Attributes

boost::mutex m_createInfoMutex
 Whenever a new info node is made this mutex should be used. More...
 
boost::mutex m_redrawMutex
 Whenever a redraw is made this mutex should be used. More...
 
std::vector< std::shared_ptr< WHistogramBasic > > m_histograms
 A vector of histograms, one histogram per input. More...
 
std::shared_ptr< WConditionm_propCondition
 A condition for property updates. More...
 
int m_windowWidth
 The width of the window. More...
 
int m_windowHeight
 The height of the window. More...
 
WVector2d m_mousePos
 The position of the mouse cursor in window coordinates. More...
 
osg::ref_ptr< osg::Geode > m_infoNode
 Draws histogram bin info to the top right corner of the window. More...
 
osg::ref_ptr< osg::Geode > m_markerNode
 Draws a marker showing the currently selected histogram bin. More...
 
WUIViewWidget::SPtr m_widget
 Holds the reference to the custom widget used for displaying the histogram. More...
 
osg::ref_ptr< osg::Geode > m_frameNode
 Draws the frame and ticks/labels. More...
 
WVector2d m_histogramLowerLeft
 The lower left corner of the histogram in histogram coordinates. More...
 
WVector2d m_histogramUpperRight
 The upper right corner of the histogram in histogram coordinates. More...
 
WVector2d m_frameLowerLeft
 The lower left vertex of the frame box in histogram coordinates. More...
 
WVector2d m_frameUpperRight
 The upper right vertex of the frame box in histogram coordinates. More...
 
WVector2d m_frameSpacing
 The spacing between labels at the histogram axis in histogram coordinates. More...
 
WVector2d m_framePosition
 The space to the left and under the frame in window coordinates. More...
 
double const m_frameSize
 The distance between the histogram frame and the top resp. right side of the window in relative window coordinates. More...
 
int m_instanceID
 The number of this WMHistogram instance. Used to generate a unique window title for every instance of this module. More...
 
osg::ref_ptr< WGEGroupNodem_mainNode
 The scene node of the custom window. All geometry nodes are added as children of this node. More...
 
std::vector< std::shared_ptr< WModuleInputData< WDataSetSingle > > > m_input
 A vector of input connectors. More...
 
std::vector< std::shared_ptr< WDataSetSingle > > m_data
 A vector of current datasets. More...
 
std::vector< WPropColor > m_colors
 A vector of color properties for the datasets. More...
 
WPropInt m_histoBins
 A property that is used to set the number of bins to use. More...
 
WPropSelection m_styleSelection
 Allows to select which one of the geometry generation functions should be used. More...
 
std::vector< boost::function< void(void) > > m_geometryFunctions
 A vector containing functions to use for histogram geometry generation. More...
 

Static Private Attributes

static WCounter m_instanceCounter
 The instance counter used to get the instance ID. 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< WModuleSPtr
 Shared pointer to a WModule. More...
 
typedef std::shared_ptr< const WModuleConstSPtr
 Shared pointer to a const WModule. More...
 
- Public Types inherited from WThreadedRunner
typedef std::shared_ptr< WThreadedRunnerSPtr
 Abbreviation to a shared_ptr to this type. More...
 
typedef std::shared_ptr< const WThreadedRunnerConstSPtr
 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< WPropertiesm_properties
 The property object for the module. More...
 
std::shared_ptr< WPropertiesm_infoProperties
 The property object for the module containing only module whose purpose is "PV_PURPOSE_INFORMNATION". More...
 
std::shared_ptr< WProgressCombinerm_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< WProgressm_readyProgress
 Progress indicator for the "ready" state. More...
 
WConditionSet m_moduleState
 The internal state of the module. More...
 
std::shared_ptr< WModuleContainerm_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...
 

Detailed Description

A module that draws a histogram of one or mode scalar datasets in a custom widget.

Definition at line 53 of file WMMultiHistogramView.h.

Constructor & Destructor Documentation

◆ WMMultiHistogramView()

WMMultiHistogramView::WMMultiHistogramView ( )

Constuctor.

Definition at line 56 of file WMMultiHistogramView.cpp.

Referenced by factory().

+ Here is the caller graph for this function:

◆ ~WMMultiHistogramView()

WMMultiHistogramView::~WMMultiHistogramView ( )
virtual

Destructor.

Definition at line 63 of file WMMultiHistogramView.cpp.

Member Function Documentation

◆ calculateFramePosition()

void WMMultiHistogramView::calculateFramePosition ( )
private

Finds a good position of the frame relative to the lower left corner of the window.

Depends on the current frame size and the size of the text to be written left to/under the frame.

Definition at line 949 of file WMMultiHistogramView.cpp.

References m_framePosition, and m_frameSpacing.

Referenced by createGeometryBars(), createGeometryCurves(), and createGeometryStairs().

+ Here is the caller graph for this function:

◆ calculateFrameSize()

void WMMultiHistogramView::calculateFrameSize ( )
private

Finds a good size for the frame, depending on the chosen spacing for axis labels.

Definition at line 883 of file WMMultiHistogramView.cpp.

References findOptimalSpacing(), m_frameLowerLeft, m_framePosition, m_frameSize, m_frameSpacing, m_frameUpperRight, m_histogramLowerLeft, m_histogramUpperRight, m_windowHeight, and m_windowWidth.

Referenced by createGeometryBars(), createGeometryCurves(), and createGeometryStairs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ calculateHistograms()

void WMMultiHistogramView::calculateHistograms ( )
private

This simply calculates a histogram per dataset, where the bin sizes and positions are the same for each histogram.

Definition at line 341 of file WMMultiHistogramView.cpp.

References m_data, m_histoBins, m_histogramLowerLeft, m_histograms, m_histogramUpperRight, and updateHistogramMax().

Referenced by moduleMain().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ connectors()

void WMMultiHistogramView::connectors ( )
protectedvirtual

Initialize the connectors this module is using.

Reimplemented from WModule.

Definition at line 86 of file WMMultiHistogramView.cpp.

References WModule::addConnector(), WModule::connectors(), m_input, and string_utils::toString().

+ Here is the call graph for this function:

◆ createFrame()

void WMMultiHistogramView::createFrame ( )
private

Creates the geometry for the frame and the ticks/labels.

Definition at line 1001 of file WMMultiHistogramView.cpp.

References WPathHelper::getAllFonts(), histogramSpaceToWindowSpace(), m_data, m_frameLowerLeft, m_frameNode, m_frameSpacing, m_frameUpperRight, m_mainNode, and string_utils::toString().

Referenced by redraw().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createGeometryBars()

void WMMultiHistogramView::createGeometryBars ( int  type)
private

Creates the geometry for histogram bars.

The type parameter defines how the bars are drawn:

1 - transparent bars on top of each other 2 - bars of a bin are drawn next to each other 3 - stacked bars

Parameters
typeThe type of the bars.

Definition at line 418 of file WMMultiHistogramView.cpp.

References calculateFramePosition(), calculateFrameSize(), histogramSpaceToWindowSpace(), m_colors, m_data, m_histograms, m_mainNode, and updateHistogramMax().

Referenced by properties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createGeometryCurves()

void WMMultiHistogramView::createGeometryCurves ( int  type)
private

Creates the geometry for curves.

The type parameter can be 1 (normal) or 2 (stacked).

Parameters
typeThe type of the curves.

Definition at line 592 of file WMMultiHistogramView.cpp.

References calculateFramePosition(), calculateFrameSize(), histogramSpaceToWindowSpace(), m_colors, m_data, m_histograms, m_mainNode, and updateHistogramMax().

Referenced by properties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createGeometryStairs()

void WMMultiHistogramView::createGeometryStairs ( int  type)
private

Creates the geometry for stairs (i.e.

bars that are not filled). The type parameter can be 1 (normal) or 2 (stacked).

Parameters
typeThe type of the stairs.

Definition at line 746 of file WMMultiHistogramView.cpp.

References calculateFramePosition(), calculateFrameSize(), histogramSpaceToWindowSpace(), m_colors, m_data, m_histograms, m_mainNode, and updateHistogramMax().

Referenced by properties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createInfo()

void WMMultiHistogramView::createInfo ( WVector2f  mousePos)
private

Writes the values of the currently selected histogram bin to the top right corner of the window.

The selected bin is the one pointed to by the mouse cursor.

Also adds a quad denoting the currently selected bin that is drawn behind the geometry.

Parameters
mousePosCurrent mouse position

Definition at line 1099 of file WMMultiHistogramView.cpp.

References WPathHelper::getAllFonts(), histogramSpaceToWindowSpace(), m_colors, m_createInfoMutex, m_data, m_histogramLowerLeft, m_histograms, m_histogramUpperRight, m_infoNode, m_mainNode, m_markerNode, m_windowHeight, m_windowWidth, string_utils::toString(), and windowSpaceToHistogramSpace().

Referenced by handleMouseMove().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createNothing()

void WMMultiHistogramView::createNothing ( )
private

This simply prints a NYI message to the errorLog.

Definition at line 1221 of file WMMultiHistogramView.cpp.

References WModule::errorLog().

+ Here is the call graph for this function:

◆ factory()

std::shared_ptr< WModule > WMMultiHistogramView::factory ( ) const
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.

Returns
the prototype used to create every module in OpenWalnut.

Implements WModule.

Definition at line 67 of file WMMultiHistogramView.cpp.

References WMMultiHistogramView().

+ Here is the call graph for this function:

◆ findOptimalSpacing()

double WMMultiHistogramView::findOptimalSpacing ( double  intervalLength,
double  availableSpace,
double  textSize 
)
private

This finds a suitable spacing of ticks to use for an axis with a certain length and value interval.

Parameters
intervalLengthThe length of the value interval to represent.
availableSpaceThe space available (in pixels on screen) for the interval.
textSizeThe estimated size of the text for every tick.
Returns
A good distance between ticks to use for labeling an axis.

Definition at line 839 of file WMMultiHistogramView.cpp.

Referenced by calculateFrameSize().

+ Here is the caller graph for this function:

◆ getDescription()

const std::string WMMultiHistogramView::getDescription ( ) const
virtual

Gives back a description of this module.

Returns
description to module.

Implements WPrototyped.

Definition at line 81 of file WMMultiHistogramView.cpp.

◆ getName()

const std::string WMMultiHistogramView::getName ( ) const
virtual

Gives back the name of this module.

Returns
the module's name.

Implements WPrototyped.

Definition at line 76 of file WMMultiHistogramView.cpp.

Referenced by moduleMain().

+ Here is the caller graph for this function:

◆ getXPMIcon()

const char ** WMMultiHistogramView::getXPMIcon ( ) const
virtual

Get the icon for this module in XPM format.

Returns
The icon.

Reimplemented from WModule.

Definition at line 72 of file WMMultiHistogramView.cpp.

◆ handleMouseMove()

void WMMultiHistogramView::handleMouseMove ( WVector2f  pos)
private

Called on every mouse move event from the custom widget.

Note
this runs in OSG thread.
Parameters
posNew mouse position.

Definition at line 161 of file WMMultiHistogramView.cpp.

References createInfo(), m_histograms, m_infoNode, m_mainNode, and m_markerNode.

Referenced by moduleMain().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleResize()

void WMMultiHistogramView::handleResize ( int  x,
int  y,
int  width,
int  height 
)
private

Called on every resize event from the custom widget.

Note
this runs in OSG thread.
Parameters
xX pos
yY pos
widthWidht
heightHeight

Definition at line 181 of file WMMultiHistogramView.cpp.

References m_histograms, m_mainNode, m_redrawMutex, m_windowHeight, m_windowWidth, and redraw().

Referenced by moduleMain().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ histogramSpaceToWindowSpace()

WVector2d WMMultiHistogramView::histogramSpaceToWindowSpace ( WVector2d const &  v)
private

This transforms histogram space coordinates to window coordinates.

Histogram coordinates range from the minimum to the maximum values of all histograms in x-direction and from 0 to the maximum bin value over all histograms (or the maximum bin value where the bins of all datasets are added; this is for cumulative histogram types).

Note
The frame size and position must be already calculated for this function to give meaningful results.
Parameters
vThe input in histogram coords.
Returns
The given position in window coords.

Definition at line 959 of file WMMultiHistogramView.cpp.

References m_frameLowerLeft, m_framePosition, m_frameSize, m_frameUpperRight, m_histogramLowerLeft, m_windowHeight, and m_windowWidth.

Referenced by createFrame(), createGeometryBars(), createGeometryCurves(), createGeometryStairs(), and createInfo().

+ Here is the caller graph for this function:

◆ moduleMain()

void WMMultiHistogramView::moduleMain ( )
protectedvirtual

◆ properties()

void WMMultiHistogramView::properties ( )
protectedvirtual

◆ redraw()

void WMMultiHistogramView::redraw ( )
private

Redraws the histogram and add it to the main geode.

Definition at line 322 of file WMMultiHistogramView.cpp.

References createFrame(), WModule::errorLog(), m_geometryFunctions, and m_styleSelection.

Referenced by handleResize(), and moduleMain().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ requirements()

void WMMultiHistogramView::requirements ( )
protectedvirtual

Initialize requirements for this module.

Reimplemented from WModule.

Definition at line 154 of file WMMultiHistogramView.cpp.

References WModule::m_requirements.

◆ updateHistogramMax()

void WMMultiHistogramView::updateHistogramMax ( bool  cumulative)
private

This updates the maximum value of the histograms.

Parameters
cumulativeIf true, histogram values of the datasets will be added for each bin.

Definition at line 390 of file WMMultiHistogramView.cpp.

References m_data, m_histograms, and m_histogramUpperRight.

Referenced by calculateHistograms(), createGeometryBars(), createGeometryCurves(), and createGeometryStairs().

+ Here is the caller graph for this function:

◆ windowSpaceToHistogramSpace()

WVector2d WMMultiHistogramView::windowSpaceToHistogramSpace ( WVector2d const &  v)
private

This is the inverse of histogramSpaceToWindowSpace.

See also
histogramSpaceToWindowSpace
Note
The frame size and position must be already calculated for this function to give meaningful results.
Parameters
vThe input in window coords.
Returns
The given position in histogram coords.

Definition at line 986 of file WMMultiHistogramView.cpp.

References m_frameLowerLeft, m_framePosition, m_frameSize, m_frameUpperRight, m_histogramLowerLeft, m_windowHeight, and m_windowWidth.

Referenced by createInfo().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_colors

std::vector< WPropColor > WMMultiHistogramView::m_colors
private

A vector of color properties for the datasets.

Definition at line 326 of file WMMultiHistogramView.h.

Referenced by createGeometryBars(), createGeometryCurves(), createGeometryStairs(), createInfo(), moduleMain(), and properties().

◆ m_createInfoMutex

boost::mutex WMMultiHistogramView::m_createInfoMutex
private

Whenever a new info node is made this mutex should be used.

Definition at line 137 of file WMMultiHistogramView.h.

Referenced by createInfo().

◆ m_data

std::vector< std::shared_ptr< WDataSetSingle > > WMMultiHistogramView::m_data
private

◆ m_frameLowerLeft

WVector2d WMMultiHistogramView::m_frameLowerLeft
private

The lower left vertex of the frame box in histogram coordinates.

Definition at line 294 of file WMMultiHistogramView.h.

Referenced by calculateFrameSize(), createFrame(), histogramSpaceToWindowSpace(), and windowSpaceToHistogramSpace().

◆ m_frameNode

osg::ref_ptr< osg::Geode > WMMultiHistogramView::m_frameNode
private

Draws the frame and ticks/labels.

Definition at line 285 of file WMMultiHistogramView.h.

Referenced by createFrame().

◆ m_framePosition

WVector2d WMMultiHistogramView::m_framePosition
private

The space to the left and under the frame in window coordinates.

Definition at line 303 of file WMMultiHistogramView.h.

Referenced by calculateFramePosition(), calculateFrameSize(), histogramSpaceToWindowSpace(), and windowSpaceToHistogramSpace().

◆ m_frameSize

double const WMMultiHistogramView::m_frameSize
private

The distance between the histogram frame and the top resp. right side of the window in relative window coordinates.

Definition at line 306 of file WMMultiHistogramView.h.

Referenced by calculateFrameSize(), histogramSpaceToWindowSpace(), and windowSpaceToHistogramSpace().

◆ m_frameSpacing

WVector2d WMMultiHistogramView::m_frameSpacing
private

The spacing between labels at the histogram axis in histogram coordinates.

Definition at line 300 of file WMMultiHistogramView.h.

Referenced by calculateFramePosition(), calculateFrameSize(), and createFrame().

◆ m_frameUpperRight

WVector2d WMMultiHistogramView::m_frameUpperRight
private

The upper right vertex of the frame box in histogram coordinates.

Definition at line 297 of file WMMultiHistogramView.h.

Referenced by calculateFrameSize(), createFrame(), histogramSpaceToWindowSpace(), and windowSpaceToHistogramSpace().

◆ m_geometryFunctions

std::vector< boost::function< void( void ) > > WMMultiHistogramView::m_geometryFunctions
private

A vector containing functions to use for histogram geometry generation.

Definition at line 337 of file WMMultiHistogramView.h.

Referenced by properties(), and redraw().

◆ m_histoBins

WPropInt WMMultiHistogramView::m_histoBins
private

A property that is used to set the number of bins to use.

Definition at line 329 of file WMMultiHistogramView.h.

Referenced by calculateHistograms(), moduleMain(), and properties().

◆ m_histogramLowerLeft

WVector2d WMMultiHistogramView::m_histogramLowerLeft
private

The lower left corner of the histogram in histogram coordinates.

Definition at line 288 of file WMMultiHistogramView.h.

Referenced by calculateFrameSize(), calculateHistograms(), createInfo(), histogramSpaceToWindowSpace(), and windowSpaceToHistogramSpace().

◆ m_histograms

std::vector< std::shared_ptr< WHistogramBasic > > WMMultiHistogramView::m_histograms
private

A vector of histograms, one histogram per input.

Histograms may be empty if an input does not have a valid dataset.

Definition at line 261 of file WMMultiHistogramView.h.

Referenced by calculateHistograms(), createGeometryBars(), createGeometryCurves(), createGeometryStairs(), createInfo(), handleMouseMove(), handleResize(), and updateHistogramMax().

◆ m_histogramUpperRight

WVector2d WMMultiHistogramView::m_histogramUpperRight
private

The upper right corner of the histogram in histogram coordinates.

Definition at line 291 of file WMMultiHistogramView.h.

Referenced by calculateFrameSize(), calculateHistograms(), createInfo(), and updateHistogramMax().

◆ m_infoNode

osg::ref_ptr< osg::Geode > WMMultiHistogramView::m_infoNode
private

Draws histogram bin info to the top right corner of the window.

Definition at line 276 of file WMMultiHistogramView.h.

Referenced by createInfo(), and handleMouseMove().

◆ m_input

std::vector< std::shared_ptr< WModuleInputData< WDataSetSingle > > > WMMultiHistogramView::m_input
private

A vector of input connectors.

Definition at line 320 of file WMMultiHistogramView.h.

Referenced by connectors(), and moduleMain().

◆ m_instanceCounter

WCounter WMMultiHistogramView::m_instanceCounter
staticprivate

The instance counter used to get the instance ID.

Definition at line 312 of file WMMultiHistogramView.h.

Referenced by moduleMain().

◆ m_instanceID

int WMMultiHistogramView::m_instanceID
private

The number of this WMHistogram instance. Used to generate a unique window title for every instance of this module.

Definition at line 309 of file WMMultiHistogramView.h.

Referenced by moduleMain().

◆ m_mainNode

osg::ref_ptr< WGEGroupNode > WMMultiHistogramView::m_mainNode
private

The scene node of the custom window. All geometry nodes are added as children of this node.

Definition at line 315 of file WMMultiHistogramView.h.

Referenced by createFrame(), createGeometryBars(), createGeometryCurves(), createGeometryStairs(), createInfo(), handleMouseMove(), handleResize(), and moduleMain().

◆ m_markerNode

osg::ref_ptr< osg::Geode > WMMultiHistogramView::m_markerNode
private

Draws a marker showing the currently selected histogram bin.

Definition at line 279 of file WMMultiHistogramView.h.

Referenced by createInfo(), and handleMouseMove().

◆ m_mousePos

WVector2d WMMultiHistogramView::m_mousePos
private

The position of the mouse cursor in window coordinates.

Definition at line 273 of file WMMultiHistogramView.h.

◆ m_propCondition

std::shared_ptr< WCondition > WMMultiHistogramView::m_propCondition
private

A condition for property updates.

Definition at line 264 of file WMMultiHistogramView.h.

Referenced by moduleMain(), and properties().

◆ m_redrawMutex

boost::mutex WMMultiHistogramView::m_redrawMutex
private

Whenever a redraw is made this mutex should be used.

Definition at line 142 of file WMMultiHistogramView.h.

Referenced by handleResize(), and moduleMain().

◆ m_styleSelection

WPropSelection WMMultiHistogramView::m_styleSelection
private

Allows to select which one of the geometry generation functions should be used.

Definition at line 334 of file WMMultiHistogramView.h.

Referenced by moduleMain(), properties(), and redraw().

◆ m_widget

WUIViewWidget::SPtr WMMultiHistogramView::m_widget
private

Holds the reference to the custom widget used for displaying the histogram.

Definition at line 282 of file WMMultiHistogramView.h.

Referenced by moduleMain().

◆ m_windowHeight

int WMMultiHistogramView::m_windowHeight
private

◆ m_windowWidth

int WMMultiHistogramView::m_windowWidth
private

The documentation for this class was generated from the following files: