VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Filtering
vtkHexagonalPrism.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkHexagonalPrism.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
37
#ifndef __vtkHexagonalPrism_h
38
#define __vtkHexagonalPrism_h
39
40
#include "
vtkCell3D.h
"
41
42
class
vtkLine
;
43
class
vtkPolygon
;
44
class
vtkQuad
;
45
46
class
VTK_FILTERING_EXPORT
vtkHexagonalPrism
:
public
vtkCell3D
47
{
48
public
:
49
static
vtkHexagonalPrism
*
New
();
50
vtkTypeMacro(
vtkHexagonalPrism
,
vtkCell3D
);
51
void
PrintSelf
(ostream& os,
vtkIndent
indent);
52
54
55
virtual
void
GetEdgePoints
(
int
edgeId,
int
* &pts);
56
virtual
void
GetFacePoints
(
int
faceId,
int
* &pts);
58
60
61
int
GetCellType
() {
return
VTK_HEXAGONAL_PRISM
;};
62
int
GetCellDimension
() {
return
3;};
63
int
GetNumberOfEdges
() {
return
18;};
64
int
GetNumberOfFaces
() {
return
8;};
65
vtkCell
*
GetEdge
(
int
edgeId);
66
vtkCell
*
GetFace
(
int
faceId);
67
int
CellBoundary
(
int
subId,
double
pcoords[3],
vtkIdList
*pts);
69
70
int
EvaluatePosition
(
double
x[3],
double
* closestPoint,
71
int
& subId,
double
pcoords[3],
72
double
& dist2,
double
*weights);
73
void
EvaluateLocation
(
int
& subId,
double
pcoords[3],
double
x[3],
74
double
*weights);
75
int
IntersectWithLine
(
double
p1[3],
double
p2[3],
double
tol,
double
& t,
76
double
x[3],
double
pcoords[3],
int
& subId);
77
int
Triangulate
(
int
index
,
vtkIdList
*ptIds,
vtkPoints
*pts);
78
void
Derivatives
(
int
subId,
double
pcoords[3],
double
*values,
79
int
dim,
double
*derivs);
80
double
*
GetParametricCoords
();
81
83
int
GetParametricCenter
(
double
pcoords[3]);
84
86
88
static
void
InterpolationFunctions(
double
pcoords[3],
double
weights[12]);
89
// Description:
90
// @deprecated Replaced by vtkHexagonalPrism::InterpolateDerivs as of VTK 5.2
91
static
void
InterpolationDerivs(
double
pcoords[3],
double
derivs[36]);
92
// Description:
93
// Compute the interpolation functions/derivatives
94
// (aka shape functions/derivatives)
95
virtual
void
InterpolateFunctions
(
double
pcoords[3],
double
weights[12])
96
{
97
vtkHexagonalPrism::InterpolationFunctions
(pcoords,weights);
98
}
99
virtual
void
InterpolateDerivs
(
double
pcoords[3],
double
derivs[36])
100
{
101
vtkHexagonalPrism::InterpolationDerivs
(pcoords,derivs);
102
}
104
106
108
static
int
*GetEdgeArray(
int
edgeId);
109
static
int
*GetFaceArray(
int
faceId);
111
115
void
JacobianInverse(
double
pcoords[3],
double
**inverse,
double
derivs[36]);
116
117
protected
:
118
vtkHexagonalPrism
();
119
~
vtkHexagonalPrism
();
120
121
vtkLine
*
Line
;
122
vtkQuad
*
Quad
;
123
vtkPolygon
*
Polygon
;
124
125
private
:
126
vtkHexagonalPrism
(
const
vtkHexagonalPrism
&);
// Not implemented.
127
void
operator=(
const
vtkHexagonalPrism
&);
// Not implemented.
128
};
129
130
//----------------------------------------------------------------------------
131
inline
int
vtkHexagonalPrism::GetParametricCenter
(
double
pcoords[3])
132
{
133
pcoords[0] = pcoords[1] = 0.5;
134
pcoords[2] = 0.5;
135
return
0;
136
}
137
#endif
138
139
Generated on Fri Aug 2 2013 12:19:47 for VTK by
1.8.4