.TH "SoVRMLNormalInterpolator" 3 "Thu May 29 2014" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoVRMLNormalInterpolator \- .PP The \fBSoVRMLNormalInterpolator\fP class is used to interpolate normals\&. .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 \fBSoVRMLInterpolator\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 "virtual const \fBSoEngineOutputData\fP * \fBgetOutputData\fP (void) const " .br .ti -1c .RI "\fBSoVRMLNormalInterpolator\fP (void)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static void * \fBcreateInstance\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoMFVec3f\fP \fBkeyValue\fP" .br .ti -1c .RI "\fBSoEngineOutput\fP \fBvalue_changed\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~SoVRMLNormalInterpolator\fP ()" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .ti -1c .RI "static const \fBSoEngineOutputData\fP ** \fBgetOutputDataPtr\fP (void)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoVRMLNormalInterpolator\fP class is used to interpolate normals\&. .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 NormalInterpolator { eventIn SFFloat set_fraction # (-inf, inf) exposedField MFFloat key [] # (-inf, inf) exposedField MFVec3f keyValue [] # (-inf, inf) eventOut MFVec3f value_changed } .fi .PP .PP The NormalInterpolator node interpolates among a list of normal vector sets specified by the keyValue field\&. The output vector, value_changed, shall be a set of normalized vectors\&. Values in the keyValue field shall be of unit length\&. The number of normals in the keyValue field shall be an integer multiple of the number of keyframes in the key field\&. That integer multiple defines how many normals will be contained in the value_changed events\&. Normal interpolation shall be performed on the surface of the unit sphere\&. That is, the output values for a linear interpolation from a point P on the unit sphere to a point Q also on the unit sphere shall lie along the shortest arc (on the unit sphere) connecting points P and Q\&. Also, equally spaced input fractions shall result in arcs of equal length\&. The results are undefined if P and Q are diagonally opposite\&. A more detailed discussion of interpolators is provided in 4\&.6\&.8, Interpolator nodes (http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.8)\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoVRMLNormalInterpolator::SoVRMLNormalInterpolator (void)" Constructor\&. .SS "SoVRMLNormalInterpolator::~SoVRMLNormalInterpolator ()\fC [protected]\fP, \fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoVRMLNormalInterpolator::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 \fBSoVRMLInterpolator\fP\&. .SS "const \fBSoFieldData\fP * SoVRMLNormalInterpolator::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 \fBSoVRMLInterpolator\fP\&. .SS "const \fBSoEngineOutputData\fP * SoVRMLNormalInterpolator::getOutputData (void) const\fC [virtual]\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 \fBSoVRMLInterpolator\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoMFVec3f\fP SoVRMLNormalInterpolator::keyValue" The keyValue vector\&. .SS "\fBSoEngineOutput\fP SoVRMLNormalInterpolator::value_changed" The eventOut which is sent every time the interpolator has calculated a new value\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.