VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Filtering
vtkBiQuadraticQuadraticWedge.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkBiQuadraticQuadraticWedge.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
=========================================================================*/
43
#ifndef __vtkBiQuadraticQuadraticWedge_h
44
#define __vtkBiQuadraticQuadraticWedge_h
45
46
#include "
vtkNonLinearCell.h
"
47
48
class
vtkQuadraticEdge
;
49
class
vtkBiQuadraticQuad
;
50
class
vtkQuadraticTriangle
;
51
class
vtkWedge
;
52
class
vtkDoubleArray
;
53
54
class
VTK_FILTERING_EXPORT
vtkBiQuadraticQuadraticWedge
:
public
vtkNonLinearCell
55
{
56
public
:
57
static
vtkBiQuadraticQuadraticWedge
*
New
();
58
vtkTypeMacro(
vtkBiQuadraticQuadraticWedge
,
vtkNonLinearCell
);
59
void
PrintSelf
(ostream & os,
vtkIndent
indent);
60
62
64
int
GetCellType
() {
return
VTK_BIQUADRATIC_QUADRATIC_WEDGE
; }
65
int
GetCellDimension
() {
return
3; }
66
int
GetNumberOfEdges
() {
return
9; }
67
int
GetNumberOfFaces
() {
return
5; }
68
vtkCell
*
GetEdge
(
int
edgeId);
69
vtkCell
*
GetFace
(
int
faceId);
71
72
int
CellBoundary
(
int
subId,
double
pcoords[3],
vtkIdList
* pts);
73
void
Contour
(
double
value
,
vtkDataArray
* cellScalars,
74
vtkIncrementalPointLocator
* locator,
vtkCellArray
* verts,
75
vtkCellArray
* lines,
vtkCellArray
* polys,
76
vtkPointData
* inPd,
vtkPointData
* outPd,
vtkCellData
* inCd,
77
vtkIdType
cellId,
vtkCellData
* outCd);
78
int
EvaluatePosition
(
double
x[3],
double
*closestPoint,
79
int
&subId,
double
pcoords[3],
double
&dist2,
double
*weights);
80
void
EvaluateLocation
(
int
&subId,
double
pcoords[3],
double
x[3],
81
double
*weights);
82
int
Triangulate
(
int
index
,
vtkIdList
* ptIds,
vtkPoints
* pts);
83
void
Derivatives
(
int
subId,
double
pcoords[3],
double
*values,
int
dim,
84
double
*derivs);
85
virtual
double
*
GetParametricCoords
();
86
88
91
void
Clip
(
double
value
,
vtkDataArray
* cellScalars,
92
vtkIncrementalPointLocator
* locator,
vtkCellArray
* tetras,
93
vtkPointData
* inPd,
vtkPointData
* outPd,
94
vtkCellData
* inCd,
vtkIdType
cellId,
vtkCellData
* outCd,
95
int
insideOut);
97
99
101
int
IntersectWithLine
(
double
p1[3],
double
p2[3],
double
tol,
double
&t,
102
double
x[3],
double
pcoords[3],
int
&subId);
104
105
107
int
GetParametricCenter
(
double
pcoords[3]);
108
110
112
static
void
InterpolationFunctions (
double
pcoords[3],
double
weights[15]);
113
// Description:
114
// @deprecated Replaced by vtkBiQuadraticQuadraticWedge::InterpolateDerivs as of VTK 5.2
115
static
void
InterpolationDerivs (
double
pcoords[3],
double
derivs[45]);
116
// Description:
117
// Compute the interpolation functions/derivatives
118
// (aka shape functions/derivatives)
119
virtual
void
InterpolateFunctions
(
double
pcoords[3],
double
weights[15])
120
{
121
vtkBiQuadraticQuadraticWedge::InterpolationFunctions
(pcoords,weights);
122
}
123
virtual
void
InterpolateDerivs
(
double
pcoords[3],
double
derivs[45])
124
{
125
vtkBiQuadraticQuadraticWedge::InterpolationDerivs
(pcoords,derivs);
126
}
127
// Description:
128
// Return the ids of the vertices defining edge/face (`edgeId`/`faceId').
129
// Ids are related to the cell, not to the dataset.
130
static
int
*GetEdgeArray(
int
edgeId);
131
static
int
*GetFaceArray(
int
faceId);
133
137
void
JacobianInverse (
double
pcoords[3],
double
**inverse,
double
derivs[45]);
138
139
protected
:
140
vtkBiQuadraticQuadraticWedge
();
141
~
vtkBiQuadraticQuadraticWedge
();
142
143
vtkQuadraticEdge
*
Edge
;
144
vtkQuadraticTriangle
*
TriangleFace
;
145
vtkBiQuadraticQuad
*
Face
;
146
vtkWedge
*
Wedge
;
147
vtkDoubleArray
*
Scalars
;
//used to avoid New/Delete in contouring/clipping
148
149
private
:
150
vtkBiQuadraticQuadraticWedge
(
const
vtkBiQuadraticQuadraticWedge
&);
// Not implemented.
151
void
operator = (
const
vtkBiQuadraticQuadraticWedge
&);
// Not implemented.
152
};
153
//----------------------------------------------------------------------------
154
// Return the center of the quadratic wedge in parametric coordinates.
155
inline
int
vtkBiQuadraticQuadraticWedge::GetParametricCenter
(
double
pcoords[3])
156
{
157
pcoords[0] = pcoords[1] = 1./3;
158
pcoords[2] = 0.5;
159
return
0;
160
}
161
162
163
#endif
Generated on Sun Sep 9 2012 13:03:27 for VTK by
1.8.1.2