logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoNormal — node that defines surface normals for shapes

Action Behavior

SoGLRenderAction,SoCallbackAction,SoRayPickAction
          Sets the current normals in the traversal state.

Description

       This  node  defines a set of 3D surface normal vectors to be used by vertex-based shape nodes that follow
       it in the scene graph. This node does not produce a visible result during rendering; it  simply  replaces
       the  current normals in the rendering state for subsequent nodes to use. This node contains one multiple-
       valued field that contains the normal vectors.

       Surface normals are needed to compute lighting when the Phong lighting model is used.  Most  vertex-based
       shapes  that  use  normals  can  compute  default normals if none are specified, depending on the current
       normal binding.

Fields

SoMFVec3fvector
          Surface normal vectors.

File Format/Defaults

Normal{vector[]}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoNormal

Methods

SoNormal()
          Creates a surface normal node with default settings.

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoNormal — node that defines surface normals for shapes

See Also

SoCoordinate3,SoLightModel,SoNormalBinding,SoVertexShapeSoNormal(3IV)()

Synopsis

#include<Inventor/nodes/SoNormal.h>

          Fields from class SoNormal:

     SoMFVec3fvector

          Methods from class SoNormal:

                         SoNormal()staticSoTypegetClassTypeId()

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

See Also