Commit f6fa9ae0 authored by Matthieu Garrigues's avatar Matthieu Garrigues
Browse files

add to_vec_p(win, p_center)

	* mln/convert/to_vec_p.hh: add the convertion function
	* sandbox/garrigues/TODO: .
	* tests/to_vec_p.cc: New. 1d and 2d test

git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@1078 4aad255d-cdde-0310-9447-f3009e2ae8c0
parent e359f3d5
2007-09-06 Matthieu Garrigues <garrigues.matthieu@lrde.epita.fr>
add to_vec_p(win, p_center)
* mln/convert/to_vec_p.hh: add the convertion function
* sandbox/garrigues/TODO: .
* tests/to_vec_p.cc: New. 1d and 2d test
2007-09-06 Simon Nivault <simon.nivault@lrde.epita.fr>
Move fast gaussian out of sandbox
......
......@@ -47,6 +47,11 @@ namespace mln
vec_p<mln_point(S)> to_vec_p(const Point_Set<S>& pset);
/// Convert a window \p win with a point \p p into a vec_p (point set vector).
template <typename W>
vec_p<mln_point(W)> to_vec_p(const Window<W>& win, const mln_point(W) p);
# ifndef MLN_INCLUDE_ONLY
template <typename S>
......@@ -61,6 +66,18 @@ namespace mln
return v;
}
template <typename W>
vec_p<mln_point(W)> to_vec_p(const Window<W>& win, const mln_point(W) p_center)
{
vec_p<mln_point(W)> v;
mln_qiter(W) dp(win, p_center);
v.reserve(exact(win).ndpoints());
for_all(dp)
v.append(dp);
return v;
}
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::convert
......
......@@ -13,7 +13,9 @@ R core/win/vline1d.hh |
C R core/w_window1d_float.hh
C R core/w_window1d_int.hh
C R geom/size1d.hh
C R make/box1d.hh
C R make/dpoint1d.hh
C R make/point1d.hh
......
// Copyright (C) 2007 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
// of the GNU General Public License version 2 as published by the
// Free Software Foundation.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
// instantiate templates or use macros or inline functions from this
// file, or you compile this file and link it with other files to
// produce an executable, this file does not by itself cause the
// resulting executable to be covered by the GNU General Public
// License. This exception does not however invalidate any other
// reasons why the executable file might be covered by the GNU General
// Public License.
/*! \file tests/point1d.cc
*
* \brief Tests on mln::point1d.
*/
#include <mln/core/point1d.hh>
#include <mln/core/point2d.hh>
#include <mln/core/vec_p.hh>
#include <mln/core/win/segment1d.hh>
#include <mln/core/win/rectangle2d.hh>
#include <mln/convert/to_vec_p.hh>
int main()
{
using namespace mln;
typedef vec_p<point1d> vec1d;
point1d p1 = make::point1d(6);
win::segment1d win1d(5);
vec1d v1(convert::to_vec_p(win1d, p1));
for (int i=0; i < v1.npoints(); i++)
std::cout << (v1[i]);
std::cout << "\n";
typedef vec_p<point2d> vec2d;
point2d p2 = make::point2d(10,10);
win::rectangle2d win2d(3, 3);
vec2d v2(convert::to_vec_p(win2d, p2));
for (int i=0; i < v2.npoints(); i++)
std::cout << (v2[i]);
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment