3D Human Airway Tree
Program generuje ludzkie drzewo oskrzelowe
Strona główna
Dodatkowe strony
Przestrzenie nazw
Klasy
Pliki
Lista plików
Składowe plików
src
ThirdParts
vtk
BooleanOperations
vtkIntersectionPolyDataFilter.h
Idź do dokumentacji tego pliku.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkIntersectionPolyDataFilter.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
=========================================================================*/
15
// .NAME vtkIntersectionPolyDataFilter
16
// .SECTION Description
17
//
18
// vtkIntersectionPolyDataFilter computes the intersection between two
19
// vtkPolyData objects. The first output is a set of lines that marks
20
// the intersection of the input vtkPolyData objects. The second and
21
// third outputs are the first and second input vtkPolyData,
22
// respectively. Optionally, the two output vtkPolyData can be split
23
// along the intersection lines.
24
//
25
// Written by Chris Weigle and Cory Quammen, The University of North
26
// Carolina at Chapel Hill.
27
28
#ifndef __vtkIntersectionPolyDataFilter_h
29
#define __vtkIntersectionPolyDataFilter_h
30
31
#include "vtkPolyDataAlgorithm.h"
32
33
34
class
vtkIntersectionPolyDataFilter
:
public
vtkPolyDataAlgorithm
35
{
36
public
:
37
static
vtkIntersectionPolyDataFilter
*
New
();
38
vtkTypeMacro
(
vtkIntersectionPolyDataFilter
, vtkPolyDataAlgorithm);
39
virtual
void
PrintSelf
(ostream &os, vtkIndent indent);
40
41
// Description:
42
// If on, the second output will be the first input mesh split by the
43
// intersection with the second input mesh. Defaults to on.
44
vtkGetMacro
(
SplitFirstOutput
,
int
);
45
vtkSetMacro
(
SplitFirstOutput
,
int
);
46
vtkBooleanMacro
(
SplitFirstOutput
,
int
);
47
48
// Description:
49
// If on, the third output will be the second input mesh split by the
50
// intersection with the first input mesh. Defaults to on.
51
vtkGetMacro
(
SplitSecondOutput
,
int
);
52
vtkSetMacro
(
SplitSecondOutput
,
int
);
53
vtkBooleanMacro
(
SplitSecondOutput
,
int
);
54
55
// Description:
56
// Given two triangles defined by points (p1, q1, r1) and (p2, q2,
57
// r2), returns whether the two triangles intersect. If they do,
58
// the endpoints of the line forming the intersection are returned
59
// in pt1 and pt2. The parameter coplanar is set to 1 if the
60
// triangles are coplanar and 0 otherwise.
61
static
int
TriangleTriangleIntersection
(
double
p1[3],
double
q1[3],
double
r1[3],
62
double
p2[3],
double
q2[3],
double
r2[3],
63
int
&coplanar,
double
pt1[3],
double
pt2[3]);
64
65
protected
:
66
vtkIntersectionPolyDataFilter
();
67
~vtkIntersectionPolyDataFilter
();
68
69
int
RequestData
(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
70
int
FillInputPortInformation
(
int
, vtkInformation*);
71
72
int
SplitFirstOutput
;
73
int
SplitSecondOutput
;
74
75
private
:
76
vtkIntersectionPolyDataFilter
(
const
vtkIntersectionPolyDataFilter
&);
// no implementation
77
void
operator=(
const
vtkIntersectionPolyDataFilter
&);
// no implementation
78
79
class
Impl
;
80
};
81
82
83
#endif // __vtkIntersectionPolyDataFilter_h
Wygenerowano przez
1.8.1