Coin Logo http://www.sim.no
http://www.coin3d.org

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes

SoGeometryShader Class Reference

The SoGeometryShader class is used for loading geometry shader programs.See Shaders in Coin for more information on how to set up a scene graph with shaders. More...

#include <Inventor/nodes/SoGeometryShader.h>

Inheritance diagram for SoGeometryShader:
SoShaderObject SoNode SoFieldContainer SoBase

List of all members.

Public Types

enum  InputType { POINTS_IN, LINES_IN, TRIANGLES_IN }
enum  OutputType { POINTS_OUT, LINE_STRIP_OUT, TRIANGLE_STRIP_OUT }

Public Member Functions

 SoGeometryShader (void)
virtual ~SoGeometryShader ()
virtual void GLRender (SoGLRenderAction *action)

Static Public Member Functions

static void initClass (void)
static SbBool isSupported (SourceType sourceType)

Public Attributes

SoSFEnum inputType
SoSFEnum outputType
SoSFInt32 maxEmit

Detailed Description

The SoGeometryShader class is used for loading geometry shader programs.

See Shaders in Coin for more information on how to set up a scene graph with shaders.

FILE FORMAT/DEFAULTS:

    GeometryShader {
      isActive TRUE
      sourceType FILENAME
      sourceProgram ""
      parameter []
      inputType TRIANGLES_IN
      outputType TRIANGLE_STRIP_OUT
      maxEmit 8
    }
See also:
SoShaderObject
SoShaderProgram
Since:
Coin 2.5

Member Enumeration Documentation

Enumerates the input types.

Enumerator:
POINTS_IN 

Shader uses points as input.

LINES_IN 

Shader uses lines as input.

TRIANGLES_IN 

Shader uses triangles as input. OpenGL will automatically convert quads and polygons into triangles.

Enumerates the output types.

Enumerator:
POINTS_OUT 

Shader generates points.

LINE_STRIP_OUT 

Shader generates line strips.


Constructor & Destructor Documentation

SoGeometryShader::SoGeometryShader ( void  )
SoGeometryShader::~SoGeometryShader ( ) [virtual]

Destructor.


Member Function Documentation

void SoGeometryShader::initClass ( void  ) [static]

Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.

Reimplemented from SoShaderObject.

void SoGeometryShader::GLRender ( SoGLRenderAction action) [virtual]

Action method for the SoGLRenderAction.

This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method.

Reimplemented from SoShaderObject.

References SoFieldContainer::get(), SoAction::getState(), SoShaderObject::GLRender(), inputType, SoShaderObject::isActive, LINE_STRIP_OUT, LINES_IN, maxEmit, outputType, POINTS_IN, POINTS_OUT, SoDebugError::post(), and TRIANGLES_IN.

SbBool SoGeometryShader::isSupported ( SourceType  sourceType) [static]

Returns a boolean indicating whether the requested source type is supported by the OpenGL driver or not.

Beware: To get a correct answer, a valid OpenGL context must be available.

References SoShaderObject::ARB_PROGRAM, SoShaderObject::CG_PROGRAM, and SoShaderObject::GLSL_PROGRAM.


Member Data Documentation

The type of geometry used as input to the shader. Default value is TRIANGLES_IN.

Referenced by GLRender(), and SoGeometryShader().

The type of geometry generated from the shader. Default value is TRIANGLE_FAN_OUT.

Referenced by GLRender(), and SoGeometryShader().

The maximum number of vertices emitted from the shader. Default value is 8. This corresponds to the GL_GEOMETRY_VERTICES_OUT_EXT enum.

Referenced by GLRender(), and SoGeometryShader().


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

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Mon Feb 28 2011 10:12:12 for Coin by Doxygen. 1.7.3