OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I686LINUX / util / I686LINUX / include / vtk / vtkPolyVertex.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    $RCSfile: vtkPolyVertex.h,v $
5   Language:  C++
6   Date:      $Date: 2002/12/26 18:24:21 $
7   Version:   $Revision: 1.60 $
8
9   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
10   All rights reserved.
11   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
12
13      This software is distributed WITHOUT ANY WARRANTY; without even 
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15      PURPOSE.  See the above copyright notice for more information.
16
17 =========================================================================*/
18 // .NAME vtkPolyVertex - cell represents a set of 0D vertices
19 // .SECTION Description
20 // vtkPolyVertex is a concrete implementation of vtkCell to represent a 
21 // set of 3D vertices.
22
23 #ifndef __vtkPolyVertex_h
24 #define __vtkPolyVertex_h
25
26 #include "vtkCell.h"
27
28 class vtkVertex;
29
30 class VTK_COMMON_EXPORT vtkPolyVertex : public vtkCell
31 {
32 public:
33   static vtkPolyVertex *New();
34   vtkTypeRevisionMacro(vtkPolyVertex,vtkCell);
35
36   // Description:
37   // See the vtkCell API for descriptions of these methods.
38   int GetCellType() {return VTK_POLY_VERTEX;};
39   int GetCellDimension() {return 0;};
40   int GetNumberOfEdges() {return 0;};
41   int GetNumberOfFaces() {return 0;};
42   vtkCell *GetEdge(int vtkNotUsed(edgeId)) {return 0;};
43   vtkCell *GetFace(int vtkNotUsed(faceId)) {return 0;};
44   int CellBoundary(int subId, float pcoords[3], vtkIdList *pts);
45   void Contour(float value, vtkDataArray *cellScalars, 
46                vtkPointLocator *locator, vtkCellArray *verts, 
47                vtkCellArray *lines, vtkCellArray *polys,
48                vtkPointData *inPd, vtkPointData *outPd,
49                vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd);
50   void Clip(float value, vtkDataArray *cellScalars, 
51             vtkPointLocator *locator, vtkCellArray *verts,
52             vtkPointData *inPd, vtkPointData *outPd,
53             vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd,
54             int insideOut);
55   int EvaluatePosition(float x[3], float* closestPoint, 
56                        int& subId, float pcoords[3],
57                        float& dist2, float *weights);
58   void EvaluateLocation(int& subId, float pcoords[3], float x[3],
59                         float *weights);
60   int IntersectWithLine(float p1[3], float p2[3], float tol, float& t,
61                         float x[3], float pcoords[3], int& subId);
62   int Triangulate(int index, vtkIdList *ptIds, vtkPoints *pts);
63   void Derivatives(int subId, float pcoords[3], float *values, 
64                    int dim, float *derivs);
65   
66   // Description:
67   // Return the center of the point cloud in parametric coordinates.
68   int GetParametricCenter(float pcoords[3]);
69
70   
71 protected:
72   vtkPolyVertex();
73   ~vtkPolyVertex();
74
75   vtkVertex *Vertex;
76
77 private:
78   vtkPolyVertex(const vtkPolyVertex&);  // Not implemented.
79   void operator=(const vtkPolyVertex&);  // Not implemented.
80 };
81
82 #endif
83
84