Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkPolyDataNormals Class Reference

compute normals for polygonal mesh. More...

#include <vtkPolyDataNormals.h>

Inheritance diagram for vtkPolyDataNormals:

Inheritance graph
Collaboration diagram for vtkPolyDataNormals:

Collaboration graph
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetFeatureAngle (float)
virtual float 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 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 SetMaxRecursionDepth (int)
virtual int GetMaxRecursionDepth ()
virtual void SetNonManifoldTraversal (int)
virtual int GetNonManifoldTraversal ()
virtual void NonManifoldTraversalOn ()
virtual void NonManifoldTraversalOff ()

Static Public Methods

int IsTypeOf (const char *type)
vtkPolyDataNormals * SafeDownCast (vtkObject *o)
vtkPolyDataNormals * New ()

Protected Methods

 vtkPolyDataNormals ()
 ~vtkPolyDataNormals ()
 vtkPolyDataNormals (const vtkPolyDataNormals &)
void operator= (const vtkPolyDataNormals &)
void Execute ()
void ComputeInputUpdateExtents (vtkDataObject *output)
int TraverseAndOrder (int cellId, vtkIdList *edgeNeighbors, int *Visited, vtkPolyData *OldMesh, vtkPolyData *NewMesh)
void MarkAndReplace (int cellId, int n, int replacement, vtkNormals *PolyNormals, vtkIdList *edgeNeighbors, int *Visited, vtkIdList *Map, vtkPolyData *OldMesh, vtkPolyData *NewMesh, float CosAngle)

Protected Attributes

float FeatureAngle
int Splitting
int Consistency
int FlipNormals
int MaxRecursionDepth
int NonManifoldTraversal
int ComputePointNormals
int ComputeCellNormals
int Mark
int NumFlips

Detailed Description

compute normals for polygonal mesh.

2000/12/10 20:08:47

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).

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.
vtkPolyDataNormals (examples)

Definition at line 74 of file vtkPolyDataNormals.h.

Constructor & Destructor Documentation

vtkPolyDataNormals::vtkPolyDataNormals   [protected]

vtkPolyDataNormals::~vtkPolyDataNormals   [inline, protected]

Definition at line 133 of file vtkPolyDataNormals.h.

vtkPolyDataNormals::vtkPolyDataNormals const vtkPolyDataNormals &    [inline, protected]

Definition at line 134 of file vtkPolyDataNormals.h.

Member Function Documentation

virtual const char* vtkPolyDataNormals::GetClassName   [virtual]

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

vtkPolyDataNormals* vtkPolyDataNormals::SafeDownCast vtkObject   o [static]

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

void vtkPolyDataNormals::PrintSelf ostream &    os,
vtkIndent    indent

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 vtkSource.

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 vtkPolyDataSource.

virtual void vtkPolyDataNormals::SetFeatureAngle float    [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 float vtkPolyDataNormals::GetFeatureAngle   [virtual]

virtual void vtkPolyDataNormals::SetSplitting int    [virtual]

Turn on/off the splitting of sharp edges.

virtual int vtkPolyDataNormals::GetSplitting   [virtual]

virtual void vtkPolyDataNormals::SplittingOn   [virtual]

virtual void vtkPolyDataNormals::SplittingOff   [virtual]

virtual void vtkPolyDataNormals::SetConsistency int    [virtual]

Turn on/off the enforcement of consistent polygon ordering.

virtual int vtkPolyDataNormals::GetConsistency   [virtual]

virtual void vtkPolyDataNormals::ConsistencyOn   [virtual]

virtual void vtkPolyDataNormals::ConsistencyOff   [virtual]

virtual void vtkPolyDataNormals::SetComputePointNormals int    [virtual]

Turn on/off the computation of Point Normals.

virtual int vtkPolyDataNormals::GetComputePointNormals   [virtual]

virtual void vtkPolyDataNormals::ComputePointNormalsOn   [virtual]

virtual void vtkPolyDataNormals::ComputePointNormalsOff   [virtual]

virtual void vtkPolyDataNormals::SetComputeCellNormals int    [virtual]

Turn on/off the computation of Cell Normals.

virtual int vtkPolyDataNormals::GetComputeCellNormals   [virtual]

virtual void vtkPolyDataNormals::ComputeCellNormalsOn   [virtual]

virtual void vtkPolyDataNormals::ComputeCellNormalsOff   [virtual]

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]

virtual void vtkPolyDataNormals::FlipNormalsOn   [virtual]

virtual void vtkPolyDataNormals::FlipNormalsOff   [virtual]

virtual void vtkPolyDataNormals::SetMaxRecursionDepth int    [virtual]

Control the depth of recursion used in this algorithm. (Some systems have limited stack depth.)

virtual int vtkPolyDataNormals::GetMaxRecursionDepth   [virtual]

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]

virtual void vtkPolyDataNormals::NonManifoldTraversalOn   [virtual]

virtual void vtkPolyDataNormals::NonManifoldTraversalOff   [virtual]

void vtkPolyDataNormals::operator= const vtkPolyDataNormals &    [inline, protected]

Definition at line 135 of file vtkPolyDataNormals.h.

void vtkPolyDataNormals::Execute   [protected, virtual]

Reimplemented from vtkSource.

void vtkPolyDataNormals::ComputeInputUpdateExtents vtkDataObject   output [protected, virtual]

What is the input update extent that is required to produce the desired output? By default, the whole input is always required but this is overridden in many subclasses.

Reimplemented from vtkPolyDataSource.

int vtkPolyDataNormals::TraverseAndOrder int    cellId,
vtkIdList   edgeNeighbors,
int *    Visited,
vtkPolyData   OldMesh,
vtkPolyData   NewMesh

void vtkPolyDataNormals::MarkAndReplace int    cellId,
int    n,
int    replacement,
vtkNormals   PolyNormals,
vtkIdList   edgeNeighbors,
int *    Visited,
vtkIdList   Map,
vtkPolyData   OldMesh,
vtkPolyData   NewMesh,
float    CosAngle

Member Data Documentation

float vtkPolyDataNormals::FeatureAngle [protected]

Definition at line 142 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Splitting [protected]

Definition at line 143 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Consistency [protected]

Definition at line 144 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::FlipNormals [protected]

Definition at line 145 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::MaxRecursionDepth [protected]

Definition at line 146 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NonManifoldTraversal [protected]

Definition at line 147 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputePointNormals [protected]

Definition at line 148 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputeCellNormals [protected]

Definition at line 149 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Mark [protected]

Definition at line 151 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NumFlips [protected]

Definition at line 152 of file vtkPolyDataNormals.h.

The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:57:44 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001