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

vtkNonLinearCell Class Reference

#include <vtkNonLinearCell.h>

Inheritance diagram for vtkNonLinearCell:

Inheritance graph
[legend]
Collaboration diagram for vtkNonLinearCell:

Collaboration graph
[legend]
List of all members.

Detailed Description

abstract superclass for non-linear cells

vtkNonLinearCell is an abstract superclass for non-linear cell types. Cells that are a direct subclass of vtkCell or vtkCell3D are linear; cells that are a subclass of vtkNonLinearCell have non-linear interpolation functions. Non-linear cells require special treatment when tessellating or converting to graphics primitives. Note that the linearity of the cell is a function of whether the cell needs tessellation, which does not strictly correlate with interpolation order (e.g., vtkHexahedron has non-linear interpolation functions (a product of three linear functions in r-s-t) even thought vtkHexahedron is considered linear.)

The Error instance variable is used to control the tessellation of the cell. Error is normalized between (0.001,1) and typically measures the chordal deviation of linear (tessellated) primitives from the actual cell boundary. Each cell may have its own interpretation of this error measure.

Created by:
  • Bertel, Francois
CVS contributions (if > 5%):
  • Bertel, Francois (100%)
CVS logs (CVSweb):
  • .h (/Filtering/vtkNonLinearCell.h)
  • .cxx (/Filtering/vtkNonLinearCell.cxx)

Definition at line 57 of file vtkNonLinearCell.h.

Public Types

typedef vtkCell Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual int IsLinear ()
virtual void SetError (double)
virtual double GetError ()
virtual void Tessellate (vtkIdType cellId, vtkDataSet *input, vtkPolyData *output, vtkPointLocator *locator=NULL)
virtual void Tessellate (vtkIdType cellId, vtkDataSet *input, vtkUnstructuredGrid *output, vtkPointLocator *locator=NULL)

Static Public Member Functions

int IsTypeOf (const char *type)
vtkNonLinearCellSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkNonLinearCell ()
 ~vtkNonLinearCell ()
vtkIdType InsertPoint (vtkPointLocator *locator, vtkPoints *pts, double *x)

Protected Attributes

double Error


Member Typedef Documentation

typedef vtkCell vtkNonLinearCell::Superclass
 

Reimplemented from vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

Definition at line 60 of file vtkNonLinearCell.h.


Constructor & Destructor Documentation

vtkNonLinearCell::vtkNonLinearCell  )  [protected]
 

vtkNonLinearCell::~vtkNonLinearCell  )  [inline, protected]
 

Definition at line 110 of file vtkNonLinearCell.h.


Member Function Documentation

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

Reimplemented from vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

int vtkNonLinearCell::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 vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

virtual int vtkNonLinearCell::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 vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

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

Reimplemented from vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

void vtkNonLinearCell::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 vtkCell.

Reimplemented in vtkExplicitCell, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, and vtkQuadraticWedge.

virtual void vtkNonLinearCell::SetError double   )  [virtual]
 

Set/Get the normalized error measure used to control the tessellation of the cell.

virtual double vtkNonLinearCell::GetError  )  [virtual]
 

Set/Get the normalized error measure used to control the tessellation of the cell.

virtual int vtkNonLinearCell::IsLinear  )  [inline, virtual]
 

Non-linear cells require special treatment (tessellation) when converting to graphics primitives (during mapping). The vtkCell API IsLinear() is modified to indicate this requirement.

Reimplemented from vtkCell.

Definition at line 73 of file vtkNonLinearCell.h.

virtual void vtkNonLinearCell::Tessellate vtkIdType  cellId,
vtkDataSet input,
vtkPolyData output,
vtkPointLocator locator = NULL
[virtual]
 

This method tessellates the cell returning polydata. (The Error ivar controls the tessellation depth.) The new dataset will contain polydata primitives, possibly new points as well as interpolated point and cell data. The user must provide (the output) polydata which is filled in by the method. If the optional PointLocator is supplied, then any new points that are created are inserted through the vtkPointLocator, rather than directly in the vtkPolyData. (Note: the input dataset and cellId are used if the cell requires access to its owning dataset.) This method is called when the topological dimension of the cell is 2D or less.

virtual void vtkNonLinearCell::Tessellate vtkIdType  cellId,
vtkDataSet input,
vtkUnstructuredGrid output,
vtkPointLocator locator = NULL
[virtual]
 

This method tessellates the cell returning unstructured grid. (The Error ivar controls the tessellation depth.) The new dataset will contain unstructured grid primitives, possibly new points as well as interpolated point and cell data. The user must provide (the output) unstructured grid which is filled in by the method. If the optional PointLocator is supplied, then any new points that are created are inserted through the vtkPointLocator, rather than directly in the vtkUnstructuredGrid. (Note: the input dataset and cellId are used if the cell requires access to its owning dataset.) This method is called when the topological dimension of the cell is 3D.

vtkIdType vtkNonLinearCell::InsertPoint vtkPointLocator locator,
vtkPoints pts,
double *  x
[inline, protected]
 

Definition at line 115 of file vtkNonLinearCell.h.

References vtkPoints::InsertNextPoint(), vtkPointLocator::InsertUniquePoint(), and vtkIdType.


Member Data Documentation

double vtkNonLinearCell::Error [protected]
 

Definition at line 112 of file vtkNonLinearCell.h.


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