eng::NormalsNode Class Reference

Contains two arrays of normals (polygon normals and vertex normals). More...

#include <eng_node.hh>

Inheritance diagram for eng::NormalsNode:

eng::Node

List of all members.

Public Types

typedef
SharedPtrNull
< NormalsNode
Ptr

Public Member Functions

 NormalsNode (const Value &value)
 NormalsNode (const NormalsNode &src)
void Accept (Visitor &visitor)
const
NormalsNode::Value
GetValue (void) const
SharedPtr
< NormalVertexs > 
GetPolygonNormals (void) const
SharedPtr
< NormalVertexs > 
GetVertexNormals (void) const
void SetRecomputeNormals (bool f=true)
void SetRetransformNormals (bool f=true)
bool IfRecomputeNormals (void) const
bool IfRetransformNormals (void) const
bool IfNormalsAreConstant (void) const

Protected Member Functions

Node::Ptr Clone (void) const
TypeId GetTypeId (void) const

Private Attributes

Value mValue

Friends

class Value
class NodeClones
class Graph
class GraphMaker
class GraphImporter

Classes

class  Value


Detailed Description

Contains two arrays of normals (polygon normals and vertex normals).

"polygonNormals" are normal vectors on every polygon, used for culling polygons. "vertexNormals" are normal vectors on every vertex, used for lighting. Vertex normals are the average of polygon normals of the polygons adjacent to a vertex.

NormalsNode provides storage for normal vectors and flags. Graph (VisitorDraw) is responsible for computing/transforming them. Events that affect normal vectors, such as matrix rotation or polygon mesh deformation, require notifying NormalsNodes by calling SetRecomputeNormals()/SetRetransformNormals() to schedules updating normal vectors appropriately.


Member Typedef Documentation

typedef SharedPtrNull<NormalsNode> eng::NormalsNode::Ptr

Reimplemented from eng::Node.


Constructor & Destructor Documentation

eng::NormalsNode::NormalsNode ( const Value value  ) 

NormalsNode methods.

eng::NormalsNode::NormalsNode ( const NormalsNode src  ) 


Member Function Documentation

void eng::NormalsNode::Accept ( Visitor visitor  )  [inline, virtual]

Implements eng::Node.

const NormalsNode::Value& eng::NormalsNode::GetValue ( void   )  const [inline, virtual]

Implements eng::Node.

Node::Ptr eng::NormalsNode::Clone ( void   )  const [protected, virtual]

Implements eng::Node.

Node::TypeId eng::NormalsNode::GetTypeId ( void   )  const [protected, virtual]

Implements eng::Node.

SharedPtr<NormalVertexs> eng::NormalsNode::GetPolygonNormals ( void   )  const [inline]

SharedPtr<NormalVertexs> eng::NormalsNode::GetVertexNormals ( void   )  const [inline]

void eng::NormalsNode::SetRecomputeNormals ( bool  f = true  )  [inline]

void eng::NormalsNode::SetRetransformNormals ( bool  f = true  )  [inline]

bool eng::NormalsNode::IfRecomputeNormals ( void   )  const [inline]

bool eng::NormalsNode::IfRetransformNormals ( void   )  const [inline]

bool eng::NormalsNode::IfNormalsAreConstant ( void   )  const [inline]


Friends And Related Function Documentation

friend class Value [friend]

Reimplemented from eng::Node.

friend class NodeClones [friend]

Reimplemented from eng::Node.

friend class Graph [friend]

Reimplemented from eng::Node.

friend class GraphMaker [friend]

Reimplemented from eng::Node.

friend class GraphImporter [friend]

Reimplemented from eng::Node.


Member Data Documentation

Value eng::NormalsNode::mValue [private]


The documentation for this class was generated from the following files: Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:23 2007