.TH "SoGeometryShader" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoGeometryShader \- .PP The \fBSoGeometryShader\fP class is used for loading geometry shader programs\&. .PP See \fBShaders in Coin \fP for more information on how to set up a scene graph with shaders\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoShaderObject\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBInputType\fP { \fBPOINTS_IN\fP, \fBLINES_IN\fP, \fBTRIANGLES_IN\fP }" .br .ti -1c .RI "enum \fBOutputType\fP { \fBPOINTS_OUT\fP, \fBLINE_STRIP_OUT\fP, \fBTRIANGLE_STRIP_OUT\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fBSoType\fP \fBgetTypeId\fP (void) const " .br .RI "\fIReturns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. \fP" .ti -1c .RI "\fBSoGeometryShader\fP (void)" .br .ti -1c .RI "virtual \fB~SoGeometryShader\fP ()" .br .ti -1c .RI "virtual void \fBGLRender\fP (\fBSoGLRenderAction\fP *action)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .RI "\fIThis static method returns the \fBSoType\fP object associated with objects of this class\&. \fP" .ti -1c .RI "static void \fBinitClass\fP (void)" .br .RI "\fISets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. \fP" .ti -1c .RI "static SbBool \fBisSupported\fP (\fBSourceType\fP \fBsourceType\fP)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFEnum\fP \fBinputType\fP" .br .ti -1c .RI "\fBSoSFEnum\fP \fBoutputType\fP" .br .ti -1c .RI "\fBSoSFInt32\fP \fBmaxEmit\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoGeometryShader\fP class is used for loading geometry shader programs\&. .PP See \fBShaders in Coin \fP for more information on how to set up a scene graph with shaders\&. \fBFILE FORMAT/DEFAULTS:\fP .PP .nf GeometryShader { isActive TRUE sourceType FILENAME sourceProgram '' parameter [] inputType TRIANGLES_IN outputType TRIANGLE_STRIP_OUT maxEmit 8 } .fi .PP .PP \fBSee Also:\fP .RS 4 \fBSoShaderObject\fP .PP \fBSoShaderProgram\fP .RE .PP \fBSince:\fP .RS 4 Coin 2\&.5 .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBSoGeometryShader::InputType\fP" Enumerates the input types\&. .PP \fBEnumerator: \fP .in +1c .TP \fB\fIPOINTS_IN \fP\fP Shader uses points as input\&. .TP \fB\fILINES_IN \fP\fP Shader uses lines as input\&. .TP \fB\fITRIANGLES_IN \fP\fP Shader uses triangles as input\&. OpenGL will automatically convert quads and polygons into triangles\&. .SS "enum \fBSoGeometryShader::OutputType\fP" Enumerates the output types\&. .PP \fBEnumerator: \fP .in +1c .TP \fB\fIPOINTS_OUT \fP\fP Shader generates points\&. .TP \fB\fILINE_STRIP_OUT \fP\fP Shader generates line strips\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoGeometryShader::SoGeometryShader (void)" Constructor\&. .SS "SoGeometryShader::~SoGeometryShader ()\fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoGeometryShader::getTypeId (void) const\fC [virtual]\fP" .PP Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. Usage example: .PP .PP .nf void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } } .fi .PP .PP For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in \fIall\fP subclasses\&. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance \fBInventor/nodes/SoSubNode\&.h\fP (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine\&.h (for engine classes) and so on\&. .PP For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups\&. .PP Reimplemented from \fBSoShaderObject\fP\&. .SS "const \fBSoFieldData\fP ** SoGeometryShader::getFieldDataPtr (void)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .PP Reimplemented from \fBSoShaderObject\fP\&. .SS "const \fBSoFieldData\fP * SoGeometryShader::getFieldData (void) const\fC [protected]\fP, \fC [virtual]\fP" Returns a pointer to the class-wide field data storage object for this instance\&. If no fields are present, returns \fCNULL\fP\&. .PP Reimplemented from \fBSoShaderObject\fP\&. .SS "void SoGeometryShader::GLRender (\fBSoGLRenderAction\fP *action)\fC [virtual]\fP" Action method for the \fBSoGLRenderAction\fP\&. .PP 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\&. .PP Reimplemented from \fBSoShaderObject\fP\&. .SS "SbBool SoGeometryShader::isSupported (\fBSourceType\fPsourceType)\fC [static]\fP" Returns a boolean indicating whether the requested source type is supported by the OpenGL driver or not\&. .PP \fIBeware:\fP To get a correct answer, a valid OpenGL context must be available\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFEnum\fP SoGeometryShader::inputType" The type of geometry used as input to the shader\&. Default value is TRIANGLES_IN\&. .SS "\fBSoSFEnum\fP SoGeometryShader::outputType" The type of geometry generated from the shader\&. Default value is TRIANGLE_FAN_OUT\&. .SS "\fBSoSFInt32\fP SoGeometryShader::maxEmit" The maximum number of vertices emitted from the shader\&. Default value is 8\&. This corresponds to the GL_GEOMETRY_VERTICES_OUT_EXT enum\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.