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.
99 lines
3.1 KiB
99 lines
3.1 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkPolyDataMapper.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 vtkPolyDataMapper - map vtkPolyData to graphics primitives
|
|
// .SECTION Description
|
|
// vtkPolyDataMapper is a class that maps polygonal data (i.e., vtkPolyData)
|
|
// to graphics primitives. vtkPolyDataMapper serves as a superclass for
|
|
// device-specific poly data mappers, that actually do the mapping to the
|
|
// rendering/graphics hardware/software.
|
|
// It is now possible to set a memory limit for the pipeline in the mapper.
|
|
// If the total estimated memory usage of the pipeline is larger than
|
|
// this limit, the mapper will divide the data into pieces and render
|
|
// each in a for loop.
|
|
|
|
#ifndef __vtkPolyDataMapper_h
|
|
#define __vtkPolyDataMapper_h
|
|
|
|
#include "vtkMapper.h"
|
|
|
|
class vtkPolyData;
|
|
class vtkRenderer;
|
|
|
|
class VTK_RENDERING_EXPORT vtkPolyDataMapper : public vtkMapper
|
|
{
|
|
public:
|
|
static vtkPolyDataMapper *New();
|
|
vtkTypeRevisionMacro(vtkPolyDataMapper,vtkMapper);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Implemented by sub classes. Actual rendering is done here.
|
|
virtual void RenderPiece(vtkRenderer *ren, vtkActor *act) = 0;
|
|
|
|
// Description:
|
|
// This calls RenderPiece (in a for loop is streaming is necessary).
|
|
virtual void Render(vtkRenderer *ren, vtkActor *act);
|
|
|
|
// Description:
|
|
// Specify the input data to map.
|
|
void SetInput(vtkPolyData *in);
|
|
vtkPolyData *GetInput();
|
|
|
|
// Description:
|
|
// Update that sets the update piece first.
|
|
void Update();
|
|
|
|
// Description:
|
|
// If you want only a part of the data, specify by setting the piece.
|
|
vtkSetMacro(Piece, int);
|
|
vtkGetMacro(Piece, int);
|
|
vtkSetMacro(NumberOfPieces, int);
|
|
vtkGetMacro(NumberOfPieces, int);
|
|
vtkSetMacro(NumberOfSubPieces, int);
|
|
vtkGetMacro(NumberOfSubPieces, int);
|
|
|
|
// Description:
|
|
// Set the number of ghost cells to return.
|
|
vtkSetMacro(GhostLevel, int);
|
|
vtkGetMacro(GhostLevel, int);
|
|
|
|
// Description:
|
|
// Return bounding box (array of six doubles) of data expressed as
|
|
// (xmin,xmax, ymin,ymax, zmin,zmax).
|
|
virtual double *GetBounds();
|
|
virtual void GetBounds(double bounds[6])
|
|
{this->Superclass::GetBounds(bounds);};
|
|
|
|
// Description:
|
|
// Make a shallow copy of this mapper.
|
|
void ShallowCopy(vtkAbstractMapper *m);
|
|
|
|
protected:
|
|
vtkPolyDataMapper();
|
|
~vtkPolyDataMapper() {};
|
|
|
|
int Piece;
|
|
int NumberOfPieces;
|
|
int NumberOfSubPieces;
|
|
int GhostLevel;
|
|
|
|
virtual int FillInputPortInformation(int, vtkInformation*);
|
|
|
|
private:
|
|
vtkPolyDataMapper(const vtkPolyDataMapper&); // Not implemented.
|
|
void operator=(const vtkPolyDataMapper&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|