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

vtkSQ3SubdivisionFilter Class Reference

#include <vtkSQ3SubdivisionFilter.h>

List of all members.


Detailed Description

SQ3 subdivision implements the √3-subdivision implemented by Leif Kobbelt at Max-Planck Institut for Computer Graphics. The filter can handle only triangle meshes so if you have other mashes use the vtkTriangleFilter to triangulate it.

Definition at line 50 of file vtkSQ3SubdivisionFilter.h.

Public Methods

 vtkTypeRevisionMacro (vtkSQ3SubdivisionFilter, vtkPolyDataToPolyDataFilter)
void PrintSelf (ostream &os, vtkIndent indent)
 vtkSetMacro (NumberOfSubdivisions, int)
 vtkGetMacro (NumberOfSubdivisions, int)

Static Public Methods

vtkSQ3SubdivisionFilter * New ()

Protected Methods

 vtkSQ3SubdivisionFilter ()
 ~vtkSQ3SubdivisionFilter ()
void Execute ()
bool generatePoint (vtkIdType cellId, vtkIdType &newId, vtkIdList *cellsVisited, vtkIdList *cellsPoints, vtkIdType *pts, vtkPolyData *inputDS, vtkPointData *outputPD, vtkPoints *outputPts)
 Generates a new point in the output mash.

void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkPoints *outputPts, vtkPointData *outputPD, vtkCellArray *outputPolys, vtkCellData *outputCD)
 Subdivides each cell and generates new cells.

void GenerateSubdivisionCells (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkCellArray *outputPolys, vtkCellData *outputCD)
void GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys, vtkIdList *stencilIds, float *weights)
 Generates a filter stencil for input points.

int FindEdge (vtkPolyData *mesh, vtkIdType cellId, vtkIdType p1, vtkIdType p2, vtkIntArray *edgeData, vtkIdList *cellIds)
 Find a edge in mesh using p1 and p2.

vtkIdType InterpolatePosition (vtkPoints *inputPts, vtkPoints *outputPts, vtkIdList *stencil, float *weights)
 Calculates the position of a new point using the stencil and weights.


Protected Attributes

int NumberOfSubdivisions

Private Methods

 vtkSQ3SubdivisionFilter (const vtkSQ3SubdivisionFilter &)
void operator= (const vtkSQ3SubdivisionFilter &)


Constructor & Destructor Documentation

vtkSQ3SubdivisionFilter::vtkSQ3SubdivisionFilter   [inline, protected]
 

Definition at line 63 of file vtkSQ3SubdivisionFilter.h.

References NumberOfSubdivisions.

vtkSQ3SubdivisionFilter::~vtkSQ3SubdivisionFilter   [inline, protected]
 

Definition at line 72 of file vtkSQ3SubdivisionFilter.h.

vtkSQ3SubdivisionFilter::vtkSQ3SubdivisionFilter const vtkSQ3SubdivisionFilter &    [private]
 


Member Function Documentation

void vtkSQ3SubdivisionFilter::Execute   [protected]
 

Definition at line 39 of file vtkSQ3SubdivisionFilter.cxx.

References GenerateSubdivisionPoints(), and NumberOfSubdivisions.

int vtkSQ3SubdivisionFilter::FindEdge vtkPolyData *    mesh,
vtkIdType    cellId,
vtkIdType    p1,
vtkIdType    p2,
vtkIntArray *    edgeData,
vtkIdList *    cellIds
[protected]
 

Find a edge in mesh using p1 and p2.

Definition at line 360 of file vtkSQ3SubdivisionFilter.cxx.

void vtkSQ3SubdivisionFilter::GenerateEvenStencil vtkIdType    p1,
vtkPolyData *    polys,
vtkIdList *    stencilIds,
float *    weights
[protected]
 

Generates a filter stencil for input points.

Definition at line 399 of file vtkSQ3SubdivisionFilter.cxx.

Referenced by GenerateSubdivisionPoints().

bool vtkSQ3SubdivisionFilter::generatePoint vtkIdType    cellId,
vtkIdType &    newId,
vtkIdList *    cellsVisited,
vtkIdList *    cellsPoints,
vtkIdType *    pts,
vtkPolyData *    inputDS,
vtkPointData *    outputPD,
vtkPoints *    outputPts
[protected]
 

Generates a new point in the output mash.

It also ubdates the cellsVisited and cellsPoints list. The new point is added to outputPD and outputPts.

Definition at line 123 of file vtkSQ3SubdivisionFilter.cxx.

References InterpolatePosition().

Referenced by GenerateSubdivisionPoints().

void vtkSQ3SubdivisionFilter::GenerateSubdivisionCells vtkPolyData *    inputDS,
vtkIntArray *    edgeData,
vtkCellArray *    outputPolys,
vtkCellData *    outputCD
[protected]
 

Definition at line 289 of file vtkSQ3SubdivisionFilter.cxx.

void vtkSQ3SubdivisionFilter::GenerateSubdivisionPoints vtkPolyData *    inputDS,
vtkPoints *    outputPts,
vtkPointData *    outputPD,
vtkCellArray *    outputPolys,
vtkCellData *    outputCD
[protected]
 

Subdivides each cell and generates new cells.

The methode does this by first filtering the input and then generating new points. It uses the generatePoints method.

Todo:
While stepping through all neighbours we assume there is only one neighbour per edge.

Definition at line 178 of file vtkSQ3SubdivisionFilter.cxx.

References GenerateEvenStencil(), generatePoint(), and InterpolatePosition().

Referenced by Execute().

vtkIdType vtkSQ3SubdivisionFilter::InterpolatePosition vtkPoints *    inputPts,
vtkPoints *    outputPts,
vtkIdList *    stencil,
float *    weights
[protected]
 

Calculates the position of a new point using the stencil and weights.

Definition at line 336 of file vtkSQ3SubdivisionFilter.cxx.

Referenced by generatePoint(), and GenerateSubdivisionPoints().

vtkSQ3SubdivisionFilter* vtkSQ3SubdivisionFilter::New   [static]
 

Referenced by CvtkSq3SubdivisionView::OnDraw().

void vtkSQ3SubdivisionFilter::operator= const vtkSQ3SubdivisionFilter &    [private]
 

void vtkSQ3SubdivisionFilter::PrintSelf ostream &    os,
vtkIndent    indent
 

Definition at line 538 of file vtkSQ3SubdivisionFilter.cxx.

References NumberOfSubdivisions.

vtkSQ3SubdivisionFilter::vtkGetMacro NumberOfSubdivisions   ,
int   
 

vtkSQ3SubdivisionFilter::vtkSetMacro NumberOfSubdivisions   ,
int   
 

vtkSQ3SubdivisionFilter::vtkTypeRevisionMacro vtkSQ3SubdivisionFilter   ,
vtkPolyDataToPolyDataFilter   
 


Member Data Documentation

int vtkSQ3SubdivisionFilter::NumberOfSubdivisions [protected]
 

Definition at line 115 of file vtkSQ3SubdivisionFilter.h.

Referenced by Execute(), PrintSelf(), and vtkSQ3SubdivisionFilter().


The documentation for this class was generated from the following files:
Generated on Thu Jul 3 16:54:24 2003 for Sq3Subdivision by doxygen1.2.18