Cloned library of VTK-5.0.0 with extra build files for internal package management.
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.
 
 
 
 
 
 

103 lines
3.3 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkHierarchicalPolyDataMapper.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 vtkHierarchicalPolyDataMapper - a class that renders hierarchical polygonal data
// .SECTION Description
// This class uses a set of vtkPolyDataMappers to render input data
// which may be hierarchical. The input to this mapper may be
// either vtkPolyData or a vtkHierarchicalDataSet built from
// polydata. If something other than vtkPolyData is encountered,
// an error message will be produced.
//
// .SECTION see also
// vtkPolyDataMapper
#ifndef __vtkHierarchicalPolyDataMapper_h
#define __vtkHierarchicalPolyDataMapper_h
#include "vtkMapper.h"
class vtkPolyDataMapper;
class vtkInformation;
class vtkRenderer;
class vtkActor;
class vtkHierarchicalPolyDataMapperInternals;
class VTK_RENDERING_EXPORT vtkHierarchicalPolyDataMapper : public vtkMapper
{
public:
static vtkHierarchicalPolyDataMapper *New();
vtkTypeRevisionMacro(vtkHierarchicalPolyDataMapper, vtkMapper);
virtual void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Standard method for rendering a mapper. This method will be
// called by the actor.
void Render(vtkRenderer *ren, vtkActor *a);
// Description:
// Standard vtkProp method to get 3D bounds of a 3D prop
double *GetBounds();
void GetBounds(double bounds[6]) { this->Superclass::GetBounds( bounds ); };
// Description:
// Release the underlying resources associated with this mapper
void ReleaseGraphicsResources(vtkWindow *);
protected:
vtkHierarchicalPolyDataMapper();
~vtkHierarchicalPolyDataMapper();
// Description:
// We need to override this method because the standard streaming
// demand driven pipeline is not what we want - we are expecting
// hierarchical data as input
vtkExecutive* CreateDefaultExecutive();
// Description:
// Need to define the type of data handled by this mapper.
virtual int FillInputPortInformation(int port, vtkInformation* info);
// Description:
// This is the build method for creating the internal polydata
// mapper that do the actual work
void BuildPolyDataMapper();
// Description:
// Need to loop over the hierarchy to compute bounds
void ComputeBounds();
// Description:
// Time stamp for computation of bounds.
vtkTimeStamp BoundsMTime;
// Description:
// These are the internal polydata mapper that do the
// rendering. We save then so that they can keep their
// display lists.
vtkHierarchicalPolyDataMapperInternals *Internal;
// Description:
// Time stamp for when we need to update the
// internal mappers
vtkTimeStamp InternalMappersBuildTime;
private:
vtkHierarchicalPolyDataMapper(const vtkHierarchicalPolyDataMapper&); // Not implemented.
void operator=(const vtkHierarchicalPolyDataMapper&); // Not implemented.
};
#endif