VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Common
DataModel
vtkQuadraticLinearQuad.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkQuadraticLinearQuad.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
=========================================================================*/
38
#ifndef __vtkQuadraticLinearQuad_h
39
#define __vtkQuadraticLinearQuad_h
40
41
#include "vtkCommonDataModelModule.h"
// For export macro
42
#include "
vtkNonLinearCell.h
"
43
44
class
vtkQuadraticEdge
;
45
class
vtkLine
;
46
class
vtkQuad
;
47
class
vtkDoubleArray
;
48
49
class
VTKCOMMONDATAMODEL_EXPORT
vtkQuadraticLinearQuad
:
public
vtkNonLinearCell
50
{
51
public
:
52
static
vtkQuadraticLinearQuad
*
New
();
53
vtkTypeMacro(
vtkQuadraticLinearQuad
,
vtkNonLinearCell
);
54
void
PrintSelf
(ostream & os,
vtkIndent
indent);
55
57
59
int
GetCellType
() {
return
VTK_QUADRATIC_LINEAR_QUAD
; };
60
int
GetCellDimension
() {
return
2; }
61
int
GetNumberOfEdges
() {
return
4; }
62
int
GetNumberOfFaces
() {
return
0; }
63
vtkCell
*
GetEdge
(
int
);
64
vtkCell
*
GetFace
(
int
) {
return
0; }
66
67
int
CellBoundary
(
int
subId,
double
pcoords[3],
vtkIdList
* pts);
68
void
Contour
(
double
value
,
vtkDataArray
* cellScalars,
69
vtkIncrementalPointLocator
* locator,
vtkCellArray
* verts,
70
vtkCellArray
* lines,
vtkCellArray
* polys,
71
vtkPointData
* inPd,
vtkPointData
* outPd,
vtkCellData
* inCd,
72
vtkIdType
cellId,
vtkCellData
* outCd);
73
int
EvaluatePosition
(
double
x[3],
double
*closestPoint,
74
int
&subId,
double
pcoords[3],
double
&dist2,
double
*weights);
75
void
EvaluateLocation
(
int
&subId,
double
pcoords[3],
double
x[3],
76
double
*weights);
77
int
Triangulate
(
int
index
,
vtkIdList
* ptIds,
vtkPoints
* pts);
78
void
Derivatives
(
int
subId,
double
pcoords[3],
double
*values,
int
dim,
79
double
*derivs);
80
virtual
double
*
GetParametricCoords
();
81
83
85
void
Clip
(
double
value
,
vtkDataArray
* cellScalars,
86
vtkIncrementalPointLocator
* locator,
vtkCellArray
* polys,
87
vtkPointData
* inPd,
vtkPointData
* outPd,
88
vtkCellData
* inCd,
vtkIdType
cellId,
vtkCellData
* outCd,
89
int
insideOut);
91
93
95
int
IntersectWithLine
(
double
p1[3],
double
p2[3],
double
tol,
double
&t,
96
double
x[3],
double
pcoords[3],
int
&subId);
98
100
int
GetParametricCenter
(
double
pcoords[3]);
101
104
static
void
InterpolationFunctions (
double
pcoords[3],
double
weights[6]);
107
static
void
InterpolationDerivs (
double
pcoords[3],
double
derivs[12]);
109
111
virtual
void
InterpolateFunctions
(
double
pcoords[3],
double
weights[6])
112
{
113
vtkQuadraticLinearQuad::InterpolationFunctions
(pcoords,weights);
114
}
115
virtual
void
InterpolateDerivs
(
double
pcoords[3],
double
derivs[12])
116
{
117
vtkQuadraticLinearQuad::InterpolationDerivs
(pcoords,derivs);
118
}
120
122
static
int
*GetEdgeArray(
int
edgeId);
123
124
protected
:
125
vtkQuadraticLinearQuad
();
126
~
vtkQuadraticLinearQuad
();
127
128
vtkQuadraticEdge
*
Edge
;
129
vtkLine
*
LinEdge
;
130
vtkQuad
*
Quad
;
131
vtkDoubleArray
*
Scalars
;
132
133
private
:
134
vtkQuadraticLinearQuad
(
const
vtkQuadraticLinearQuad
&);
// Not implemented.
135
void
operator = (
const
vtkQuadraticLinearQuad
&);
// Not implemented.
136
};
137
//----------------------------------------------------------------------------
138
inline
int
vtkQuadraticLinearQuad::GetParametricCenter
(
double
pcoords[3])
139
{
140
pcoords[0] = pcoords[1] = 0.5;
141
pcoords[2] = 0.;
142
return
0;
143
}
144
145
#endif
Generated on Thu May 24 2012 22:22:11 for VTK by
1.8.1