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

SoShadowGroup.h
1 #ifndef COIN_SOSHADOWGROUP_H
2 #define COIN_SOSHADOWGROUP_H
3 
4 /**************************************************************************\
5  *
6  * This file is part of the Coin 3D visualization library.
7  * Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * ("GPL") version 2 as published by the Free Software Foundation.
12  * See the file LICENSE.GPL at the root directory of this source
13  * distribution for additional information about the GNU GPL.
14  *
15  * For using Coin with software that can not be combined with the GNU
16  * GPL, and for taking advantage of the additional benefits of our
17  * support services, please contact Systems in Motion about acquiring
18  * a Coin Professional Edition License.
19  *
20  * See http://www.coin3d.org/ for more information.
21  *
22  * Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
23  * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
24  *
25 \**************************************************************************/
26 
27 #include <Inventor/nodes/SoSubNode.h>
28 #include <Inventor/nodes/SoSeparator.h>
29 #include <Inventor/fields/SoSFBool.h>
30 #include <Inventor/fields/SoSFFloat.h>
31 #include <Inventor/fields/SoSFEnum.h>
32 #include <Inventor/fields/SoSFInt32.h>
33 
34 class SoShadowGroupP;
35 
36 class COIN_DLL_API SoShadowGroup : public SoSeparator {
37  typedef SoSeparator inherited;
38 
39  SO_NODE_HEADER(SoShadowGroup);
40 
41 public:
42  static void initClass(void);
43  static void init(void);
44 
45  SoShadowGroup(void);
46 
47  enum VisibilityFlag {
48  ABSOLUTE_RADIUS,
49  LONGEST_BBOX_EDGE_FACTOR,
50  PROJECTED_BBOX_DEPTH_FACTOR
51  };
52 
62 
65 
66  virtual void GLRenderBelowPath(SoGLRenderAction * action);
67  virtual void GLRenderInPath(SoGLRenderAction * action);
68 
69  virtual void notify(SoNotList * nl);
70 
71 protected:
72  virtual ~SoShadowGroup();
73 
74 private:
75  SoShadowGroupP * pimpl;
76 
77 };
78 
79 #endif // COIN_SOSHADOWGROUP_H
SbPList::getLength
int getLength(void) const
Definition: SbPList.h:94
SbRotation
The SbRotation class represents a rotation in 3D space.
Definition: SbRotation.h:33
SoSpotLight::location
SoSFVec3f location
Definition: SoSpotLight.h:41
SoShadowGroup::isActive
SoSFBool isActive
Definition: SoShadowGroup.h:53
SoState
The SoState class manages the Coin scenegraph traversal state data.
Definition: SoState.h:35
SbName
The SbName class stores strings by reference.
Definition: SbName.h:31
SbVec2f
The SbVec2f class is a 2 dimensional vector with floating point coordinates.
Definition: SbVec2f.h:36
SoSpotLight::direction
SoSFVec3f direction
Definition: SoSpotLight.h:42
SoCamera::nearDistance
SoSFFloat nearDistance
Definition: SoCamera.h:74
SoTextureUnit::unit
SoSFInt32 unit
Definition: SoTextureUnit.h:45
SoShadowGroup::GLRenderBelowPath
virtual void GLRenderBelowPath(SoGLRenderAction *action)
Definition: SoShadowGroup.cpp:643
SoState::pop
void pop(void)
Definition: SoState.cpp:284
SbMatrix
The SbMatrix class is a 4x4 dimensional representation of a matrix.
Definition: SbMatrix.h:37
SoShadowGroup::smoothBorder
SoSFFloat smoothBorder
Definition: SoShadowGroup.h:57
SoNotList::getLastRec
SoNotRec * getLastRec(void) const
Definition: SoNotification.cpp:149
SbViewVolume::getMatrices
void getMatrices(SbMatrix &affine, SbMatrix &proj) const
Definition: SbViewVolume.cpp:185
SoSeparator::GLRenderInPath
virtual void GLRenderInPath(SoGLRenderAction *action)
Definition: SoSeparator.cpp:692
SoShapeHints::COUNTERCLOCKWISE
@ COUNTERCLOCKWISE
Definition: SoShapeHints.h:44
SoSFBool
The SoSFBool class is a container for an SbBool value.
Definition: SoSFBool.h:30
SoSceneTexture2::NONE
@ NONE
Definition: SoSceneTexture2.h:61
SbMatrix::multVecMatrix
void multVecMatrix(const SbVec3f &src, SbVec3f &dst) const
Definition: SbMatrix.cpp:1357
SoState::push
void push(void)
Definition: SoState.cpp:265
SoShaderObject::GLSL_PROGRAM
@ GLSL_PROGRAM
Definition: SoShaderObject.h:49
SoTextureUnit
The SoTextureUnit class is a node for setting the active texture unit.
Definition: SoTextureUnit.h:31
SoNotRec::getBase
SoBase * getBase(void) const
Definition: SoNotRec.cpp:71
SoSceneTexture2
The SoSceneTexture2 class is used to create a 2D texture from a Coin scene graph.
Definition: SoSceneTexture2.h:38
SoOverrideElement::setLightModelOverride
static void setLightModelOverride(SoState *const state, SoNode *const node, const SbBool override)
Definition: SoOverrideElement.cpp:618
SbBox3f::getMin
const SbVec3f & getMin(void) const
Definition: SbBox3f.cpp:122
SoShadowGroup::epsilon
SoSFFloat epsilon
Definition: SoShadowGroup.h:63
SoShaderObject::sourceType
SoSFEnum sourceType
Definition: SoShaderObject.h:54
SoOrthographicCamera
The SoOrthographicCamera class defines a camera node with orthographic rendering.
Definition: SoOrthographicCamera.h:30
SbMatrix::inverse
SbMatrix inverse(void) const
Definition: SbMatrix.cpp:418
SoSearchAction
The SoSearchAction class provides methods for searching through scene graphs.
Definition: SoSearchAction.h:32
SbBox3f
The SbBox3f class is an abstraction for an axis aligned 3 dimensional box.
Definition: SbBox3f.h:37
SoDebugError::postWarning
static void postWarning(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:324
SoAction
The SoAction class is the base class for all traversal actions.
Definition: SoAction.h:67
SbXfBox3f::project
SbBox3f project(void) const
Definition: SbXfBox3f.cpp:649
SoCallback
The SoCallback class is a node type which provides a means of setting callback hooks in the scene gra...
Definition: SoCallback.h:31
SoFullPath
The SoFullPath class allows examination of hidden children in paths.
Definition: SoFullPath.h:29
SoCoordinate3::point
SoMFVec3f point
Definition: SoCoordinate3.h:39
SoShadowGroup::visibilityFlag
SoSFEnum visibilityFlag
Definition: SoShadowGroup.h:61
SoSeparator::notify
virtual void notify(SoNotList *nl)
Definition: SoSeparator.cpp:878
SoOverrideElement::setNormalVectorOverride
static void setNormalVectorOverride(SoState *const state, SoNode *const node, const SbBool override)
Definition: SoOverrideElement.cpp:769
SbXfBox3f
The SbXfBox3f class is a 3 dimensional box with floating point coordinates and an attached transforma...
Definition: SbXfBox3f.h:31
SoGroup::addChild
virtual void addChild(SoNode *node)
Definition: SoGroup.cpp:393
SoShaderObject::sourceProgram
SoSFString sourceProgram
Definition: SoShaderObject.h:55
SoNotRec
The SoNotRec class specifies records for notification lists.
Definition: SoNotRec.h:33
SoPathList
The SoPathList class is a container for pointers to SoPath objects.
Definition: SoPathList.h:31
SoShadowGroup::shadowCachingEnabled
SoSFBool shadowCachingEnabled
Definition: SoShadowGroup.h:58
SbString
The SbString class is a string class with convenience functions for string operations.
Definition: SbString.h:42
SoFullPath::getTail
SoNode * getTail(void) const
Definition: SoFullPath.cpp:74
SoSeparator::GLRenderBelowPath
virtual void GLRenderBelowPath(SoGLRenderAction *action)
Definition: SoSeparator.cpp:605
SoCallback::setCallback
void setCallback(SoCallbackCB *function, void *userdata=NULL)
Definition: SoCallback.cpp:144
SoPerspectiveCamera::getViewVolume
virtual SbViewVolume getViewVolume(float useaspectratio=0.0f) const
Definition: SoPerspectiveCamera.cpp:107
SoShapeHints::SOLID
@ SOLID
Definition: SoShapeHints.h:49
SoShadowGroup::~SoShadowGroup
virtual ~SoShadowGroup()
Definition: SoShadowGroup.cpp:620
SoSpotLight::dropOffRate
SoSFFloat dropOffRate
Definition: SoSpotLight.h:43
SoShaderProgram
The SoShaderProgram class is used to specify a set of vertex/geometry/fragment objects.
Definition: SoShaderProgram.h:41
SbXfBox3f::transform
void transform(const SbMatrix &m)
Definition: SbXfBox3f.cpp:116
SoShadowGroup
The SoShadowGroup node is a group node used for shadow rendering.
Definition: SoShadowGroup.h:36
SoOverrideElement::setMaterialBindingOverride
static void setMaterialBindingOverride(SoState *const state, SoNode *const node, const SbBool override)
FIXME: write doc.
Definition: SoOverrideElement.cpp:652
SoBase::unref
void unref(void) const
Definition: SoBase.cpp:627
SbVec2s
The SbVec2s class is a 2 dimensional vector with short integer coordinates.
Definition: SbVec2s.h:37
SoPath
The SoPath class is a container class for traversal path descriptions.
Definition: SoPath.h:43
SoGetMatrixAction
The SoGetMatrixAction class is an action for accumulating the transformation matrix of a subgraph.
Definition: SoGetMatrixAction.h:35
SbRotation::inverse
SbRotation inverse(void) const
Definition: SbRotation.cpp:316
SbList< SoShadowSpotLightCache * >
SbName::getString
const char * getString(void) const
Definition: SbName.cpp:278
SbBox3f::getMax
const SbVec3f & getMax(void) const
Definition: SbBox3f.cpp:134
SoTransparencyType::value
SoSFEnum value
Definition: SoTransparencyType.h:55
SoOrthographicCamera::height
SoSFFloat height
Definition: SoOrthographicCamera.h:39
SoShadowGroup::quality
SoSFFloat quality
Definition: SoShadowGroup.h:56
SoShapeHints::vertexOrdering
SoSFEnum vertexOrdering
Definition: SoShapeHints.h:57
SoPerspectiveCamera::heightAngle
SoSFFloat heightAngle
Definition: SoPerspectiveCamera.h:39
SoSFEnum
The SoSFEnum class is a container for an enum value.
Definition: SoSFEnum.h:31
SoShadowGroup::notify
virtual void notify(SoNotList *nl)
Definition: SoShadowGroup.cpp:655
SbColor
The SbColor class contains the red, green and blue components which make up a color value.
Definition: SbColor.h:30
SoBase
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition: SoBase.h:41
SoAction::getState
SoState * getState(void) const
Definition: SoAction.cpp:1028
SoCamera::farDistance
SoSFFloat farDistance
Definition: SoCamera.h:75
SoShadowGroup::precision
SoSFFloat precision
Definition: SoShadowGroup.h:55
SbMatrix::multDirMatrix
void multDirMatrix(const SbVec3f &src, SbVec3f &dst) const
Definition: SbMatrix.cpp:1411
SoShadowGroup::visibilityNearRadius
SoSFFloat visibilityNearRadius
Definition: SoShadowGroup.h:59
SoBase::ref
void ref(void) const
Definition: SoBase.cpp:574
SoShapeHints::shapeType
SoSFEnum shapeType
Definition: SoShapeHints.h:58
SoShapeHints::faceType
SoSFEnum faceType
Definition: SoShapeHints.h:59
SbVec3f
The SbVec3f class is a 3 dimensional vector with floating point coordinates.
Definition: SbVec3f.h:37
SoShaderObject::parameter
SoMFNode parameter
Definition: SoShaderObject.h:58
SoGetBoundingBoxAction
The SoGetBoundingBoxAction class calculates bounding boxes for nodes and subgraphs.
Definition: SoGetBoundingBoxAction.h:34
SbBox3f::getSize
void getSize(float &dx, float &dy, float &dz) const
Definition: SbBox3f.cpp:405
SoPath::copy
SoPath * copy(const int startfromnodeindex=0, int numnodes=0) const
Definition: SoPath.cpp:673
SoShadowGroup::SoShadowGroup
SoShadowGroup(void)
Definition: SoShadowGroup.cpp:591
SbString::sprintf
SbString & sprintf(const char *formatstr,...)
Definition: SbString.h:105
SoPerspectiveCamera
The SoPerspectiveCamera class defines a camera node with perspective rendering.
Definition: SoPerspectiveCamera.h:30
SoVertexShader
The SoVertexShader class is used for setting up vertex shader programs.
Definition: SoVertexShader.h:29
SbViewportRegion
The SbViewportRegion class is a viewport within a full window.
Definition: SbViewportRegion.h:31
SoSpotLight::cutOffAngle
SoSFFloat cutOffAngle
Definition: SoSpotLight.h:44
SoFragmentShader
The SoFragmentShader class is used for setting up fragment shader programs.
Definition: SoFragmentShader.h:31
SoShadowGroup::visibilityRadius
SoSFFloat visibilityRadius
Definition: SoShadowGroup.h:60
SoFaceSet::numVertices
SoMFInt32 numVertices
Definition: SoFaceSet.h:42
SoShapeHints::CONVEX
@ CONVEX
Definition: SoShapeHints.h:54
SoShadowGroup::intensity
SoSFFloat intensity
Definition: SoShadowGroup.h:54
SoSeparator
The SoSeparator class is a state-preserving group node.
Definition: SoSeparator.h:34
SbVec3f::normalize
float normalize(void)
Definition: SbVec3f.cpp:436
SbViewVolume
The SbViewVolume class is a viewing volume in 3D space.
Definition: SbViewVolume.h:41
SoLight
The SoLight class is the base class for light emitting nodes.
Definition: SoLight.h:32
SoNodeList
The SoNodeList class is a container for pointers to SoNode objects.
Definition: SoNodeList.h:31
SoFaceSet
The SoFaceSet class is used to render and organize non-indexed polygonal face data.
Definition: SoFaceSet.h:33
SoLight::getTypeId
virtual SoType getTypeId(void) const
Definition: SoLight.cpp:92
SoGroup::getChild
virtual SoNode * getChild(int index) const
Definition: SoGroup.cpp:257
SoSFFloat
The SoSFFloat class is a container for a floating point value.
Definition: SoSFFloat.h:30
SoBase::isOfType
SbBool isOfType(SoType type) const
Definition: SoBase.cpp:710
SoCamera::position
SoSFVec3f position
Definition: SoCamera.h:71
SoNode
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
SoGroup::getNumChildren
virtual int getNumChildren(void) const
Definition: SoGroup.cpp:271
SoCamera::aspectRatio
SoSFFloat aspectRatio
Definition: SoCamera.h:73
SoType::getName
SbName getName(void) const
Definition: SoType.cpp:628
SoCamera::viewportMapping
SoSFEnum viewportMapping
Definition: SoCamera.h:70
SoCamera::orientation
SoSFRotation orientation
Definition: SoCamera.h:72
SbMatrix::identity
static SbMatrix identity(void)
Definition: SbMatrix.cpp:748
SoShadowGroup::threshold
SoSFFloat threshold
Definition: SoShadowGroup.h:64
SoShapeHints
The SoShapeHints class is a node containing hints about how to render geometry.
Definition: SoShapeHints.h:32
SbMatrix::setTranslate
void setTranslate(const SbVec3f &t)
Definition: SbMatrix.cpp:790
SoShadowGroup::GLRenderInPath
virtual void GLRenderInPath(SoGLRenderAction *action)
Definition: SoShadowGroup.cpp:649
SoNotList
The SoNotList class is a list of SoNotRec notification records.
Definition: SoNotification.h:34
SoSpotLight
The SoSpotLight class is a node type for light sources with a cone shaped lightvolume.
Definition: SoSpotLight.h:32
SoShaderProgram::shaderObject
SoMFNode shaderObject
Definition: SoShaderProgram.h:46
SoGLRenderAction
The SoGLRenderAction class renders the scene graph with OpenGL calls.
Definition: SoGLRenderAction.h:39
SoTransparencyType
The SoTransparencyType class is a node for setting the transparency type for shapes.
Definition: SoTransparencyType.h:31
SoCoordinate3
The SoCoordinate3 class is a node for providing coordinates to shape nodes.
Definition: SoCoordinate3.h:30
SoLight::on
SoSFBool on
Definition: SoLight.h:40
SbVec4f
The SbVec4f class is a 4 dimensional vector with floating point coordinates.
Definition: SbVec4f.h:34
SoNotList::getFirstRecAtNode
SoNotRec * getFirstRecAtNode(void) const
Definition: SoNotification.cpp:158
SoAction::isOfType
virtual SbBool isOfType(SoType type) const
Definition: SoAction.cpp:462

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

Generated on Wed Jul 24 2019 for Coin by Doxygen. 1.8.17