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.
 
 
 
 
 
 

168 lines
5.8 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkUniformGrid.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 vtkUniformGrid - image data with blanking
// .SECTION Description
// vtkUniformGrid is a subclass of vtkImageData. In addition to all
// the image data functionality, it supports blanking.
#ifndef __vtkUniformGrid_h
#define __vtkUniformGrid_h
#include "vtkImageData.h"
class vtkEmptyCell;
class vtkStructuredVisibilityConstraint;
class vtkUnsignedCharArray;
class VTK_FILTERING_EXPORT vtkUniformGrid : public vtkImageData
{
public:
static vtkUniformGrid *New();
vtkTypeRevisionMacro(vtkUniformGrid,vtkImageData);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Copy the geometric and topological structure of an input image data
// object.
virtual void CopyStructure(vtkDataSet *ds);
// Description:
// Return what type of dataset this is.
virtual int GetDataObjectType() {return VTK_UNIFORM_GRID;};
// Description:
// Standard vtkDataSet API methods. See vtkDataSet for more information.
virtual vtkCell *GetCell(vtkIdType cellId);
virtual void GetCell(vtkIdType cellId, vtkGenericCell *cell);
virtual vtkIdType FindCell(
double x[3], vtkCell *cell, vtkIdType cellId, double tol2,
int& subId, double pcoords[3], double *weights);
virtual vtkIdType FindCell(
double x[3], vtkCell *cell, vtkGenericCell *gencell,
vtkIdType cellId, double tol2, int& subId,
double pcoords[3], double *weights);
virtual vtkCell *FindAndGetCell(
double x[3], vtkCell *cell, vtkIdType cellId,
double tol2, int& subId, double pcoords[3],
double *weights);
virtual int GetCellType(vtkIdType cellId);
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)
{vtkStructuredData::GetCellPoints(cellId,ptIds,this->DataDescription,
this->GetDimensions());}
virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
{vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}
virtual void Initialize();
virtual int GetMaxCellSize() {return 8;}; //voxel is the largest
virtual void GetScalarRange(double range[2]);
// Description:
// Shallow and Deep copy.
virtual void ShallowCopy(vtkDataObject *src);
virtual void DeepCopy(vtkDataObject *src);
// Description:
// Methods for supporting blanking of cells. Blanking turns on or off
// points in the structured grid, and hence the cells connected to them.
// These methods should be called only after the dimensions of the
// grid are set.
virtual void BlankPoint(vtkIdType ptId);
virtual void UnBlankPoint(vtkIdType ptId);
// Description:
// Methods for supporting blanking of cells. Blanking turns on or off
// cells in the structured grid.
// These methods should be called only after the dimensions of the
// grid are set.
virtual void BlankCell(vtkIdType ptId);
virtual void UnBlankCell(vtkIdType ptId);
// Description:
// Get the array that defines the blanking (visibility) of each point.
virtual vtkUnsignedCharArray *GetPointVisibilityArray();
// Description:
// Set an array that defines the (blanking) visibility of the points
// in the grid. Make sure that length of the visibility array matches
// the number of points in the grid.
virtual void SetPointVisibilityArray(vtkUnsignedCharArray *pointVisibility);
// Description:
// Get the array that defines the blanking (visibility) of each cell.
virtual vtkUnsignedCharArray *GetCellVisibilityArray();
// Description:
// Set an array that defines the (blanking) visibility of the cells
// in the grid. Make sure that length of the visibility array matches
// the number of points in the grid.
virtual void SetCellVisibilityArray(vtkUnsignedCharArray *pointVisibility);
// Description:
// Return non-zero value if specified point is visible.
// These methods should be called only after the dimensions of the
// grid are set.
virtual unsigned char IsPointVisible(vtkIdType ptId);
// Description:
// Return non-zero value if specified point is visible.
// These methods should be called only after the dimensions of the
// grid are set.
virtual unsigned char IsCellVisible(vtkIdType cellId);
// Description:
// Returns 1 if there is any visibility constraint on the points,
// 0 otherwise.
virtual unsigned char GetPointBlanking();
// Description:
// Returns 1 if there is any visibility constraint on the cells,
// 0 otherwise.
virtual unsigned char GetCellBlanking();
virtual vtkImageData* NewImageDataCopy();
//BTX
// Description:
// Retrieve an instance of this class from an information object.
static vtkUniformGrid* GetData(vtkInformation* info);
static vtkUniformGrid* GetData(vtkInformationVector* v, int i=0);
//ETX
protected:
vtkUniformGrid();
~vtkUniformGrid();
vtkStructuredVisibilityConstraint* PointVisibility;
void SetPointVisibility(vtkStructuredVisibilityConstraint *pointVisibility);
vtkGetObjectMacro(PointVisibility, vtkStructuredVisibilityConstraint);
vtkStructuredVisibilityConstraint* CellVisibility;
void SetCellVisibility(vtkStructuredVisibilityConstraint *cellVisibility);
vtkGetObjectMacro(CellVisibility, vtkStructuredVisibilityConstraint);
vtkEmptyCell *EmptyCell;
private:
vtkUniformGrid(const vtkUniformGrid&); // Not implemented.
void operator=(const vtkUniformGrid&); // Not implemented.
};
#endif