VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkPolyDataNormals Class Reference

compute normals for polygonal mesh More...

#include <vtkPolyDataNormals.h>

Inheritance diagram for vtkPolyDataNormals:
[legend]

Public Types

typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkPolyDataNormalsNewInstance () const
 
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 ()
 
virtual void SetOutputPointsPrecision (int)
 
virtual int GetOutputPointsPrecision ()
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkPolyDataNormalsSafeDownCast (vtkObjectBase *o)
 
static vtkPolyDataNormalsNew ()
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 vtkPolyDataNormals ()
 
 ~vtkPolyDataNormals ()
 
int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 

Protected Attributes

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

Detailed Description

compute normals for polygonal mesh

vtkPolyDataNormals is a filter that computes point and/or cell normals for a polygonal mesh. The user specifies if they would like the point and/or cell normals to be computed by setting the ComputeCellNormals and ComputePointNormals flags.

The computed normals (a vtkFloatArray) are set to be the active normals (using SetNormals()) of the PointData and/or the CellData (respectively) of the output PolyData. The name of these arrays is "Normals", so they can be retrieved either with vtkFloatArray::SafeDownCast(output->GetPointData()->GetNormals()) or with vtkFloatArray::SafeDownCast(output->GetPointData()->GetArray("Normals"))

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.
Examples:
vtkPolyDataNormals (Examples)
Tests:
vtkPolyDataNormals (Tests)

Definition at line 66 of file vtkPolyDataNormals.h.

Member Typedef Documentation

typedef vtkPolyDataAlgorithm vtkPolyDataNormals::Superclass

Definition at line 69 of file vtkPolyDataNormals.h.

Constructor & Destructor Documentation

vtkPolyDataNormals::vtkPolyDataNormals ( )
protected
vtkPolyDataNormals::~vtkPolyDataNormals ( )
inlineprotected

Definition at line 156 of file vtkPolyDataNormals.h.

Member Function Documentation

static int vtkPolyDataNormals::IsTypeOf ( const char *  type)
static
virtual int vtkPolyDataNormals::IsA ( const char *  type)
virtual

Reimplemented in vtkPPolyDataNormals.

static vtkPolyDataNormals* vtkPolyDataNormals::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkPolyDataNormals::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented in vtkPPolyDataNormals.

vtkPolyDataNormals* vtkPolyDataNormals::NewInstance ( ) const
void vtkPolyDataNormals::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
static 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.

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.

virtual void vtkPolyDataNormals::SetOutputPointsPrecision ( int  )
virtual

Set/get the desired precision for the output types. See the documentation for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of the available precision settings.

virtual int vtkPolyDataNormals::GetOutputPointsPrecision ( )
virtual

Set/get the desired precision for the output types. See the documentation for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of the available precision settings.

int vtkPolyDataNormals::RequestData ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protected

Member Data Documentation

double vtkPolyDataNormals::FeatureAngle
protected

Definition at line 161 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Splitting
protected

Definition at line 162 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::Consistency
protected

Definition at line 163 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::FlipNormals
protected

Definition at line 164 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::AutoOrientNormals
protected

Definition at line 165 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NonManifoldTraversal
protected

Definition at line 166 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputePointNormals
protected

Definition at line 167 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::ComputeCellNormals
protected

Definition at line 168 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::NumFlips
protected

Definition at line 169 of file vtkPolyDataNormals.h.

int vtkPolyDataNormals::OutputPointsPrecision
protected

Definition at line 170 of file vtkPolyDataNormals.h.


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