Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkPolyDataNormals Class Reference

#include <vtkPolyDataNormals.h>

Inheritance diagram for vtkPolyDataNormals:

Inheritance graph
[legend]
Collaboration diagram for vtkPolyDataNormals:

Collaboration graph
[legend]
List of all members.

Detailed Description

compute normals for polygonal mesh

vtkPolyDataNormals is a filter that computes point normals for a polygonal mesh. The filter can reorder polygons to insure consistent orientation across polygon neighbors. Sharp edges can be split and points duplicated with separate normals to give crisp (rendered) surface definition. It is also possible to globally flip the normal orientation.

The algorithm works by determining normals for each polygon and then averaging them at shared points. When sharp edges are present, the edges are split and new points generated to prevent blurry edges (due to Gouraud shading).

Warning:
Normals are computed only for polygons and triangle strips. Normals are not computed for lines or vertices.

Triangle strips are broken up into triangle polygons. You may want to restrip the triangles.

Created by:
  • Schroeder, Will
CVS contributions (if > 5%):
  • Schroeder, Will (57%)
  • Lorensen, Bill (13%)
  • Volpe, Christopher (7%)
  • Law, Charles (6%)
  • Henderson, Amy (5%)
CVS logs (CVSweb):
  • .cxx (/Graphics/vtkPolyDataNormals.cxx)
  • .h (/Graphics/vtkPolyDataNormals.h)
Examples:
vtkPolyDataNormals (Examples)
Tests:
vtkPolyDataNormals (Tests)

Definition at line 67 of file vtkPolyDataNormals.h.

Public Types

typedef vtkPolyDataToPolyDataFilter Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetFeatureAngle (double)
virtual double GetFeatureAngle ()
virtual void SetSplitting (int)
virtual int GetSplitting ()
virtual void SplittingOn ()
virtual void SplittingOff ()
virtual void SetConsistency (int)
virtual int GetConsistency ()
virtual void ConsistencyOn ()
virtual void ConsistencyOff ()
virtual void SetAutoOrientNormals (int)
virtual int GetAutoOrientNormals ()
virtual void AutoOrientNormalsOn ()
virtual void AutoOrientNormalsOff ()
virtual void SetComputePointNormals (int)
virtual int GetComputePointNormals ()
virtual void ComputePointNormalsOn ()
virtual void ComputePointNormalsOff ()
virtual void SetComputeCellNormals (int)
virtual int GetComputeCellNormals ()
virtual void ComputeCellNormalsOn ()
virtual void ComputeCellNormalsOff ()
virtual void SetFlipNormals (int)
virtual int GetFlipNormals ()
virtual void FlipNormalsOn ()
virtual void FlipNormalsOff ()
virtual void SetNonManifoldTraversal (int)
virtual int GetNonManifoldTraversal ()
virtual void NonManifoldTraversalOn ()
virtual void NonManifoldTraversalOff ()

Static Public Member Functions

int IsTypeOf (const char *type)
vtkPolyDataNormalsSafeDownCast (vtkObject *o)
vtkPolyDataNormalsNew ()

Protected Member Functions

 vtkPolyDataNormals ()
 ~vtkPolyDataNormals ()
void Execute ()

Protected Attributes

double FeatureAngle
int Splitting
int Consistency
int FlipNormals
int AutoOrientNormals
int NonManifoldTraversal
int ComputePointNormals
int ComputeCellNormals
int NumFlips


Member Typedef Documentation

typedef vtkPolyDataToPolyDataFilter vtkPolyDataNormals::Superclass
 

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

Definition at line 70 of file vtkPolyDataNormals.h.


Constructor & Destructor Documentation

vtkPolyDataNormals::vtkPolyDataNormals  )  [protected]
 

vtkPolyDataNormals::~vtkPolyDataNormals  )  [inline, protected]
 

Definition at line 149 of file vtkPolyDataNormals.h.


Member Function Documentation

virtual const char* vtkPolyDataNormals::GetClassName  )  [virtual]
 

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

int vtkPolyDataNormals::IsTypeOf const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

virtual int vtkPolyDataNormals::IsA const char *  type  )  [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

vtkPolyDataNormals* vtkPolyDataNormals::SafeDownCast vtkObject o  )  [static]
 

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

void vtkPolyDataNormals::PrintSelf ostream &  os,
vtkIndent  indent
[virtual]
 

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkPPolyDataNormals.

vtkPolyDataNormals* vtkPolyDataNormals::New  )  [static]
 

Construct with feature angle=30, splitting and consistency turned on, flipNormals turned off, and non-manifold traversal turned on. ComputePointNormals is on and ComputeCellNormals is off.

Reimplemented from vtkAlgorithm.

Reimplemented in vtkPPolyDataNormals.

virtual void vtkPolyDataNormals::SetFeatureAngle double   )  [virtual]
 

Specify the angle that defines a sharp edge. If the difference in angle across neighboring polygons is greater than this value, the shared edge is considered "sharp".

virtual double vtkPolyDataNormals::GetFeatureAngle  )  [virtual]
 

Specify the angle that defines a sharp edge. If the difference in angle across neighboring polygons is greater than this value, the shared edge is considered "sharp".

virtual void vtkPolyDataNormals::SetSplitting int   )  [virtual]
 

Turn on/off the splitting of sharp edges.

virtual int vtkPolyDataNormals::GetSplitting  )  [virtual]
 

Turn on/off the splitting of sharp edges.

virtual void vtkPolyDataNormals::SplittingOn  )  [virtual]
 

Turn on/off the splitting of sharp edges.

virtual void vtkPolyDataNormals::SplittingOff  )  [virtual]
 

Turn on/off the splitting of sharp edges.

virtual void vtkPolyDataNormals::SetConsistency int   )  [virtual]
 

Turn on/off the enforcement of consistent polygon ordering.

virtual int vtkPolyDataNormals::GetConsistency  )  [virtual]
 

Turn on/off the enforcement of consistent polygon ordering.

virtual void vtkPolyDataNormals::ConsistencyOn  )  [virtual]
 

Turn on/off the enforcement of consistent polygon ordering.

virtual void vtkPolyDataNormals::ConsistencyOff  )  [virtual]
 

Turn on/off the enforcement of consistent polygon ordering.

virtual void vtkPolyDataNormals::SetAutoOrientNormals int   )  [virtual]
 

Turn on/off the automatic determination of correct normal orientation. NOTE: This assumes a completely closed surface (i.e. no boundary edges) and no non-manifold edges. If these constraints do not hold, all bets are off. This option adds some computational complexity, and is useful if you don't want to have to inspect the rendered image to determine whether to turn on the FlipNormals flag. However, this flag can work with the FlipNormals flag, and if both are set, all the normals in the output will point "inward".

virtual int vtkPolyDataNormals::GetAutoOrientNormals  )  [virtual]
 

Turn on/off the automatic determination of correct normal orientation. NOTE: This assumes a completely closed surface (i.e. no boundary edges) and no non-manifold edges. If these constraints do not hold, all bets are off. This option adds some computational complexity, and is useful if you don't want to have to inspect the rendered image to determine whether to turn on the FlipNormals flag. However, this flag can work with the FlipNormals flag, and if both are set, all the normals in the output will point "inward".

virtual void vtkPolyDataNormals::AutoOrientNormalsOn  )  [virtual]
 

Turn on/off the automatic determination of correct normal orientation. NOTE: This assumes a completely closed surface (i.e. no boundary edges) and no non-manifold edges. If these constraints do not hold, all bets are off. This option adds some computational complexity, and is useful if you don't want to have to inspect the rendered image to determine whether to turn on the FlipNormals flag. However, this flag can work with the FlipNormals flag, and if both are set, all the normals in the output will point "inward".

virtual void vtkPolyDataNormals::AutoOrientNormalsOff  )  [virtual]
 

Turn on/off the automatic determination of correct normal orientation. NOTE: This assumes a completely closed surface (i.e. no boundary edges) and no non-manifold edges. If these constraints do not hold, all bets are off. This option adds some computational complexity, and is useful if you don't want to have to inspect the rendered image to determine whether to turn on the FlipNormals flag. However, this flag can work with the FlipNormals flag, and if both are set, all the normals in the output will point "inward".

virtual void vtkPolyDataNormals::SetComputePointNormals int   )  [virtual]
 

Turn on/off the computation of point normals.

virtual int vtkPolyDataNormals::GetComputePointNormals  )  [virtual]
 

Turn on/off the computation of point normals.

virtual void vtkPolyDataNormals::ComputePointNormalsOn  )  [virtual]
 

Turn on/off the computation of point normals.

virtual void vtkPolyDataNormals::ComputePointNormalsOff  )  [virtual]
 

Turn on/off the computation of point normals.

virtual void vtkPolyDataNormals::SetComputeCellNormals int   )  [virtual]
 

Turn on/off the computation of cell normals.

virtual int vtkPolyDataNormals::GetComputeCellNormals  )  [virtual]
 

Turn on/off the computation of cell normals.

virtual void vtkPolyDataNormals::ComputeCellNormalsOn  )  [virtual]
 

Turn on/off the computation of cell normals.

virtual void vtkPolyDataNormals::ComputeCellNormalsOff  )  [virtual]
 

Turn on/off the computation of cell normals.

virtual void vtkPolyDataNormals::SetFlipNormals int   )  [virtual]
 

Turn on/off the global flipping of normal orientation. Flipping reverves the meaning of front and back for Frontface and Backface culling in vtkProperty. Flipping modifies both the normal direction and the order of a cell's points.

virtual int vtkPolyDataNormals::GetFlipNormals  )  [virtual]
 

Turn on/off the global flipping of normal orientation. Flipping reverves the meaning of front and back for Frontface and Backface culling in vtkProperty. Flipping modifies both the normal direction and the order of a cell's points.

virtual void vtkPolyDataNormals::FlipNormalsOn  )  [virtual]
 

Turn on/off the global flipping of normal orientation. Flipping reverves the meaning of front and back for Frontface and Backface culling in vtkProperty. Flipping modifies both the normal direction and the order of a cell's points.

virtual void vtkPolyDataNormals::FlipNormalsOff  )  [virtual]
 

Turn on/off the global flipping of normal orientation. Flipping reverves the meaning of front and back for Frontface and Backface culling in vtkProperty. Flipping modifies both the normal direction and the order of a cell's points.

virtual void vtkPolyDataNormals::SetNonManifoldTraversal int   )  [virtual]
 

Turn on/off traversal across non-manifold edges. This will prevent problems where the consistency of polygonal ordering is corrupted due to topological loops.

virtual int vtkPolyDataNormals::GetNonManifoldTraversal  )  [virtual]
 

Turn on/off traversal across non-manifold edges. This will prevent problems where the consistency of polygonal ordering is corrupted due to topological loops.

virtual void vtkPolyDataNormals::NonManifoldTraversalOn  )  [virtual]
 

Turn on/off traversal across non-manifold edges. This will prevent problems where the consistency of polygonal ordering is corrupted due to topological loops.

virtual void vtkPolyDataNormals::NonManifoldTraversalOff  )  [virtual]
 

Turn on/off traversal across non-manifold edges. This will prevent problems where the consistency of polygonal ordering is corrupted due to topological loops.

void vtkPolyDataNormals::Execute  )  [protected, virtual]
 

This method is the old style execute method

Reimplemented from vtkSource.

Reimplemented in vtkPPolyDataNormals.


Member Data Documentation

double vtkPolyDataNormals::FeatureAngle [protected]
 

Definition at line 154 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Splitting [protected]
 

Definition at line 155 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Consistency [protected]
 

Definition at line 156 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::FlipNormals [protected]
 

Definition at line 157 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::AutoOrientNormals [protected]
 

Definition at line 158 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NonManifoldTraversal [protected]
 

Definition at line 159 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputePointNormals [protected]
 

Definition at line 160 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputeCellNormals [protected]
 

Definition at line 161 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NumFlips [protected]
 

Definition at line 162 of file vtkPolyDataNormals.h.


The documentation for this class was generated from the following file: