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

This module renders the triangle mesh given at its input connector as a surface. More...

#include <WMSurfaceIllustrator.h>

+ Inheritance diagram for WMSurfaceIllustrator:
+ Collaboration diagram for WMSurfaceIllustrator:

Public Member Functions

 WMSurfaceIllustrator ()
 Constructor. More...
 
virtual ~WMSurfaceIllustrator ()
 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...
 
- 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 updateMinMax (double &minX, double &maxX, double &minY, double &maxY, double &minZ, double &maxZ, const osg::Vec3d &vector) const
 Calculates the bounding box of a vector and increases the specified one if needed. More...
 
double getMedian (double x, double y, double z) const
 Gets the median of three values. More...
 
void renderMesh (std::shared_ptr< WTriangleMesh > mesh)
 Render the mesh. More...
 

Private Attributes

WVector3d m_meshCenter
 Center of the mesh. More...
 
WPropGroup m_coloringGroup
 Group for all color and colormapping options. More...
 
WPropBool m_colormap
 Turn Colormapping on/off. More...
 
WPropDouble m_parameterCenter
 Set center of selected surface parameter. More...
 
WPropDouble m_parameterWidth
 Set width of selected surface parameter interval. More...
 
WPropSelection m_illustrationMode
 Select the type of illustration applied in the shader. More...
 
std::shared_ptr< WConditionm_propCondition
 A condition used to notify about changes in several properties. More...
 
std::shared_ptr< WModuleInputData< WTriangleMesh > > m_meshInput
 An input connector used to get meshes from other modules. More...
 
std::shared_ptr< WModuleInputData< WColoredVertices > > m_colorMapInput
 A map for mapping each vertex to a color. More...
 
WPropGroup m_groupTransformation
 A group wich contains all transformation tools. More...
 
WPropTrigger m_setDefault
 Set the transformation tool to default. More...
 
osg::ref_ptr< osg::Uniform > m_colorMapTransformation
 OSG Uniform for the transformation matrix which transforms the mesh. More...
 
WPropDouble m_opacity
 The mesh's opacity value. More...
 
WPropBool m_showOutline
 Toggle showing outline instead fo surface. More...
 
WPropColor m_color
 The color of the mesh to be rendered. More...
 
WPropSelection m_colorMode
 Which colormode should be used? More...
 
WPropInt m_nbTriangles
 Info-property showing the number of triangles in the mesh. More...
 
WPropInt m_nbVertices
 Info-property showing the number of vertices in the mesh. More...
 
WGEManagedGroupNode::SPtr m_moduleNode
 The node containing all geometry nodes. More...
 
osg::ref_ptr< WGEShaderm_shader
 The shader for the mesh. 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

This module renders the triangle mesh given at its input connector as a surface.

Definition at line 50 of file WMSurfaceIllustrator.h.

Constructor & Destructor Documentation

◆ WMSurfaceIllustrator()

WMSurfaceIllustrator::WMSurfaceIllustrator ( )

Constructor.

Creates the module skeleton.

Definition at line 52 of file WMSurfaceIllustrator.cpp.

Referenced by factory().

+ Here is the caller graph for this function:

◆ ~WMSurfaceIllustrator()

WMSurfaceIllustrator::~WMSurfaceIllustrator ( )
virtual

Destructor.

Definition at line 57 of file WMSurfaceIllustrator.cpp.

Member Function Documentation

◆ connectors()

void WMSurfaceIllustrator::connectors ( )
protectedvirtual

Initialize the connectors this module is using.

Reimplemented from WModule.

Definition at line 133 of file WMSurfaceIllustrator.cpp.

References WModule::connectors(), WModuleInputData< T >::createAndAdd(), m_colorMapInput, and m_meshInput.

+ Here is the call graph for this function:

◆ factory()

std::shared_ptr< WModule > WMSurfaceIllustrator::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 62 of file WMSurfaceIllustrator.cpp.

References WMSurfaceIllustrator().

+ Here is the call graph for this function:

◆ getDescription()

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

Gives back a description of this module.

Returns
description to module.

Implements WPrototyped.

Definition at line 78 of file WMSurfaceIllustrator.cpp.

◆ getMedian()

double WMSurfaceIllustrator::getMedian ( double  x,
double  y,
double  z 
) const
private

Gets the median of three values.

Parameters
xfirst value
ysecond value
zthird value
Returns
the median of x,y,z

Definition at line 96 of file WMSurfaceIllustrator.cpp.

◆ getName()

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

Gives back the name of this module.

Returns
the module's name.

Implements WPrototyped.

Definition at line 73 of file WMSurfaceIllustrator.cpp.

◆ getXPMIcon()

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

Get the icon for this module in XPM format.

Returns
The icon.

Reimplemented from WModule.

Definition at line 68 of file WMSurfaceIllustrator.cpp.

◆ moduleMain()

void WMSurfaceIllustrator::moduleMain ( )
protectedvirtual

◆ properties()

void WMSurfaceIllustrator::properties ( )
protectedvirtual

◆ renderMesh()

void WMSurfaceIllustrator::renderMesh ( std::shared_ptr< WTriangleMesh mesh)
private

◆ updateMinMax()

void WMSurfaceIllustrator::updateMinMax ( double &  minX,
double &  maxX,
double &  minY,
double &  maxY,
double &  minZ,
double &  maxZ,
const osg::Vec3d &  vector 
) const
private

Calculates the bounding box of a vector and increases the specified one if needed.

Parameters
minXold maximum X and gets overwritten by new one
maxXold maximum Y and gets overwritten by new one
minYold minimum Z and gets overwritten by new one
maxYold maximum X and gets overwritten by new one
minZold maximum Y and gets overwritten by new one
maxZold maximum Z and gets overwritten by new one
vectorthe new vector to include in bbox calculation.

Definition at line 83 of file WMSurfaceIllustrator.cpp.

Referenced by renderMesh().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_color

WPropColor WMSurfaceIllustrator::m_color
private

The color of the mesh to be rendered.

Definition at line 209 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_coloringGroup

WPropGroup WMSurfaceIllustrator::m_coloringGroup
private

Group for all color and colormapping options.

Definition at line 138 of file WMSurfaceIllustrator.h.

Referenced by properties().

◆ m_colormap

WPropBool WMSurfaceIllustrator::m_colormap
private

Turn Colormapping on/off.

Definition at line 143 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and properties().

◆ m_colorMapInput

std::shared_ptr< WModuleInputData< WColoredVertices > > WMSurfaceIllustrator::m_colorMapInput
private

A map for mapping each vertex to a color.

Definition at line 173 of file WMSurfaceIllustrator.h.

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

◆ m_colorMapTransformation

osg::ref_ptr< osg::Uniform > WMSurfaceIllustrator::m_colorMapTransformation
private

OSG Uniform for the transformation matrix which transforms the mesh.

Needed for the colormapper

Definition at line 194 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and renderMesh().

◆ m_colorMode

WPropSelection WMSurfaceIllustrator::m_colorMode
private

Which colormode should be used?

Definition at line 214 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_groupTransformation

WPropGroup WMSurfaceIllustrator::m_groupTransformation
private

A group wich contains all transformation tools.

Definition at line 178 of file WMSurfaceIllustrator.h.

◆ m_illustrationMode

WPropSelection WMSurfaceIllustrator::m_illustrationMode
private

Select the type of illustration applied in the shader.

Definition at line 158 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_meshCenter

WVector3d WMSurfaceIllustrator::m_meshCenter
private

Center of the mesh.

Needed for applying transformation with the mesh in (0,0,0).

Definition at line 133 of file WMSurfaceIllustrator.h.

◆ m_meshInput

std::shared_ptr< WModuleInputData< WTriangleMesh > > WMSurfaceIllustrator::m_meshInput
private

An input connector used to get meshes from other modules.

The connection management between connectors must not be handled by the module.

Definition at line 168 of file WMSurfaceIllustrator.h.

Referenced by connectors(), and moduleMain().

◆ m_moduleNode

WGEManagedGroupNode::SPtr WMSurfaceIllustrator::m_moduleNode
private

The node containing all geometry nodes.

Definition at line 222 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and renderMesh().

◆ m_nbTriangles

WPropInt WMSurfaceIllustrator::m_nbTriangles
private

Info-property showing the number of triangles in the mesh.

Definition at line 216 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_nbVertices

WPropInt WMSurfaceIllustrator::m_nbVertices
private

Info-property showing the number of vertices in the mesh.

Definition at line 217 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_opacity

WPropDouble WMSurfaceIllustrator::m_opacity
private

The mesh's opacity value.

Definition at line 199 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and properties().

◆ m_parameterCenter

WPropDouble WMSurfaceIllustrator::m_parameterCenter
private

Set center of selected surface parameter.

Definition at line 148 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_parameterWidth

WPropDouble WMSurfaceIllustrator::m_parameterWidth
private

Set width of selected surface parameter interval.

Definition at line 153 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().

◆ m_propCondition

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

A condition used to notify about changes in several properties.

Definition at line 163 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and properties().

◆ m_setDefault

WPropTrigger WMSurfaceIllustrator::m_setDefault
private

Set the transformation tool to default.

Definition at line 183 of file WMSurfaceIllustrator.h.

◆ m_shader

osg::ref_ptr< WGEShader > WMSurfaceIllustrator::m_shader
private

The shader for the mesh.

Definition at line 227 of file WMSurfaceIllustrator.h.

Referenced by moduleMain(), and renderMesh().

◆ m_showOutline

WPropBool WMSurfaceIllustrator::m_showOutline
private

Toggle showing outline instead fo surface.

Definition at line 204 of file WMSurfaceIllustrator.h.

Referenced by properties(), and renderMesh().


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