dox/Common/vtkUnstructuredGrid.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030
#ifndef __vtkUnstructuredGrid_h
00031
#define __vtkUnstructuredGrid_h
00032
00033
#include "vtkPointSet.h"
00034
00035
class vtkCellArray;
00036
class vtkCellLinks;
00037
class vtkConvexPointSet;
00038
class vtkEmptyCell;
00039
class vtkHexahedron;
00040
class vtkIdList;
00041
class vtkIdTypeArray;
00042
class vtkLine;
00043
class vtkPixel;
00044
class vtkPolyLine;
00045
class vtkPolyVertex;
00046
class vtkPolygon;
00047
class vtkPyramid;
00048
class vtkQuad;
00049
class vtkQuadraticEdge;
00050
class vtkQuadraticHexahedron;
00051
class vtkQuadraticQuad;
00052
class vtkQuadraticTetra;
00053
class vtkQuadraticTriangle;
00054
class vtkTetra;
00055
class vtkTriangle;
00056
class vtkTriangleStrip;
00057
class vtkUnsignedCharArray;
00058
class vtkVertex;
00059
class vtkVoxel;
00060
class vtkWedge;
00061
00062 class VTK_COMMON_EXPORT vtkUnstructuredGrid :
public vtkPointSet {
00063
private:
00064 vtkUnstructuredGrid(
const vtkUnstructuredGrid&);
00065
void operator=(
const vtkUnstructuredGrid&);
00066
public:
00067
static vtkUnstructuredGrid *
New();
00068
00069 vtkTypeRevisionMacro(vtkUnstructuredGrid,
vtkPointSet);
00070
void PrintSelf(ostream& os,
vtkIndent indent);
00071
00073
00074 int GetDataObjectType() {
return VTK_UNSTRUCTURED_GRID;};
00075
virtual void Allocate(
vtkIdType numCells=1000,
int extSize=1000);
00076
int InsertNextCell(
int type,
int npts,
vtkIdType *pts);
00077
int InsertNextCell(
int type,
vtkIdList *ptIds);
00078
void Reset();
00079
virtual void CopyStructure(
vtkDataSet *ds);
00080
vtkIdType GetNumberOfCells();
00081
virtual vtkCell *
GetCell(
vtkIdType cellId);
00082
virtual void GetCell(
vtkIdType cellId,
vtkGenericCell *cell);
00083
virtual void GetCellBounds(
vtkIdType cellId,
double bounds[6]);
00084
virtual void GetCellPoints(
vtkIdType cellId,
vtkIdList *ptIds);
00085
void GetPointCells(
vtkIdType ptId,
vtkIdList *cellIds);
00087
00088
int GetCellType(
vtkIdType cellId);
00089 vtkUnsignedCharArray* GetCellTypesArray() {
return this->Types; }
00090 vtkIdTypeArray* GetCellLocationsArray() {
return this->Locations; }
00091
void Squeeze();
00092
void Initialize();
00093
int GetMaxCellSize();
00094
void BuildLinks();
00095 vtkCellLinks *GetCellLinks() {
return this->Links;};
00096
virtual void GetCellPoints(
vtkIdType cellId,
vtkIdType& npts,
00097
vtkIdType* &pts);
00098
00100
00102
void SetCells(
int type,
vtkCellArray *cells);
00103
void SetCells(
int *types,
vtkCellArray *cells);
00104
void SetCells(
vtkUnsignedCharArray *cellTypes,
vtkIdTypeArray *cellLocations,
00105
vtkCellArray *cells);
00106 vtkCellArray *GetCells() {
return this->Connectivity;};
00107
void ReplaceCell(
vtkIdType cellId,
int npts,
vtkIdType *pts);
00108
int InsertNextLinkedCell(
int type,
int npts,
vtkIdType *pts);
00109
void RemoveReferenceToCell(
vtkIdType ptId,
vtkIdType cellId);
00110
void AddReferenceToCell(
vtkIdType ptId,
vtkIdType cellId);
00111
void ResizeCellList(
vtkIdType ptId,
int size);
00113
00115
00118
virtual void GetCellNeighbors(
vtkIdType cellId,
vtkIdList *ptIds,
00119
vtkIdList *cellIds);
00121
00123
00126
void SetUpdateExtent(
int piece,
int numPieces,
int ghostLevel);
00127 void SetUpdateExtent(
int piece,
int numPieces)
00128 {this->
SetUpdateExtent(piece, numPieces, 0);}
00129
void GetUpdateExtent(
int &piece,
int &numPieces,
int &ghostLevel);
00131
00133
00134 vtkGetVector6Macro( UpdateExtent,
int );
00136
00138
00142 void SetUpdateExtent(
int x1,
int x2,
int y1,
int y2,
int z1,
int z2 )
00143 { this->Superclass::SetUpdateExtent( x1, x2, y1, y2, z1, z2 ); };
00144 void SetUpdateExtent(
int ext[6] )
00145 { this->Superclass::SetUpdateExtent( ext ); };
00147
00148
00150
00152 vtkGetMacro( Piece,
int );
00153 vtkGetMacro( NumberOfPieces,
int );
00155
00157
00158 vtkGetMacro( GhostLevel,
int );
00160
00166
unsigned long GetActualMemorySize();
00167
00169
00170
virtual void ShallowCopy(
vtkDataObject *src);
00171
virtual void DeepCopy(
vtkDataObject *src);
00173
00177
void GetIdsOfCellsOfType(
int type,
vtkIdTypeArray *array);
00178
00180
int IsHomogeneous();
00181
00184
void RemoveGhostCells(
int level);
00185
00186
protected:
00187 vtkUnstructuredGrid();
00188 ~vtkUnstructuredGrid();
00189
00190
00191 vtkVertex *Vertex;
00192 vtkPolyVertex *PolyVertex;
00193 vtkLine *Line;
00194 vtkPolyLine *PolyLine;
00195 vtkTriangle *Triangle;
00196 vtkTriangleStrip *TriangleStrip;
00197 vtkPixel *Pixel;
00198 vtkQuad *Quad;
00199 vtkPolygon *Polygon;
00200 vtkTetra *Tetra;
00201 vtkVoxel *Voxel;
00202 vtkHexahedron *Hexahedron;
00203 vtkWedge *Wedge;
00204 vtkPyramid *Pyramid;
00205 vtkQuadraticEdge *QuadraticEdge;
00206 vtkQuadraticTriangle *QuadraticTriangle;
00207 vtkQuadraticQuad *QuadraticQuad;
00208 vtkQuadraticTetra *QuadraticTetra;
00209 vtkQuadraticHexahedron *QuadraticHexahedron;
00210 vtkConvexPointSet *ConvexPointSet;
00211 vtkEmptyCell *EmptyCell;
00212
00213
00214
00215 vtkCellArray *Connectivity;
00216 vtkCellLinks *Links;
00217 vtkUnsignedCharArray *Types;
00218 vtkIdTypeArray *Locations;
00219
00220
private:
00221
00222
00224
00225
void GetCellNeighbors(
vtkIdType cellId,
vtkIdList& ptIds,
vtkIdList& cellIds)
00226 {this->
GetCellNeighbors(cellId, &ptIds, &cellIds);}
00228 };
00229
00230
#endif
00231
00232
00233
00234
00235
00236
00237