You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.5 KiB
94 lines
3.5 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkStripper.h,v $
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkStripper - create triangle strips and/or poly-lines
|
|
// .SECTION Description
|
|
|
|
// vtkStripper is a filter that generates triangle strips and/or poly-lines
|
|
// from input polygons, triangle strips, and lines. Input polygons are
|
|
// assembled into triangle strips only if they are triangles; other types of
|
|
// polygons are passed through to the output and not stripped. (Use
|
|
// vtkTriangleFilter to triangulate non-triangular polygons prior to running
|
|
// this filter if you need to strip all the data.) The filter will pass
|
|
// through (to the output) vertices if they are present in the input
|
|
// polydata.
|
|
//
|
|
// The ivar MaximumLength can be used to control the maximum
|
|
// allowable triangle strip and poly-line length.
|
|
//
|
|
// By default, this filter discards any cell data associated with the input.
|
|
// Thus is because the cell structure changes and and the old cell data
|
|
// is no longer valid. When PassCellDataAsFieldData flag is set,
|
|
// the cell data is passed as FieldData to the output using the following rule:
|
|
// 1) for every cell in the output that is not a triangle strip,
|
|
// the cell data is inserted once per cell in the output field data.
|
|
// 2) for every triangle strip cell in the output:
|
|
// ii) 1 tuple is inserted for every point(j|j>=2) in the strip.
|
|
// This is the cell data for the cell formed by (j-2, j-1, j) in
|
|
// the input.
|
|
// The field data order is same as cell data i.e. (verts,line,polys,tsrips).
|
|
|
|
// .SECTION Caveats
|
|
// If triangle strips or poly-lines exist in the input data they will
|
|
// be passed through to the output data. This filter will only construct
|
|
// triangle strips if triangle polygons are available; and will only
|
|
// construct poly-lines if lines are available.
|
|
|
|
// .SECTION See Also
|
|
// vtkTriangleFilter
|
|
|
|
#ifndef __vtkStripper_h
|
|
#define __vtkStripper_h
|
|
|
|
#include "vtkPolyDataAlgorithm.h"
|
|
|
|
class VTK_GRAPHICS_EXPORT vtkStripper : public vtkPolyDataAlgorithm
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkStripper,vtkPolyDataAlgorithm);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Construct object with MaximumLength set to 1000.
|
|
static vtkStripper *New();
|
|
|
|
// Description:
|
|
// Specify the maximum number of triangles in a triangle strip,
|
|
// and/or the maximum number of lines in a poly-line.
|
|
vtkSetClampMacro(MaximumLength,int,4,100000);
|
|
vtkGetMacro(MaximumLength,int);
|
|
|
|
// Description:
|
|
// Enable/Disable passing of the CellData in the input to
|
|
// the output as FieldData. Note the field data is tranformed.
|
|
vtkBooleanMacro(PassCellDataAsFieldData, int);
|
|
vtkSetMacro(PassCellDataAsFieldData, int);
|
|
vtkGetMacro(PassCellDataAsFieldData, int);
|
|
|
|
protected:
|
|
vtkStripper();
|
|
~vtkStripper() {}
|
|
|
|
// Usual data generation method
|
|
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
|
|
|
int MaximumLength;
|
|
int PassCellDataAsFieldData;
|
|
|
|
private:
|
|
vtkStripper(const vtkStripper&); // Not implemented.
|
|
void operator=(const vtkStripper&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|