Overture
Version 25
Main Page
Namespaces
Classes
Files
File List
File Members
Overture.v25.d
include
FilletMapping.h
Go to the documentation of this file.
1
#ifndef FILLET_MAPPING_H
2
#define FILLET_MAPPING_H
3
4
#include "
IntersectionMapping.h
"
5
6
//-------------------------------------------------------------
7
// Define a fillet mapping that creates a smooth surface in
8
// the reagion where two curves (surfaces) intersect
9
//-------------------------------------------------------------
10
class
FilletMapping
:
public
Mapping
11
{
12
public
:
13
14
enum
JoinTypeEnum
15
{
16
fillet
,
17
collar
18
};
19
20
enum
FilletTypeEnum
// There are two types of fillets
21
{
22
parametric
=0,
23
nonParametric
24
};
25
26
enum
OffsetTypeEnum
27
{
28
hyperbolicOffset
,
29
offsetCurve
30
};
31
32
FilletMapping
();
33
FilletMapping
(
Mapping
& curve1,
34
Mapping
& curve2);
35
36
// Copy constructor is deep by default
37
FilletMapping
(
const
FilletMapping
&,
const
CopyType
copyType=
DEEP
);
38
39
~FilletMapping
();
40
41
FilletMapping
&
operator =
(
const
FilletMapping
& X0 );
42
43
int
setCurves
(
Mapping
& curve1,
44
Mapping
& curve2);
45
46
void
map
(
const
realArray
&
r
,
realArray
& x,
realArray
& xr =
Overture::nullRealDistributedArray
(),
47
MappingParameters
& params =
Overture::nullMappingParameters
() );
48
49
virtual
int
get
(
const
GenericDataBase
& dir,
const
aString
& name);
// get from a database file
50
virtual
int
put
(
GenericDataBase
& dir,
const
aString
& name)
const
;
// put to a database file
51
52
Mapping
*
make
(
const
aString
&
mappingClassName
);
53
aString
getClassName
()
const
{
return
FilletMapping::className
; }
54
55
int
update
(
MappingInformation
& mapInfo ) ;
56
57
protected
:
58
aString
className
;
59
Mapping
*
curve
[2], *
blendingFunction
;
60
bool
uninitialized
;
61
IntersectionMapping
inter
;
62
int
numberOfIntersections
;
// number of intersection points/curves
63
int
intersectionToUse
;
// make a fillet at this intersection
64
bool
intersectionFound
;
// true if an intersection curve has been found.
65
real
filletWidth
,
filletOverlap
;
// width of fillet, amount of overlap onto each curve/surface
66
int
orient
;
// defines the orientation
67
RealArray
sc
;
// holds coefficients in s_i(r) functions
68
real
blendingFactor
;
// determines the sharpeness of the blend.
69
// for intersection of curves:
70
realArray
rIntersect
[2],
xIntersect
;
71
bool
newCurves
;
72
Mapping
*
s
[2];
// for parameterizing a 3D fillet
73
74
JoinTypeEnum
joinType
;
75
FilletTypeEnum
filletType
;
76
OffsetTypeEnum
offsetType
[2];
77
78
int
setup
();
79
int
setupForNewCurves
();
80
void
initialize
();
81
82
private
:
83
84
//
85
// Virtual member functions used only through class ReferenceCounting:
86
//
87
virtual
ReferenceCounting
&
operator=
(
const
ReferenceCounting
& x)
88
{
return
operator=
((
FilletMapping
&)x); }
89
virtual
void
reference(
const
ReferenceCounting
& x)
90
{ reference((
FilletMapping
&)x); }
// *** Conversion to this class for the virtual = ****
91
virtual
ReferenceCounting
* virtualConstructor(
const
CopyType
ct =
DEEP
)
const
92
{ return ::new
FilletMapping
(*
this
, ct); }
93
94
};
95
96
97
#endif
Generated on Fri Jan 4 2013 10:17:51 for Overture by
1.8.3