OpenWalnut  1.5.0dev
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
WMPointConnector Class Reference

This module connects the points in a point dataset. More...

#include <WMPointConnector.h>

+ Inheritance diagram for WMPointConnector:
+ Collaboration diagram for WMPointConnector:

Public Types

typedef std::shared_ptr< std::vector< float > > SPFloatVector
 represents a std::shared_ptr to a vector containing a vector of floats. More...
 
typedef std::shared_ptr< std::vector< size_t > > SPSizeVector
 represents a std::shared_ptr to a vector containing a vector of size_t. More...
 
typedef std::shared_ptr< WMPointConnectorSPtr
 A shared_ptr to this class. More...
 
- Public Types inherited from WModuleContainer
typedef std::vector< std::shared_ptr< WModule > > ModuleVectorType
 A vector of modules. More...
 
typedef std::set< std::shared_ptr< WModule > > ModuleContainerType
 For shortening: a type defining a shared vector of WModule pointers. More...
 
typedef WSharedObject< ModuleContainerTypeModuleSharedContainerType
 The alias for a shared container. More...
 
typedef ModuleContainerType::const_iterator ModuleConstIterator
 The const iterator type of the container. More...
 
typedef ModuleContainerType::iterator ModuleIterator
 The iterator type of the container. More...
 
typedef std::set< std::shared_ptr< WDataModule > > DataModuleListType
 Simple type for WDataModule pointer lists. More...
 
- 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...
 

Public Member Functions

 WMPointConnector ()
 Constructor. More...
 
virtual ~WMPointConnector ()
 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...
 
void handleClick (osg::Vec3 cameraPosition, osg::Vec3 direction, bool isLeftClick)
 Handles a click on the drawing area. More...
 
void updatePoints ()
 Redraws the current vertices with their colors. More...
 
void updateOutput ()
 Updates the fiber output. More...
 
void updateAll ()
 Updates all. More...
 
std::shared_ptr< WConnectorDatagetConnectorData ()
 
std::shared_ptr< WFiberHandlergetFiberHandler ()
 
std::shared_ptr< WOnscreenSelectiongetOnscreenSelection ()
 
WPropPosition getScaling ()
 
void pushEventQueue (std::function< void() > func)
 Pushes a function to the selection queue. More...
 
void acceptPrediction ()
 Accepts the current prediction. More...
 
- Public Member Functions inherited from WModuleContainer
 WModuleContainer (std::string name="Unnamed Module Container", std::string description="Used as container for several modules.")
 Constructor. More...
 
virtual ~WModuleContainer ()
 Destructor. More...
 
virtual void add (std::shared_ptr< WModule > module, bool run=true)
 Add a module to this container and start it. More...
 
virtual WModule::SPtr createAndAdd (std::string name)
 Convenience method to create a module instance with a given name and automatically add it to the container. More...
 
virtual void remove (std::shared_ptr< WModule > module)
 Remove the given module from this container if it is associated with it. More...
 
virtual void removeAll ()
 Removes all modules from this container. More...
 
virtual void stop ()
 Stops all modules inside this container. More...
 
virtual void addDefaultNotifier (MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier)
 Add a specified notifier to the list of default notifiers which get connected to each added module. More...
 
virtual void addDefaultNotifier (MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier)
 Add a specified notifier to the list of default notifiers which get connected to each added module. More...
 
virtual void addDefaultNotifier (MODULE_CONNECTOR_SIGNAL signal, t_GenericSignalHandlerType notifier)
 Add a specified notifier to the list of default notifiers which get connected to each added module. More...
 
virtual std::shared_ptr< WModuleapplyModule (std::shared_ptr< WModule > applyOn, std::string what, bool tryOnly=false)
 Function combines two modules. More...
 
virtual std::shared_ptr< WModuleapplyModule (std::shared_ptr< WModule > applyOn, std::shared_ptr< WModule > prototype)
 Function combines two modules. More...
 
WBatchLoader::SPtr loadDataSets (std::vector< std::string > filenames, bool suppressColormaps=false)
 Load specified datasets. More...
 
WBatchLoader::SPtr loadDataSetsSynchronously (std::vector< std::string > filenames, bool suppressColormaps=false)
 Loads the specified files synchronously. More...
 
void addPendingThread (std::shared_ptr< WThreadedRunner > thread)
 Add the specified thread to the list of pending jobs. More...
 
void finishedPendingThread (std::shared_ptr< WThreadedRunner > thread)
 The specified thread has finished and does not longer depend upon this container instance. More...
 
void setCrashIfModuleCrashes (bool crashIfCrashed=true)
 Sets a flag denoting whether the container (which also is a module) should be marked as "crashed" if a nested module crashes. More...
 
DataModuleListType getDataModules ()
 Returns a vector of pointers to the loaded data modules in the container. More...
 
ModuleSharedContainerType::ReadTicket getModules () const
 Method returns a read ticket allowing read-access to the list of modules inside the container. More...
 
ModuleVectorType getModules (std::string name) const
 Queries the container to find all modules with a given name. More...
 
WCombinerTypes::WCompatiblesList getPossibleConnections (std::shared_ptr< WModule > module)
 This method creates a list of combiner instances, for each possible connection that can be made between the specified module and the module currently inside the container. 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 activate ()
 Deactivates or activates the inner modules when active changes. More...
 
- Protected Member Functions inherited from WModuleContainer
virtual void moduleError (std::shared_ptr< WModule > module, const WException &exception)
 This method is called whenever a module inside the container crashes. 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 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

float hitVertex (osg::Vec3 rayStart, osg::Vec3 rayDir, osg::Vec3 vertex, float radius)
 Checks if a vertex with a certain radius is hit by a ray. More...
 
void createPointRenderer ()
 Creates the WMPointRenderer and runs it. More...
 
void createFiberDisplay ()
 Creates the WMFiberDisplay and runs it. More...
 
void createHandler ()
 Creates the WKeyboardHandler and registers them. More...
 
void handleInput ()
 Handles the input of this module. More...
 
bool findClickedPoint (osg::Vec3 cameraPosition, osg::Vec3 direction, size_t *hitIdx)
 Finds the point that was clicked and writes it into hitIdx, while return whether a point was hit. More...
 
void toggleActivationOfModule (WModule::SPtr mod)
 Toggles the activation of a module. More...
 
void selectionEnd (WOnscreenSelection::WSelectionType type, float x, float y)
 The end callback of m_onscreenSelection. More...
 
bool isAdaptivelyHidden (osg::Vec3 vertex, osg::Vec3 *from=NULL)
 Checks whether a vertex is adaptively hidden. More...
 
void handleClickSelection (bool clickType, double x, double y)
 Handles a selection with only one click. More...
 
void handleLeftSelection (std::vector< WPosition > positions)
 Handles the selection of a left click. More...
 
void handleRightSelection (std::vector< WPosition > positions)
 Handles the selection of a right click. More...
 
void createPrediction ()
 Creates a track continuation prediction. More...
 

Private Attributes

WModule::SPtr m_pointRenderer
 The WMPointRenderer associated with this module. More...
 
WModule::SPtr m_fiberDisplay
 The WMFiberDisplay associated with this module. More...
 
std::shared_ptr< WConnectorDatam_connectorData
 The data of this module. More...
 
std::shared_ptr< WFiberHandlerm_fiberHandler
 The WFiberHandler of this module. More...
 
std::shared_ptr< WModuleInputData< WDataSetPoints > > m_pointInput
 An input connector used to get points from other modules. More...
 
std::shared_ptr< WModuleOutputData< WDataSetFibers > > m_fiberOutput
 An output connector used to provide fibers to other modules. More...
 
std::shared_ptr< WModuleOutputData< WDataSetPoints > > m_pointOutput
 The internal pointOutput to pass data to the WMPointRenderer. More...
 
std::shared_ptr< WOnscreenSelectionm_onscreenSelection
 Enables possibility for multiselection of points. More...
 
std::vector< std::function< void() > > m_eventQueue
 A vector for the events. More...
 
std::mutex m_eventMutex
 A mutex for the vector to make it thread-safe. More...
 
std::vector< WPositionm_prediction
 The current prediction. More...
 
WCondition::SPtr m_eventCondition
 A condition notifying when something was added to the event queue. More...
 
osg::ref_ptr< WKeyboardHandlerm_keyboardHandler
 The keyboard handler for this point connector. More...
 
WPropBool m_enableSAPT
 Property to enable the adjusted dijkstra. More...
 
WPropBool m_enableAdaptiveVisibility
 Property to enable adaptive visibility. More...
 
WPropBool m_enablePrediction
 Enables the prediction. More...
 
WPropDouble m_adaptiveVisibilityAngle
 Property to set the angle for the adaptive visibility. More...
 
WPropDouble m_hiddenOpacity
 Property to set the opacity of the hidden points. More...
 
WPropPosition m_scaling
 Property for the scaling as Vector. More...
 
WPropBool m_enableSizes
 Property to enable the sizes. More...
 

Friends

class WMPointConnectorTest
 Test is your best ... More...
 

Additional Inherited Members

- 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 WModuleContainer
ModuleSharedContainerType m_modules
 The modules associated with this container. More...
 
std::string m_name
 Name of the module. More...
 
std::string m_description
 Description of the module. More...
 
std::shared_mutex m_errorNotifiersLock
 Lock for error notifiers set. More...
 
std::list< t_ModuleErrorSignalHandlerType > m_errorNotifiers
 The error notifiers connected to added modules by default. More...
 
std::shared_mutex m_readyNotifiersLock
 Lock for ready notifiers set. More...
 
std::list< t_ModuleGenericSignalHandlerType > m_readyNotifiers
 The ready notifiers connected to added modules by default. More...
 
std::shared_mutex m_associatedNotifiersLock
 Lock for associated notifiers set. More...
 
std::list< t_ModuleGenericSignalHandlerType > m_associatedNotifiers
 The notifiers connected to added modules by default and fired whenever the module got associated. More...
 
std::shared_mutex m_removedNotifiersLock
 Lock for remove-notifiers set. More...
 
std::list< t_ModuleGenericSignalHandlerType > m_removedNotifiers
 The notifiers connected to added modules by default and fired whenever the module got removed again. More...
 
std::shared_mutex m_connectorNotifiersLock
 Lock for connector-notifiers set. More...
 
std::list< t_GenericSignalHandlerType > m_connectorEstablishedNotifiers
 The notifiers connected to added modules by default and fired whenever the module connectors got connected. More...
 
std::list< t_GenericSignalHandlerType > m_connectorClosedNotifiers
 The notifiers connected to added modules by default and fired whenever the module connectors got disconnected. More...
 
std::set< std::shared_ptr< WThreadedRunner > > m_pendingThreads
 Set of all threads that currently depend upon this container. More...
 
std::shared_mutex m_pendingThreadsLock
 Lock for m_pendingThreads. More...
 
bool m_crashIfModuleCrashes
 This flag denotes whether the whole container should be marked as crashed if one of the contained modules crashes. 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

This module connects the points in a point dataset.

Definition at line 57 of file WMPointConnector.h.

Member Typedef Documentation

◆ SPFloatVector

typedef std::shared_ptr< std::vector< float > > WMPointConnector::SPFloatVector

represents a std::shared_ptr to a vector containing a vector of floats.

Definition at line 68 of file WMPointConnector.h.

◆ SPSizeVector

typedef std::shared_ptr< std::vector< size_t > > WMPointConnector::SPSizeVector

represents a std::shared_ptr to a vector containing a vector of size_t.

Definition at line 73 of file WMPointConnector.h.

◆ SPtr

typedef std::shared_ptr< WMPointConnector > WMPointConnector::SPtr

A shared_ptr to this class.

Definition at line 78 of file WMPointConnector.h.

Constructor & Destructor Documentation

◆ WMPointConnector()

WMPointConnector::WMPointConnector ( )

Constructor.

Creates the module skeleton.

Definition at line 46 of file WMPointConnector.cpp.

Referenced by factory().

+ Here is the caller graph for this function:

◆ ~WMPointConnector()

WMPointConnector::~WMPointConnector ( )
virtual

Destructor.

Definition at line 54 of file WMPointConnector.cpp.

References WModule::removeConnectors().

+ Here is the call graph for this function:

Member Function Documentation

◆ acceptPrediction()

void WMPointConnector::acceptPrediction ( )

Accepts the current prediction.

Definition at line 648 of file WMPointConnector.cpp.

References m_connectorData, m_fiberHandler, m_prediction, and updateAll().

Referenced by WKeyboardHandler::handle().

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

◆ activate()

void WMPointConnector::activate ( )
protectedvirtual

Deactivates or activates the inner modules when active changes.

Reimplemented from WModule.

Definition at line 178 of file WMPointConnector.cpp.

References WModule::m_active, m_fiberDisplay, and m_pointRenderer.

◆ connectors()

void WMPointConnector::connectors ( )
protectedvirtual

Initialize the connectors this module is using.

Reimplemented from WModule.

Definition at line 79 of file WMPointConnector.cpp.

References WModule::connectors(), WModuleOutputData< T >::create(), WModuleInputData< T >::createAndAdd(), WModuleOutputData< T >::createAndAdd(), m_fiberOutput, m_pointInput, and m_pointOutput.

+ Here is the call graph for this function:

◆ createFiberDisplay()

void WMPointConnector::createFiberDisplay ( )
private

Creates the WMFiberDisplay and runs it.

Definition at line 198 of file WMPointConnector.cpp.

References WModuleContainer::createAndAdd(), m_fiberDisplay, m_fiberOutput, WModule::m_properties, and toggleActivationOfModule().

Referenced by moduleMain().

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

◆ createHandler()

void WMPointConnector::createHandler ( )
private

Creates the WKeyboardHandler and registers them.

Definition at line 218 of file WMPointConnector.cpp.

References WKernel::getGraphicsEngine(), WKernel::getRunningKernel(), and m_keyboardHandler.

Referenced by moduleMain().

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

◆ createPointRenderer()

void WMPointConnector::createPointRenderer ( )
private

Creates the WMPointRenderer and runs it.

Definition at line 184 of file WMPointConnector.cpp.

References WModuleContainer::createAndAdd(), m_pointOutput, m_pointRenderer, WModule::m_properties, and toggleActivationOfModule().

Referenced by moduleMain().

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

◆ createPrediction()

void WMPointConnector::createPrediction ( )
private

Creates a track continuation prediction.

Definition at line 305 of file WMPointConnector.cpp.

References WAngleHelper::findSmoothestPath(), isAdaptivelyHidden(), m_connectorData, m_enableAdaptiveVisibility, m_enablePrediction, m_fiberHandler, and m_prediction.

Referenced by updateAll().

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

◆ factory()

std::shared_ptr< WModule > WMPointConnector::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.

Reimplemented from WModuleContainer.

Definition at line 59 of file WMPointConnector.cpp.

References WMPointConnector().

+ Here is the call graph for this function:

◆ findClickedPoint()

bool WMPointConnector::findClickedPoint ( osg::Vec3  cameraPosition,
osg::Vec3  direction,
size_t *  hitIdx 
)
private

Finds the point that was clicked and writes it into hitIdx, while return whether a point was hit.

Parameters
cameraPositionThe position of the camera.
directionThe direction to check.
hitIdxA pointer to a variable where the index of the clicked point is written.
Returns
true A point was clicked.
false A point was not clicked.

Definition at line 494 of file WMPointConnector.cpp.

References hitVertex(), m_connectorData, m_enableSizes, m_pointRenderer, and m_scaling.

Referenced by handleClick().

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

◆ getConnectorData()

WConnectorData::SPtr WMPointConnector::getConnectorData ( )

◆ getDescription()

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

Gives back a description of this module.

Returns
description to module.

Reimplemented from WModuleContainer.

Definition at line 74 of file WMPointConnector.cpp.

◆ getFiberHandler()

WFiberHandler::SPtr WMPointConnector::getFiberHandler ( )
Returns
std::shared_ptr< WFiberHandler > The WFiberHandler of this module.

Definition at line 643 of file WMPointConnector.cpp.

References m_fiberHandler.

Referenced by WKeyboardHandler::handle().

+ Here is the caller graph for this function:

◆ getName()

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

Gives back the name of this module.

Returns
the module's name.

Reimplemented from WModuleContainer.

Definition at line 69 of file WMPointConnector.cpp.

◆ getOnscreenSelection()

std::shared_ptr< WOnscreenSelection > WMPointConnector::getOnscreenSelection ( )
Returns
shared_ptr< WOnscreenSelection > The WOnscreenSelection of this module.

Definition at line 786 of file WMPointConnector.cpp.

References m_onscreenSelection.

Referenced by WFiberHandler::updateProperty().

+ Here is the caller graph for this function:

◆ getScaling()

WPropPosition WMPointConnector::getScaling ( )
Returns
WPropPosition The scaling of this module.

Definition at line 791 of file WMPointConnector.cpp.

References m_scaling.

Referenced by WKeyboardHandler::handle().

+ Here is the caller graph for this function:

◆ getXPMIcon()

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

Get the icon for this module in XPM format.

Returns
The icon.

Reimplemented from WModule.

Definition at line 64 of file WMPointConnector.cpp.

◆ handleClick()

void WMPointConnector::handleClick ( osg::Vec3  cameraPosition,
osg::Vec3  direction,
bool  isLeftClick 
)

Handles a click on the drawing area.

It checks all vertices and whether they are clicked.

Parameters
cameraPositionThe position of the camera.
directionThe direction of the click.
isLeftClickWhether this click is a left or a right click.

Definition at line 454 of file WMPointConnector.cpp.

References findClickedPoint(), m_connectorData, m_fiberHandler, and updateAll().

Referenced by handleClickSelection().

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

◆ handleClickSelection()

void WMPointConnector::handleClickSelection ( bool  clickType,
double  x,
double  y 
)
private

Handles a selection with only one click.

Parameters
clickTypeThe type of click (true -> left, false -> right).
xThe x position.
yThe y position.

Definition at line 656 of file WMPointConnector.cpp.

References WKernel::getGraphicsEngine(), WKernel::getRunningKernel(), and handleClick().

Referenced by selectionEnd().

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

◆ handleInput()

void WMPointConnector::handleInput ( )
private

Handles the input of this module.

Definition at line 226 of file WMPointConnector.cpp.

References WModule::debugLog(), m_connectorData, m_fiberHandler, m_pointInput, and updateAll().

Referenced by moduleMain().

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

◆ handleLeftSelection()

void WMPointConnector::handleLeftSelection ( std::vector< WPosition positions)
private

Handles the selection of a left click.

Parameters
positionsThe positions in the selection.

Definition at line 682 of file WMPointConnector.cpp.

References wlog::debug(), WAngleHelper::findSmoothestPath(), isAdaptivelyHidden(), m_connectorData, m_enableSAPT, m_fiberHandler, and updateAll().

Referenced by selectionEnd().

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

◆ handleRightSelection()

void WMPointConnector::handleRightSelection ( std::vector< WPosition positions)
private

Handles the selection of a right click.

Parameters
positionsThe positions in the selection.

Definition at line 717 of file WMPointConnector.cpp.

References m_connectorData, m_fiberHandler, and updateAll().

Referenced by selectionEnd().

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

◆ hitVertex()

float WMPointConnector::hitVertex ( osg::Vec3  rayStart,
osg::Vec3  rayDir,
osg::Vec3  vertex,
float  radius 
)
private

Checks if a vertex with a certain radius is hit by a ray.

Parameters
rayStartThe starting point of the ray.
rayDirThe direction of the ray.
vertexThe vertex to be checked.
radiusThe radius of the vertex.
Returns
< 0 if ray does not intersect. == 0 if ray is a tangent. > 0 if ray intersects.

Definition at line 530 of file WMPointConnector.cpp.

Referenced by findClickedPoint().

+ Here is the caller graph for this function:

◆ isAdaptivelyHidden()

bool WMPointConnector::isAdaptivelyHidden ( osg::Vec3  vertex,
osg::Vec3 *  from = NULL 
)
private

Checks whether a vertex is adaptively hidden.

Parameters
vertexThe vertex to check.
fromOptional parameter for vertex to check from.
Returns
true The vertex is hidden.
false The vertex is visible.

Definition at line 408 of file WMPointConnector.cpp.

References WAngleHelper::calculateAngle(), m_adaptiveVisibilityAngle, m_connectorData, m_enableAdaptiveVisibility, and m_fiberHandler.

Referenced by createPrediction(), handleLeftSelection(), and updatePoints().

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

◆ moduleMain()

void WMPointConnector::moduleMain ( )
protectedvirtual

◆ properties()

void WMPointConnector::properties ( )
protectedvirtual

Initialize the properties for this module.

Reimplemented from WModule.

Definition at line 89 of file WMPointConnector.cpp.

References m_adaptiveVisibilityAngle, m_enableAdaptiveVisibility, m_enablePrediction, m_enableSAPT, m_enableSizes, m_fiberHandler, m_hiddenOpacity, WModule::m_properties, m_scaling, WModule::properties(), pushEventQueue(), and updateAll().

+ Here is the call graph for this function:

◆ pushEventQueue()

void WMPointConnector::pushEventQueue ( std::function< void() >  func)

Pushes a function to the selection queue.

Parameters
funcThe function

Definition at line 675 of file WMPointConnector.cpp.

References m_eventCondition, m_eventMutex, and m_eventQueue.

Referenced by WKeyboardHandler::handle(), properties(), and selectionEnd().

+ Here is the caller graph for this function:

◆ selectionEnd()

void WMPointConnector::selectionEnd ( WOnscreenSelection::WSelectionType  type,
float  x,
float  y 
)
private

The end callback of m_onscreenSelection.

Parameters
typeThe type of the selection.
xThe x position of the selection.
yThe y position of the selection.

Definition at line 743 of file WMPointConnector.cpp.

References handleClickSelection(), handleLeftSelection(), handleRightSelection(), m_connectorData, m_onscreenSelection, m_scaling, and pushEventQueue().

Referenced by moduleMain().

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

◆ toggleActivationOfModule()

void WMPointConnector::toggleActivationOfModule ( WModule::SPtr  mod)
private

Toggles the activation of a module.

Parameters
modTHe module to change the activation of.

Definition at line 212 of file WMPointConnector.cpp.

Referenced by createFiberDisplay(), and createPointRenderer().

+ Here is the caller graph for this function:

◆ updateAll()

void WMPointConnector::updateAll ( )

◆ updateOutput()

void WMPointConnector::updateOutput ( )

Updates the fiber output.

Definition at line 567 of file WMPointConnector.cpp.

References m_fiberDisplay, m_fiberHandler, m_fiberOutput, m_hiddenOpacity, and m_scaling.

Referenced by WFiberHandler::addFiberAt(), WFiberHandler::removeFiber(), and updateAll().

+ Here is the caller graph for this function:

◆ updatePoints()

void WMPointConnector::updatePoints ( )

Redraws the current vertices with their colors.

Definition at line 350 of file WMPointConnector.cpp.

References isAdaptivelyHidden(), m_connectorData, m_enableSizes, m_fiberHandler, m_hiddenOpacity, m_pointOutput, m_pointRenderer, m_prediction, and m_scaling.

Referenced by updateAll().

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

Friends And Related Function Documentation

◆ WMPointConnectorTest

friend class WMPointConnectorTest
friend

Test is your best ...

friend

Definition at line 62 of file WMPointConnector.h.

Member Data Documentation

◆ m_adaptiveVisibilityAngle

WPropDouble WMPointConnector::m_adaptiveVisibilityAngle
private

Property to set the angle for the adaptive visibility.

Definition at line 368 of file WMPointConnector.h.

Referenced by isAdaptivelyHidden(), and properties().

◆ m_connectorData

std::shared_ptr< WConnectorData > WMPointConnector::m_connectorData
private

◆ m_enableAdaptiveVisibility

WPropBool WMPointConnector::m_enableAdaptiveVisibility
private

Property to enable adaptive visibility.

Definition at line 358 of file WMPointConnector.h.

Referenced by createPrediction(), isAdaptivelyHidden(), and properties().

◆ m_enablePrediction

WPropBool WMPointConnector::m_enablePrediction
private

Enables the prediction.

Definition at line 363 of file WMPointConnector.h.

Referenced by createPrediction(), and properties().

◆ m_enableSAPT

WPropBool WMPointConnector::m_enableSAPT
private

Property to enable the adjusted dijkstra.

Definition at line 353 of file WMPointConnector.h.

Referenced by handleLeftSelection(), and properties().

◆ m_enableSizes

WPropBool WMPointConnector::m_enableSizes
private

Property to enable the sizes.

Definition at line 383 of file WMPointConnector.h.

Referenced by findClickedPoint(), properties(), and updatePoints().

◆ m_eventCondition

WCondition::SPtr WMPointConnector::m_eventCondition
private

A condition notifying when something was added to the event queue.

Definition at line 343 of file WMPointConnector.h.

Referenced by moduleMain(), and pushEventQueue().

◆ m_eventMutex

std::mutex WMPointConnector::m_eventMutex
private

A mutex for the vector to make it thread-safe.

Definition at line 333 of file WMPointConnector.h.

Referenced by moduleMain(), and pushEventQueue().

◆ m_eventQueue

std::vector< std::function< void() > > WMPointConnector::m_eventQueue
private

A vector for the events.

Definition at line 328 of file WMPointConnector.h.

Referenced by moduleMain(), and pushEventQueue().

◆ m_fiberDisplay

WModule::SPtr WMPointConnector::m_fiberDisplay
private

The WMFiberDisplay associated with this module.

Definition at line 293 of file WMPointConnector.h.

Referenced by activate(), createFiberDisplay(), and updateOutput().

◆ m_fiberHandler

std::shared_ptr< WFiberHandler > WMPointConnector::m_fiberHandler
private

◆ m_fiberOutput

std::shared_ptr< WModuleOutputData< WDataSetFibers > > WMPointConnector::m_fiberOutput
private

An output connector used to provide fibers to other modules.

Definition at line 313 of file WMPointConnector.h.

Referenced by connectors(), createFiberDisplay(), and updateOutput().

◆ m_hiddenOpacity

WPropDouble WMPointConnector::m_hiddenOpacity
private

Property to set the opacity of the hidden points.

Definition at line 373 of file WMPointConnector.h.

Referenced by properties(), updateOutput(), and updatePoints().

◆ m_keyboardHandler

osg::ref_ptr< WKeyboardHandler > WMPointConnector::m_keyboardHandler
private

The keyboard handler for this point connector.

Definition at line 348 of file WMPointConnector.h.

Referenced by createHandler(), and moduleMain().

◆ m_onscreenSelection

std::shared_ptr< WOnscreenSelection > WMPointConnector::m_onscreenSelection
private

Enables possibility for multiselection of points.

Definition at line 323 of file WMPointConnector.h.

Referenced by getOnscreenSelection(), moduleMain(), and selectionEnd().

◆ m_pointInput

std::shared_ptr< WModuleInputData< WDataSetPoints > > WMPointConnector::m_pointInput
private

An input connector used to get points from other modules.

Definition at line 308 of file WMPointConnector.h.

Referenced by connectors(), handleInput(), and moduleMain().

◆ m_pointOutput

std::shared_ptr< WModuleOutputData< WDataSetPoints > > WMPointConnector::m_pointOutput
private

The internal pointOutput to pass data to the WMPointRenderer.

Definition at line 318 of file WMPointConnector.h.

Referenced by connectors(), createPointRenderer(), and updatePoints().

◆ m_pointRenderer

WModule::SPtr WMPointConnector::m_pointRenderer
private

The WMPointRenderer associated with this module.

Definition at line 288 of file WMPointConnector.h.

Referenced by activate(), createPointRenderer(), findClickedPoint(), and updatePoints().

◆ m_prediction

std::vector< WPosition > WMPointConnector::m_prediction
private

The current prediction.

Definition at line 338 of file WMPointConnector.h.

Referenced by acceptPrediction(), createPrediction(), and updatePoints().

◆ m_scaling

WPropPosition WMPointConnector::m_scaling
private

Property for the scaling as Vector.

Definition at line 378 of file WMPointConnector.h.

Referenced by findClickedPoint(), getScaling(), properties(), selectionEnd(), updateOutput(), and updatePoints().


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