OpenWalnut 1.3.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Attributes
WGEPostprocessor Class Reference

The base class for all custom post-processors. More...

#include <WGEPostprocessor.h>

Inheritance diagram for WGEPostprocessor:

List of all members.

Classes

class  PostprocessorInput
 This class encapsulates a G-Buffer. More...

Public Types

typedef boost::shared_ptr
< WGEPostprocessor
SPtr
 Convenience typedef for an osg::ref_ptr< WGEPostprocessor >.
typedef boost::shared_ptr
< const WGEPostprocessor
ConstSPtr
 Convenience typedef for an osg::ref_ptr< const WGEPostprocessor >.
typedef std::vector
< WGEPostprocessor::SPtr
ProcessorList
 Type used for returning lists of postprocessor prototypes.

Public Member Functions

 WGEPostprocessor (std::string name, std::string description)
 Create named prototype.
virtual ~WGEPostprocessor ()
 Destructor.
virtual SPtr create (osg::ref_ptr< WGEOffscreenRenderNode > offscreen, const PostprocessorInput &gbuffer) const =0
 Create instance.
virtual WPropGroup getProperties () const
 Returns the set of properties controlling the post-processing node.
virtual osg::ref_ptr
< osg::Texture2D > 
getOutput (size_t idx=0) const
 Returns the result texture.
const std::vector
< osg::ref_ptr< osg::Texture2D > > & 
getOutputList () const
 This processor can produce multiple outputs.
virtual osg::ref_ptr
< osg::Texture2D > 
getDepth () const
 Returns the new depth texture.
virtual const std::string getName () const
 Gets the name of this postprocessor.
virtual const std::string getDescription () const
 Gets the description for this postprocessor.

Static Public Member Functions

static ProcessorList getPostprocessors ()
 Returns a list of all known postprocessor prototypes.

Protected Attributes

std::vector< osg::ref_ptr
< osg::Texture2D > > 
m_resultTextures
 The textures contain the result.
osg::ref_ptr< osg::Texture2D > m_depthTexture
 The texture contains the new depth.
WPropGroup m_properties
 All the properties of the post-processor.
WPropBool m_effectOnly
 A flag denoting whether the effect should be combined with color or not.
WGEShaderPreprocessor::SPtr m_effectOnlyPreprocessor
 For convenience, this is a shader preprocessor controlled by m_effectOnly property.

Private Attributes

std::string m_name
 Name string.
std::string m_description
 Description string.

Detailed Description

The base class for all custom post-processors.

It allows building an own texture processing pipeline for special processings.

Definition at line 52 of file WGEPostprocessor.h.


Member Typedef Documentation

typedef boost::shared_ptr< const WGEPostprocessor > WGEPostprocessor::ConstSPtr

Convenience typedef for an osg::ref_ptr< const WGEPostprocessor >.

Reimplemented in WGEPostprocessorCelShading, WGEPostprocessorEdgeEnhance, WGEPostprocessorGauss, WGEPostprocessorLineAO, WGEPostprocessorMergeOp, and WGEPostprocessorSSAO.

Definition at line 141 of file WGEPostprocessor.h.

Type used for returning lists of postprocessor prototypes.

Definition at line 146 of file WGEPostprocessor.h.

typedef boost::shared_ptr< WGEPostprocessor > WGEPostprocessor::SPtr

Convenience typedef for an osg::ref_ptr< WGEPostprocessor >.

Reimplemented in WGEPostprocessorCelShading, WGEPostprocessorEdgeEnhance, WGEPostprocessorGauss, WGEPostprocessorLineAO, WGEPostprocessorMergeOp, and WGEPostprocessorSSAO.

Definition at line 136 of file WGEPostprocessor.h.


Constructor & Destructor Documentation

WGEPostprocessor::WGEPostprocessor ( std::string  name,
std::string  description 
)

Create named prototype.

You should call this in your prototype constructor.

Parameters:
namename of processor
descriptiondescription.

Definition at line 36 of file WGEPostprocessor.cpp.

References m_effectOnly, m_effectOnlyPreprocessor, and m_properties.

WGEPostprocessor::~WGEPostprocessor ( ) [virtual]

Destructor.

Definition at line 53 of file WGEPostprocessor.cpp.


Member Function Documentation

virtual SPtr WGEPostprocessor::create ( osg::ref_ptr< WGEOffscreenRenderNode offscreen,
const PostprocessorInput gbuffer 
) const [pure virtual]

Create instance.

Uses the protected constructor. Implement it if you derive from this class! This is called whenever your postprocessor is applied to the standard render-output. You can add your own constructors and creators for other cases.

Parameters:
offscreenuse this offscreen node to add your texture pass'
gbufferthe input textures you should use
Returns:
shared pointer to the created instance

Implemented in WGEPostprocessorCelShading, WGEPostprocessorEdgeEnhance, WGEPostprocessorGauss, WGEPostprocessorLineAO, WGEPostprocessorMergeOp, and WGEPostprocessorSSAO.

osg::ref_ptr< osg::Texture2D > WGEPostprocessor::getDepth ( ) const [virtual]

Returns the new depth texture.

Allows you to modify the depth values. By default, this is NULL. Check this!

Returns:
the depth texture

Definition at line 73 of file WGEPostprocessor.cpp.

References m_depthTexture.

const std::string WGEPostprocessor::getDescription ( ) const [virtual]

Gets the description for this postprocessor.

Returns:
the description

Implements WPrototyped.

Definition at line 160 of file WGEPostprocessor.cpp.

References m_description.

const std::string WGEPostprocessor::getName ( ) const [virtual]

Gets the name of this postprocessor.

Returns:
the name.

Implements WPrototyped.

Definition at line 155 of file WGEPostprocessor.cpp.

References m_name.

osg::ref_ptr< osg::Texture2D > WGEPostprocessor::getOutput ( size_t  idx = 0) const [virtual]

Returns the result texture.

Use this to continue processing.

Parameters:
idxwhich output. Each postprocessor returns at least one texture in index 0, which also is the default value
Returns:
the result texture

Definition at line 63 of file WGEPostprocessor.cpp.

References m_resultTextures.

const std::vector< osg::ref_ptr< osg::Texture2D > > & WGEPostprocessor::getOutputList ( ) const

This processor can produce multiple outputs.

Grab them here. This vector always contains at least the first filtered texture in unit 0.

Returns:
the vector as copy.

Definition at line 68 of file WGEPostprocessor.cpp.

References m_resultTextures.

WGEPostprocessor::ProcessorList WGEPostprocessor::getPostprocessors ( ) [static]

Returns a list of all known postprocessor prototypes.

Returns:
the list

Definition at line 142 of file WGEPostprocessor.cpp.

Referenced by WGEPostprocessingNode::WGEPostprocessingNode().

WPropGroup WGEPostprocessor::getProperties ( ) const [virtual]

Returns the set of properties controlling the post-processing node.

You can use them to provide them to the user for example.

Returns:
the properties as a group.

Definition at line 58 of file WGEPostprocessor.cpp.

References m_properties.


Member Data Documentation

osg::ref_ptr< osg::Texture2D > WGEPostprocessor::m_depthTexture [protected]

The texture contains the new depth.

Definition at line 230 of file WGEPostprocessor.h.

Referenced by WGEPostprocessor::PostprocessorInput::bind(), getDepth(), and WGEPostprocessor::PostprocessorInput::PostprocessorInput().

std::string WGEPostprocessor::m_description [private]

Description string.

Set by the constructor.

Definition at line 255 of file WGEPostprocessor.h.

Referenced by getDescription().

WPropBool WGEPostprocessor::m_effectOnly [protected]

A flag denoting whether the effect should be combined with color or not.

Definition at line 240 of file WGEPostprocessor.h.

Referenced by WGEPostprocessor(), and WGEPostprocessorCelShading::WGEPostprocessorCelShading().

std::string WGEPostprocessor::m_name [private]

Name string.

Set by the constructor.

Definition at line 250 of file WGEPostprocessor.h.

Referenced by getName().

WPropGroup WGEPostprocessor::m_properties [protected]
std::vector< osg::ref_ptr< osg::Texture2D > > WGEPostprocessor::m_resultTextures [protected]

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