VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Common
DataModel
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 "vtkCommonDataModelModule.h"
// For export macro
41
#include "
vtkCell3D.h
"
42
43
class
vtkLine
;
44
class
vtkPolygon
;
45
class
vtkQuad
;
46
47
class
VTKCOMMONDATAMODEL_EXPORT
vtkHexagonalPrism
:
public
vtkCell3D
48
{
49
public
:
50
static
vtkHexagonalPrism
*
New
();
51
vtkTypeMacro(
vtkHexagonalPrism
,
vtkCell3D
);
52
void
PrintSelf
(ostream& os,
vtkIndent
indent);
53
55
56
virtual
void
GetEdgePoints
(
int
edgeId,
int
* &pts);
57
virtual
void
GetFacePoints
(
int
faceId,
int
* &pts);
59
61
62
int
GetCellType
() {
return
VTK_HEXAGONAL_PRISM
;};
63
int
GetCellDimension
() {
return
3;};
64
int
GetNumberOfEdges
() {
return
18;};
65
int
GetNumberOfFaces
() {
return
8;};
66
vtkCell
*
GetEdge
(
int
edgeId);
67
vtkCell
*
GetFace
(
int
faceId);
68
int
CellBoundary
(
int
subId,
double
pcoords[3],
vtkIdList
*pts);
70
71
int
EvaluatePosition
(
double
x[3],
double
* closestPoint,
72
int
& subId,
double
pcoords[3],
73
double
& dist2,
double
*weights);
74
void
EvaluateLocation
(
int
& subId,
double
pcoords[3],
double
x[3],
75
double
*weights);
76
int
IntersectWithLine
(
double
p1[3],
double
p2[3],
double
tol,
double
& t,
77
double
x[3],
double
pcoords[3],
int
& subId);
78
int
Triangulate
(
int
index
,
vtkIdList
*ptIds,
vtkPoints
*pts);
79
void
Derivatives
(
int
subId,
double
pcoords[3],
double
*values,
80
int
dim,
double
*derivs);
81
double
*
GetParametricCoords
();
82
84
int
GetParametricCenter
(
double
pcoords[3]);
85
88
static
void
InterpolationFunctions(
double
pcoords[3],
double
weights[12]);
91
static
void
InterpolationDerivs(
double
pcoords[3],
double
derivs[36]);
93
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 Thu May 24 2012 22:22:10 for VTK by
1.8.1