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
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
|
|
|
|
|
|
|
|
|