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.
192 lines
7.2 KiB
192 lines
7.2 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkPolyDataMapper2D.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 vtkPolyDataMapper2D - draw vtkPolyData onto the image plane
|
|
// .SECTION Description
|
|
// vtkPolyDataMapper2D is a mapper that renders 3D polygonal data
|
|
// (vtkPolyData) onto the 2D image plane (i.e., the renderer's viewport).
|
|
// By default, the 3D data is transformed into 2D data by ignoring the
|
|
// z-coordinate of the 3D points in vtkPolyData, and taking the x-y values
|
|
// as local display values (i.e., pixel coordinates). Alternatively, you
|
|
// can provide a vtkCoordinate object that will transform the data into
|
|
// local display coordinates (use the vtkCoordinate::SetCoordinateSystem()
|
|
// methods to indicate which coordinate system you are transforming the
|
|
// data from).
|
|
|
|
// .SECTION See Also
|
|
// vtkMapper2D vtkActor2D
|
|
|
|
#ifndef __vtkPolyDataMapper2D_h
|
|
#define __vtkPolyDataMapper2D_h
|
|
|
|
|
|
#include "vtkMapper2D.h"
|
|
|
|
class vtkCoordinate;
|
|
class vtkPolyData;
|
|
class vtkScalarsToColors;
|
|
class vtkUnsignedCharArray;
|
|
|
|
class VTK_RENDERING_EXPORT vtkPolyDataMapper2D : public vtkMapper2D
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkPolyDataMapper2D,vtkMapper2D);
|
|
static vtkPolyDataMapper2D *New();
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Set the input to the mapper.
|
|
void SetInput(vtkPolyData *in);
|
|
vtkPolyData *GetInput();
|
|
|
|
// Description:
|
|
// Specify a lookup table for the mapper to use.
|
|
void SetLookupTable(vtkScalarsToColors *lut);
|
|
vtkScalarsToColors *GetLookupTable();
|
|
|
|
// Description:
|
|
// Create default lookup table. Generally used to create one when none
|
|
// is available with the scalar data.
|
|
virtual void CreateDefaultLookupTable();
|
|
|
|
// Description:
|
|
// Turn on/off flag to control whether scalar data is used to color objects.
|
|
vtkSetMacro(ScalarVisibility,int);
|
|
vtkGetMacro(ScalarVisibility,int);
|
|
vtkBooleanMacro(ScalarVisibility,int);
|
|
|
|
// Description:
|
|
// Control how the scalar data is mapped to colors. By default
|
|
// (ColorModeToDefault), unsigned char scalars are treated as colors, and
|
|
// NOT mapped through the lookup table, while everything else is. Setting
|
|
// ColorModeToMapScalars means that all scalar data will be mapped through
|
|
// the lookup table. (Note that for multi-component scalars, the
|
|
// particular component to use for mapping can be specified using the
|
|
// ColorByArrayComponent() method.)
|
|
vtkSetMacro(ColorMode,int);
|
|
vtkGetMacro(ColorMode,int);
|
|
void SetColorModeToDefault();
|
|
void SetColorModeToMapScalars();
|
|
|
|
// Description:
|
|
// Return the method of coloring scalar data.
|
|
const char *GetColorModeAsString();
|
|
|
|
// Description:
|
|
// Control whether the mapper sets the lookuptable range based on its
|
|
// own ScalarRange, or whether it will use the LookupTable ScalarRange
|
|
// regardless of it's own setting. By default the Mapper is allowed to set
|
|
// the LookupTable range, but users who are sharing LookupTables between
|
|
// mappers/actors will probably wish to force the mapper to use the
|
|
// LookupTable unchanged.
|
|
vtkSetMacro(UseLookupTableScalarRange,int);
|
|
vtkGetMacro(UseLookupTableScalarRange,int);
|
|
vtkBooleanMacro(UseLookupTableScalarRange,int);
|
|
|
|
// Description:
|
|
// Specify range in terms of scalar minimum and maximum (smin,smax). These
|
|
// values are used to map scalars into lookup table. Has no effect when
|
|
// UseLookupTableScalarRange is true.
|
|
vtkSetVector2Macro(ScalarRange,double);
|
|
vtkGetVectorMacro(ScalarRange,double,2);
|
|
|
|
// Description:
|
|
// Control how the filter works with scalar point data and cell attribute
|
|
// data. By default (ScalarModeToDefault), the filter will use point data,
|
|
// and if no point data is available, then cell data is used. Alternatively
|
|
// you can explicitly set the filter to use point data
|
|
// (ScalarModeToUsePointData) or cell data (ScalarModeToUseCellData).
|
|
// You can also choose to get the scalars from an array in point field
|
|
// data (ScalarModeToUsePointFieldData) or cell field data
|
|
// (ScalarModeToUseCellFieldData). If scalars are coming from a field
|
|
// data array, you must call ColorByArrayComponent before you call
|
|
// GetColors.
|
|
vtkSetMacro(ScalarMode,int);
|
|
vtkGetMacro(ScalarMode,int);
|
|
void SetScalarModeToDefault() {
|
|
this->SetScalarMode(VTK_SCALAR_MODE_DEFAULT);};
|
|
void SetScalarModeToUsePointData() {
|
|
this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_DATA);};
|
|
void SetScalarModeToUseCellData() {
|
|
this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_DATA);};
|
|
void SetScalarModeToUsePointFieldData() {
|
|
this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_FIELD_DATA);};
|
|
void SetScalarModeToUseCellFieldData() {
|
|
this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_FIELD_DATA);};
|
|
|
|
// Description:
|
|
// Choose which component of which field data array to color by.
|
|
void ColorByArrayComponent(int arrayNum, int component);
|
|
void ColorByArrayComponent(char* arrayName, int component);
|
|
|
|
// Description:
|
|
// Get the array name or number and component to color by.
|
|
char* GetArrayName() { return this->ArrayName; }
|
|
int GetArrayId() { return this->ArrayId; }
|
|
int GetArrayAccessMode() { return this->ArrayAccessMode; }
|
|
int GetArrayComponent() { return this->ArrayComponent; }
|
|
|
|
// Description:
|
|
// Overload standard modified time function. If lookup table is modified,
|
|
// then this object is modified as well.
|
|
virtual unsigned long GetMTime();
|
|
|
|
// Description:
|
|
// Specify a vtkCoordinate object to be used to transform the vtkPolyData
|
|
// point coordinates. By default (no vtkCoordinate specified), the point
|
|
// coordinates are taken as local display coordinates.
|
|
virtual void SetTransformCoordinate(vtkCoordinate*);
|
|
vtkGetObjectMacro(TransformCoordinate, vtkCoordinate);
|
|
|
|
// Description:
|
|
// Map the scalars (if there are any scalars and ScalarVisibility is on)
|
|
// through the lookup table, returning an unsigned char RGBA array. This is
|
|
// typically done as part of the rendering process. The alpha parameter
|
|
// allows the blending of the scalars with an additional alpha (typically
|
|
// which comes from a vtkActor, etc.)
|
|
vtkUnsignedCharArray *MapScalars(double alpha);
|
|
|
|
// Description:
|
|
// Make a shallow copy of this mapper.
|
|
void ShallowCopy(vtkAbstractMapper *m);
|
|
|
|
protected:
|
|
vtkPolyDataMapper2D();
|
|
~vtkPolyDataMapper2D();
|
|
|
|
vtkUnsignedCharArray *Colors;
|
|
|
|
vtkScalarsToColors *LookupTable;
|
|
int ScalarVisibility;
|
|
vtkTimeStamp BuildTime;
|
|
double ScalarRange[2];
|
|
int UseLookupTableScalarRange;
|
|
int ColorMode;
|
|
int ScalarMode;
|
|
|
|
vtkCoordinate *TransformCoordinate;
|
|
|
|
// for coloring by a component of a field data array
|
|
int ArrayId;
|
|
char ArrayName[256];
|
|
int ArrayComponent;
|
|
int ArrayAccessMode;
|
|
private:
|
|
vtkPolyDataMapper2D(const vtkPolyDataMapper2D&); // Not implemented.
|
|
void operator=(const vtkPolyDataMapper2D&); // Not implemented.
|
|
};
|
|
|
|
|
|
#endif
|
|
|
|
|