13 #ifndef piecewise_body_of_revolution_creator_test_suite_hpp
14 #define piecewise_body_of_revolution_creator_test_suite_hpp
31 template<
typename data__>
72 void octave_print(
int figno,
const piecewise_surface_type &ps)
const
74 index_type i, j, pp, qq, nup, nvp;
75 data_type umin, vmin, umax, vmax;
82 std::cout <<
"figure(" << figno <<
");" << std::endl;
83 std::cout <<
"cp_x=[" << std::endl;
84 for (pp=0; pp<nup; ++pp)
86 for (qq=0; qq<nvp; ++qq)
90 for (i=0; i<=bez.degree_u(); ++i)
92 std::cout << bez.get_control_point(i, 0).x();
93 for (j=1; j<bez.degree_v(); ++j)
95 std::cout <<
", " << bez.get_control_point(i, j).x();
98 std::cout <<
", " << bez.get_control_point(i, j).x();
106 std::cout << std::endl;
109 std::cout <<
"];" << std::endl;
111 std::cout <<
"cp_y=[";
112 for (pp=0; pp<nup; ++pp)
114 for (qq=0; qq<nvp; ++qq)
118 for (i=0; i<=bez.degree_u(); ++i)
120 std::cout << bez.get_control_point(i, 0).y();
121 for (j=1; j<bez.degree_v(); ++j)
123 std::cout <<
", " << bez.get_control_point(i, j).y();
126 std::cout <<
", " << bez.get_control_point(i, j).y();
127 if (i<bez.degree_u())
134 std::cout << std::endl;
137 std::cout <<
"];" << std::endl;
139 std::cout <<
"cp_z=[";
140 for (pp=0; pp<nup; ++pp)
142 for (qq=0; qq<nvp; ++qq)
146 for (i=0; i<=bez.degree_u(); ++i)
148 std::cout << bez.get_control_point(i, 0).z();
149 for (j=1; j<bez.degree_v(); ++j)
151 std::cout <<
", " << bez.get_control_point(i, j).z();
154 std::cout <<
", " << bez.get_control_point(i, j).z();
155 if (i<bez.degree_u())
162 std::cout << std::endl;
165 std::cout <<
"];" << std::endl;
168 std::vector<data__> u(11), v(11);
169 for (i=0; i<static_cast<index_type>(u.size()); ++i)
171 u[i]=umin+(umax-umin)*static_cast<data__>(i)/(u.size()-1);
173 for (j=0; j<static_cast<index_type>(v.size()); ++j)
175 v[j]=vmin+(vmax-vmin)*static_cast<data__>(j)/(v.size()-1);
179 std::cout <<
"surf_x=[";
180 for (i=0; i<static_cast<index_type>(u.size()); ++i)
182 std::cout << ps.
f(u[i], v[0]).x();
183 for (j=1; j<static_cast<index_type>(v.size()-1); ++j)
185 std::cout <<
", " << ps.
f(u[i], v[j]).x();
187 j=
static_cast<index_type
>(v.size()-1);
188 std::cout <<
", " << ps.
f(u[i], v[j]).x();
189 if (i<static_cast<index_type>(u.size()-1))
190 std::cout <<
"; " << std::endl;
192 std::cout <<
"];" << std::endl;
194 std::cout <<
"surf_y=[";
195 for (i=0; i<static_cast<index_type>(u.size()); ++i)
197 std::cout << ps.
f(u[i], v[0]).y();
198 for (j=1; j<static_cast<index_type>(v.size()-1); ++j)
200 std::cout <<
", " << ps.
f(u[i], v[j]).y();
202 j=
static_cast<index_type
>(v.size()-1);
203 std::cout <<
", " << ps.
f(u[i], v[j]).y();
204 if (i<static_cast<index_type>(u.size()-1))
205 std::cout <<
"; " << std::endl;
207 std::cout <<
"];" << std::endl;
209 std::cout <<
"surf_z=[";
210 for (i=0; i<static_cast<index_type>(u.size()); ++i)
212 std::cout << ps.
f(u[i], v[0]).z();
213 for (j=1; j<static_cast<index_type>(v.size()-1); ++j)
215 std::cout <<
", " << ps.
f(u[i], v[j]).z();
217 j=
static_cast<index_type
>(v.size()-1);
218 std::cout <<
", " << ps.
f(u[i], v[j]).z();
219 if (i<static_cast<index_type>(u.size()-1))
220 std::cout <<
"; " << std::endl;
222 std::cout <<
"];" << std::endl;
224 std::cout <<
"setenv('GNUTERM', 'x11');" << std::endl;
225 std::cout <<
"mesh(surf_x, surf_y, surf_z, zeros(size(surf_z)), 'EdgeColor', [0 0 0]);" << std::endl;
226 std::cout <<
"hold on;" << std::endl;
227 std::cout <<
"plot3(cp_x, cp_y, cp_z, 'ok', 'MarkerFaceColor', [0 0 0]);" << std::endl;
228 std::cout <<
"hold off;" << std::endl;
234 typedef typename curve_type::control_point_type curve_control_point_type;
238 piecewise_curve_type pc;
240 curve_control_point_type cp[4];
251 c.set_control_point(cp[i], i);
262 c.set_control_point(cp[i], i);
266 piecewise_surface_type ps;
273 TEST_ASSERT(ps.open_u());
274 TEST_ASSERT(ps.closed_v());
surface_type::point_type point_type
Definition: piecewise.hpp:59
~piecewise_body_of_revolution_creator_test_suite()
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:67
piecewise_surface_type::tolerance_type tolerance_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:41
tolerance_type tol
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:43
bool create_body_of_revolution(piecewise< bezier, data__, dim__, tol__ > &ps, const eli::geom::curve::piecewise< eli::geom::curve::bezier, data__, dim__, tol__ > &pc, int axis, bool outward_normal)
Definition: piecewise_body_of_revolution_creator.hpp:36
piecewise_surface_type::point_type point_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:38
eli::geom::surface::piecewise< eli::geom::surface::bezier, data__, 3 > piecewise_surface_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:35
Definition: piecewise.hpp:281
data__ data_type
Definition: piecewise.hpp:66
error_code push_back(const curve_type &curve, const data_type &dt=1.0)
Definition: piecewise.hpp:688
piecewise_body_of_revolution_creator_test_suite()
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:63
void get_parameter_max(data_type &umax, data_type &vmax) const
Definition: piecewise.hpp:175
error_code get(surface_type &surf, const index_type &ui, const index_type &vi) const
Definition: piecewise.hpp:487
point_type f(const data_type &u, const data_type &v) const
Definition: piecewise.hpp:897
index_type number_v_patches() const
Definition: piecewise.hpp:143
Definition: piecewise.hpp:37
void AddTests(const long double &)
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:56
Definition: piecewise.hpp:244
void AddTests(const double &)
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:51
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:32
curve__< data__, dim__, tol__ > curve_type
Definition: piecewise.hpp:270
tol__ tolerance_type
Definition: piecewise.hpp:68
eli::geom::curve::piecewise< eli::geom::curve::bezier, data__, 3 > piecewise_curve_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:36
void get_parameter_min(data_type &umin, data_type &vmin) const
Definition: piecewise.hpp:169
void AddTests(const float &)
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:46
surface_type::index_type index_type
Definition: piecewise.hpp:58
void create_body_of_revolution_test()
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:231
index_type number_u_patches() const
Definition: piecewise.hpp:142
piecewise_surface_type::surface_type surface_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:37
piecewise_surface_type::index_type index_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:40
surface__< data__, dim__, tol__ > surface_type
Definition: piecewise.hpp:57
void octave_print(int figno, const piecewise_surface_type &ps) const
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:72
piecewise_surface_type::data_type data_type
Definition: piecewise_body_of_revolution_creator_test_suite.hpp:39