13 #ifndef eli_geom_curve_piecewise_airfoil_creator_base_hpp
14 #define eli_geom_curve_piecewise_airfoil_creator_base_hpp
18 #include "eli/code_eli.hpp"
30 template<
typename data__,
unsigned short dim__,
typename tol__>
42 for (index_type i=0; i<static_cast<index_type>(
dt.size()); ++i)
50 return static_cast<index_type
>(
dt.size());
58 if ((dtt>0) && (i>=0) && (i<static_cast<index_type>(
dt.size())))
65 if ((i<0) || (i>=static_cast<index_type>(
dt.size())))
68 return static_cast<data_type
>(-1);
77 std::vector<data_type>
dt;
85 #ifndef eli_geom_curve_piecewise_four_digit_creator_hpp
86 #define eli_geom_curve_piecewise_four_digit_creator_hpp
88 #include "eli/code_eli.hpp"
99 template<
typename data__,
unsigned short dim__,
typename tol__>
135 bool set_camber(
const data_type &cam,
const data_type &cam_loc)
163 typedef typename piecewise_curve_type::curve_type curve_type;
164 typedef typename piecewise_curve_type::error_code error_code;
165 typedef typename curve_type::fit_container_type fit_container_type;
166 typedef typename curve_type::dimension_type dimension_type;
168 af_point_type temppt;
170 std::vector<point_type, Eigen::aligned_allocator<point_type> > pts;
181 index_type npt = nref*nseg+1;
184 index_type ile(1+(npt-1)/2);
189 std::vector< data_type > xis;
193 for( i = 0; i < npt; i++ )
205 pts[i] =
point_type(temppt.x(), temppt.y(), 0);
213 index_type istart(0), iend(nref);
221 for( i = 0; i < nseg; i++ )
230 fit_container_type fcon;
232 fcon.set_points(pts.begin()+istart, pts.begin()+iend+1);
233 fcon.add_start_C0_constraint();
234 fcon.add_end_C0_constraint();
247 dimension_type dim(10);
254 if (err!=piecewise_curve_type::NO_ERRORS)
point_type f(const data_type &xi) const
Definition: four_digit.hpp:130
data_type get_u_max() const
Definition: four_digit.hpp:57
bool set_camber(const data_type &cam, const data_type &cam_loc)
Definition: piecewise_four_digit_creator.hpp:135
airfoil_type af
Definition: piecewise_four_digit_creator.hpp:271
data_type get_maximum_camber() const
Definition: piecewise_four_digit_creator.hpp:140
piecewise_four_digit_creator()
Definition: piecewise_four_digit_creator.hpp:111
data_type get_thickness() const
Definition: piecewise_four_digit_creator.hpp:130
error_code push_back(const curve_type &curve, const data_type &dt=1.0)
Definition: piecewise.hpp:688
index_type get_number_segments() const
Definition: piecewise_four_digit_creator.hpp:48
data_type get_segment_dt(const index_type &i) const
Definition: piecewise_four_digit_creator.hpp:63
bool set_camber(const data_type &cam, const data_type &cam_loc)
Definition: four_digit.hpp:78
eli::geom::curve::pseudo::four_digit< data_type > airfoil_type
Definition: piecewise_four_digit_creator.hpp:108
base_class_type::data_type data_type
Definition: piecewise_four_digit_creator.hpp:104
bool set_thickness(const data_type &t)
Definition: piecewise_four_digit_creator.hpp:125
Eigen::Matrix< data_type, 1, dim__ > point_type
Definition: piecewise_four_digit_creator.hpp:35
data_type get_thickness() const
Definition: four_digit.hpp:76
Definition: piecewise.hpp:244
data_type t0
Definition: piecewise_four_digit_creator.hpp:78
Definition: piecewise_four_digit_creator.hpp:31
std::string get_name() const
Definition: four_digit.hpp:121
std::string get_name() const
Definition: piecewise_four_digit_creator.hpp:155
data_type get_maximum_camber_location() const
Definition: piecewise_four_digit_creator.hpp:145
virtual ~piecewise_airfoil_creator_base()
Definition: piecewise_four_digit_creator.hpp:46
point_type::Index index_type
Definition: piecewise_four_digit_creator.hpp:36
data_type get_maximum_camber() const
Definition: four_digit.hpp:90
piecewise_airfoil_creator_base(const data_type &tt0)
Definition: piecewise_four_digit_creator.hpp:40
bool set_name(const std::string &name)
Definition: four_digit.hpp:93
base_class_type::index_type index_type
Definition: piecewise_four_digit_creator.hpp:106
data_type get_u_min() const
Definition: four_digit.hpp:56
bool sharp_trailing_edge() const
Definition: piecewise_four_digit_creator.hpp:120
bool set_name(const std::string &name)
Definition: piecewise_four_digit_creator.hpp:150
Eigen::Matrix< data_type, 1, 2 > point_type
Definition: four_digit.hpp:36
data_type get_t0() const
Definition: piecewise_four_digit_creator.hpp:54
base_class_type::tolerance_type tolerance_type
Definition: piecewise_four_digit_creator.hpp:107
void clear()
Definition: piecewise.hpp:599
void set_sharp_trailing_edge(bool fl)
Definition: piecewise_four_digit_creator.hpp:116
std::vector< data_type > dt
Definition: piecewise_four_digit_creator.hpp:77
data__ data_type
Definition: piecewise_four_digit_creator.hpp:34
virtual bool create(piecewise< bezier, data_type, dim__, tolerance_type > &pc) const =0
tol__ tolerance_type
Definition: piecewise_four_digit_creator.hpp:37
base_class_type::point_type point_type
Definition: piecewise_four_digit_creator.hpp:105
void set_t0(const data_type &t0_in)
Definition: piecewise.hpp:340
piecewise_airfoil_creator_base(const piecewise_airfoil_creator_base< data_type, dim__, tolerance_type > &pac)
Definition: piecewise_four_digit_creator.hpp:45
Definition: piecewise_four_digit_creator.hpp:100
void set_sharp_trailing_edge(bool fl)
Definition: four_digit.hpp:59
void set_t0(const data_type &tt0)
Definition: piecewise_four_digit_creator.hpp:53
void set_segment_dt(const data_type &dtt, const index_type &i)
Definition: piecewise_four_digit_creator.hpp:56
airfoil_type::point_type af_point_type
Definition: piecewise_four_digit_creator.hpp:109
data_type get_maximum_camber_location() const
Definition: four_digit.hpp:91
bool set_thickness(const data_type &t)
Definition: four_digit.hpp:66
bool sharp_trailing_edge() const
Definition: four_digit.hpp:64
virtual bool create(piecewise< bezier, data_type, dim__, tolerance_type > &pc) const
Definition: piecewise_four_digit_creator.hpp:160
~piecewise_four_digit_creator()
Definition: piecewise_four_digit_creator.hpp:114
piecewise_four_digit_creator(const piecewise_four_digit_creator< data_type, dim__, tolerance_type > &ppc)
Definition: piecewise_four_digit_creator.hpp:112
piecewise_airfoil_creator_base< data__, dim__, tol__ > base_class_type
Definition: piecewise_four_digit_creator.hpp:103