Public Member Functions | Private Member Functions | Private Attributes | List of all members
SurgSim::Graphics::RenderPass Class Reference

Encapsulation of all the components necessary needed to implement a full renderpass, this SceneElement contains a Camera and Group, it can also take a Material (for shaders and uniforms) and a RenderTarget for textures that are used as the output for the camera. More...

#include <SurgSim/Graphics/RenderPass.h>

Inheritance diagram for SurgSim::Graphics::RenderPass:
SurgSim::Framework::SceneElement SurgSim::Graphics::OsgScreenSpacePass

Public Member Functions

 RenderPass (const std::string &name)
 Constructor. More...
 
 ~RenderPass ()
 
virtual bool doInitialize () override
 Executes the initialize operation. More...
 
bool setRenderTarget (std::shared_ptr< RenderTarget > target)
 Sets render target for the camera, this abstracts the textures that are being used for rendering into. More...
 
std::shared_ptr< RenderTargetgetRenderTarget ()
 Gets render target that is being used in this pass. More...
 
virtual void setRenderOrder (SurgSim::Graphics::Camera::RenderOrder order, int value)
 Sets render order. More...
 
std::shared_ptr< CameragetCamera ()
 Gets the camera. More...
 
bool setMaterial (std::shared_ptr< Material > material)
 Sets the material used for rendering. More...
 
std::shared_ptr< MaterialgetMaterial ()
 Gets the current material. More...
 
void showColorTarget (int x, int y, int width, int height)
 Shows a quad on the screen with the texture used as the color target for this pass. More...
 
void hideColorTarget ()
 Hides the color target display. More...
 
void showDepthTarget (int x, int y, int width, int height)
 Shows a quad on the screen with the texture used as the depth target for this pass. More...
 
void hideDepthTarget ()
 Hides the depth target display. More...
 
- Public Member Functions inherited from SurgSim::Framework::SceneElement
 SceneElement (const std::string &name)
 Constructor. More...
 
virtual ~SceneElement ()
 Destructor. More...
 
virtual std::string getClassName () const
 
bool addComponent (std::shared_ptr< Component > component)
 Adds a component, calls initialize() on the component, if SceneElement::isInitialized() is true. More...
 
bool removeComponent (std::shared_ptr< Component > component)
 Removes a given component. More...
 
bool removeComponent (const std::string &name)
 Removes the component described by name. More...
 
std::shared_ptr< ComponentgetComponent (const std::string &name) const
 Gets the component identified by name. More...
 
std::vector< std::shared_ptr< Component > > getComponents () const
 Gets all the components of this SceneElement. More...
 
template<class T >
std::vector< std::shared_ptr< T > > getComponents () const
 Template version of getComponents method to get all the components with type T. More...
 
bool initialize ()
 Executes the initialize operation. More...
 
std::string getName () const
 Return the name of this SceneElement. More...
 
void setPose (const SurgSim::Math::RigidTransform3d &pose)
 Set the pose of this SceneElement. More...
 
const SurgSim::Math::RigidTransform3dgetPose () const
 Get the pose of this SceneElement. More...
 
std::shared_ptr< PoseComponentgetPoseComponent ()
 Get the PoseComponent that controls the pose all Representations in this SceneElement. More...
 
void setScene (std::weak_ptr< Scene > scene)
 Sets the Scene. More...
 
std::shared_ptr< ScenegetScene ()
 Gets the Scene. More...
 
void setRuntime (std::weak_ptr< Runtime > runtime)
 Sets the Runtime. More...
 
std::shared_ptr< RuntimegetRuntime ()
 Gets the runtime. More...
 
bool isInitialized () const
 Return if this SceneElement is initialized. More...
 
void setActive (bool val)
 Set this SceneElement's status (active/inactive) More...
 
bool isActive () const
 
std::shared_ptr< SceneElementgetSharedPtr ()
 Gets a shared pointer to this SceneElement. More...
 
virtual YAML::Node encode (bool standalone) const
 Convert to a YAML::Node. More...
 
virtual bool decode (const YAML::Node &node)
 Pull data from a YAML::Node. More...
 

Private Member Functions

std::shared_ptr< ScreenSpaceQuadRepresentationbuildDebugQuad (const std::string &name, std::shared_ptr< Texture > texture)
 Utility function to build a debug quad. More...
 

Private Attributes

std::shared_ptr< Cameram_camera
 The camera used for the pass. More...
 
std::shared_ptr< Groupm_group
 The groupd used for the pass. More...
 
std::shared_ptr< RenderTargetm_renderTarget
 The camera's rendertarget. More...
 
std::shared_ptr< Materialm_material
 The material, attached to the camera. More...
 
int m_renderOrder
 The renderorder that is being used for this pass. More...
 
std::shared_ptr< ScreenSpaceQuadRepresentationm_debugColor
 
std::shared_ptr< ScreenSpaceQuadRepresentationm_debugDepth
 

Detailed Description

Encapsulation of all the components necessary needed to implement a full renderpass, this SceneElement contains a Camera and Group, it can also take a Material (for shaders and uniforms) and a RenderTarget for textures that are used as the output for the camera.

Other components do not need to be added to the pass explicitly, they only need to refer to the passes name in their respective groupReferences to be added to the render pass. The passes attributes should all be set up through uniforms in the material.

Constructor & Destructor Documentation

SurgSim::Graphics::RenderPass::RenderPass ( const std::string &  name)
explicit

Constructor.

Parameters
nameThe name for this SceneElement
SurgSim::Graphics::RenderPass::~RenderPass ( )

Member Function Documentation

std::shared_ptr< ScreenSpaceQuadRepresentation > SurgSim::Graphics::RenderPass::buildDebugQuad ( const std::string &  name,
std::shared_ptr< Texture texture 
)
private

Utility function to build a debug quad.

Parameters
nameThe name for the component.
textureThe texture for redering.
Returns
a constructed quads.
bool SurgSim::Graphics::RenderPass::doInitialize ( )
overridevirtual

Executes the initialize operation.

Returns
true if it succeeds, false if it fails.

Implements SurgSim::Framework::SceneElement.

Reimplemented in SurgSim::Graphics::OsgScreenSpacePass.

std::shared_ptr< Camera > SurgSim::Graphics::RenderPass::getCamera ( )

Gets the camera.

Returns
The camera.
std::shared_ptr< Material > SurgSim::Graphics::RenderPass::getMaterial ( )

Gets the current material.

Returns
The material.
std::shared_ptr< RenderTarget > SurgSim::Graphics::RenderPass::getRenderTarget ( )

Gets render target that is being used in this pass.

Returns
The render target that should be used.
void SurgSim::Graphics::RenderPass::hideColorTarget ( )

Hides the color target display.

void SurgSim::Graphics::RenderPass::hideDepthTarget ( )

Hides the depth target display.

bool SurgSim::Graphics::RenderPass::setMaterial ( std::shared_ptr< Material material)

Sets the material used for rendering.

Parameters
materialThe material.
Returns
true if it succeeds, false if it fails.
void SurgSim::Graphics::RenderPass::setRenderOrder ( SurgSim::Graphics::Camera::RenderOrder  order,
int  value 
)
virtual

Sets render order.

Parameters
orderThe general render stage for this pass.
valueAn order value for this pass, lower means earlier.
bool SurgSim::Graphics::RenderPass::setRenderTarget ( std::shared_ptr< RenderTarget target)

Sets render target for the camera, this abstracts the textures that are being used for rendering into.

Parameters
targetThe rendertarget structure.
Returns
true if the target was successfully set
void SurgSim::Graphics::RenderPass::showColorTarget ( int  x,
int  y,
int  width,
int  height 
)

Shows a quad on the screen with the texture used as the color target for this pass.

Parameters
x,yThe x and y coordinates on the screen.
width,heightThe width and height on the scree.
void SurgSim::Graphics::RenderPass::showDepthTarget ( int  x,
int  y,
int  width,
int  height 
)

Shows a quad on the screen with the texture used as the depth target for this pass.

Parameters
x,yThe x and y coordinates on the screen.
width,heightThe width and height on the screen.

Member Data Documentation

std::shared_ptr<Camera> SurgSim::Graphics::RenderPass::m_camera
private

The camera used for the pass.

std::shared_ptr<ScreenSpaceQuadRepresentation> SurgSim::Graphics::RenderPass::m_debugColor
private
std::shared_ptr<ScreenSpaceQuadRepresentation> SurgSim::Graphics::RenderPass::m_debugDepth
private
std::shared_ptr<Group> SurgSim::Graphics::RenderPass::m_group
private

The groupd used for the pass.

std::shared_ptr<Material> SurgSim::Graphics::RenderPass::m_material
private

The material, attached to the camera.

int SurgSim::Graphics::RenderPass::m_renderOrder
private

The renderorder that is being used for this pass.

std::shared_ptr<RenderTarget> SurgSim::Graphics::RenderPass::m_renderTarget
private

The camera's rendertarget.


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