Overture  Version 25
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 
15  {
18  };
19 
20  enum FilletTypeEnum // There are two types of fillets
21  {
24  };
25 
27  {
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 
40 
41  FilletMapping & operator =( const FilletMapping & X0 );
42 
43  int setCurves(Mapping & curve1,
44  Mapping & curve2);
45 
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 
54 
55  int update( MappingInformation & mapInfo ) ;
56 
57  protected:
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:
71  bool newCurves;
72  Mapping *s[2]; // for parameterizing a 3D fillet
73 
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  //
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