.TH "SoVRMLFog" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoVRMLFog \- .PP The \fBSoVRMLFog\fP class is used to specify a global scene fog\&. .PP \fBThe detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)\&. It is copyright The Web3D Consortium, and is used by permission of the Consortium:\fP .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoNode\fP\&. .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 "\fBSoVRMLFog\fP (void)" .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" .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFString\fP \fBfogType\fP" .br .ti -1c .RI "\fBSoSFFloat\fP \fBvisibilityRange\fP" .br .ti -1c .RI "\fBSoSFColor\fP \fBcolor\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .ti -1c .RI "virtual \fB~SoVRMLFog\fP ()" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBSoSFBool\fP \fBset_bind\fP" .br .ti -1c .RI "\fBSoSFBool\fP \fBisBound\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoVRMLFog\fP class is used to specify a global scene fog\&. .PP \fBThe detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)\&. It is copyright The Web3D Consortium, and is used by permission of the Consortium:\fP .PP .nf Fog { exposedField SFColor color 1 1 1 # [0,1] exposedField SFString fogType "LINEAR" exposedField SFFloat visibilityRange 0 # [0,inf) eventIn SFBool set_bind eventOut SFBool isBound } .fi .PP .PP The Fog node provides a way to simulate atmospheric effects by blending objects with the colour specified by the color field based on the distances of the various objects from the viewer\&. The distances are calculated in the coordinate space of the Fog node\&. The visibilityRange specifies the distance in metres (in the local coordinate system) at which objects are totally obscured by the fog\&. Objects located outside the visibilityRange from the viewer are drawn with a constant colour of color\&. Objects very close to the viewer are blended very little with the fog color\&. .PP A visibilityRange of 0\&.0 disables the Fog node\&. The visibilityRange is affected by the scaling transformations of the Fog node's parents; translations and rotations have no affect on visibilityRange\&. Values of the visibilityRange field shall be in the range [0, )\&. .PP Since Fog nodes are bindable children nodes (see 4\&.6\&.10, Bindable children nodes http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.10), a Fog node stack exists, in which the top- most Fog node on the stack is currently active\&. To push a Fog node onto the top of the stack, a TRUE value is sent to the set_bind eventIn\&. Once active, the Fog node is bound to the browser view\&. A FALSE value sent to set_bind, pops the Fog node from the stack and unbinds it from the browser viewer\&. More details on the Fog node stack can be found in 4\&.6\&.10, Bindable children nodes (http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.10)\&. .PP The fogType field controls how much of the fog colour is blended with the object as a function of distance\&. If fogType is 'LINEAR', the amount of blending is a linear function of the distance, resulting in a depth cueing effect\&. If fogType is 'EXPONENTIAL,' an exponential increase in blending is used, resulting in a more natural fog appearance\&. The effect of fog on lighting calculations is described in 4\&.14, Lighting model (http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.14)\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoVRMLFog::SoVRMLFog (void)" Constructor\&. .SS "SoVRMLFog::~SoVRMLFog ()\fC [protected]\fP, \fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoVRMLFog::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 Implements \fBSoBase\fP\&. .SS "const \fBSoFieldData\fP ** SoVRMLFog::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 \fBSoNode\fP\&. .SS "const \fBSoFieldData\fP * SoVRMLFog::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 \fBSoFieldContainer\fP\&. .SS "void SoVRMLFog::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 \fBSoNode\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFString\fP SoVRMLFog::fogType" Type of fog\&. Can be either 'LINEAR' or 'EXPONENTIAL'\&. Default value is 'LINEAR'\&. .SS "\fBSoSFFloat\fP SoVRMLFog::visibilityRange" Range of visibility\&. The distance when only the fog color can be seen\&. Default value is (0\&.0)\&. .SS "\fBSoSFColor\fP SoVRMLFog::color" The fog color\&. Default value is (1, 1, 1)\&. .SS "\fBSoSFBool\fP SoVRMLFog::set_bind\fC [protected]\fP" An eventIn that is used to bind this node (make the node active)\&. .SS "\fBSoSFBool\fP SoVRMLFog::isBound\fC [protected]\fP" An eventOut that is sent when the node is bound/unbound\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.