Commit 17827fd8 authored by Thierry Geraud's avatar Thierry Geraud
Browse files

Add extra documentation to milena.

	* mln/debug/all.hh,
	* mln/level/all.hh,
	* mln/value/all.hh: New facade files.

	* mln/debug/println.hh,
	* mln/level/fill.hh,
	* mln/level/compare.hh,
	* mln/level/paste.hh,
	* mln/value/props.hh: Add documentation.


git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@999 4aad255d-cdde-0310-9447-f3009e2ae8c0
parent 9ec5f65e
2007-07-05 Thierry Geraud <thierry.geraud@lrde.epita.fr>
Add extra documentation to milena.
* mln/debug/all.hh,
* mln/level/all.hh,
* mln/value/all.hh: New facade files.
* mln/debug/println.hh,
* mln/level/fill.hh,
* mln/level/compare.hh,
* mln/level/paste.hh,
* mln/value/props.hh: Add documentation.
2007-07-05 Thierry Geraud <thierry.geraud@lrde.epita.fr>
Add copyright to milena files.
......
// 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.
#ifndef MLN_DEBUG_ALL_HH
# define MLN_DEBUG_ALL_HH
/*! \file mln/debug/all.hh
*
* \brief File that includes all debug-related routines.
*/
namespace mln
{
/*! Namespace of routines that help to debug.
*/
namespace debug {}
}
# include <mln/debug/println.hh>
#endif // ! MLN_DEBUG_ALL_HH
......@@ -28,6 +28,11 @@
#ifndef MLN_DEBUG_PRINTLN_HH
# define MLN_DEBUG_PRINTLN_HH
/*! \file mln/debug/println.hh
*
* \brief Print an image on the standard output.
*/
# include <mln/core/concept/image.hh>
# include <mln/core/concept/window.hh>
# include <mln/core/box2d.hh>
......@@ -39,13 +44,10 @@ namespace mln
namespace debug
{
/// Print the image \p input on the standard output.
template <typename I>
void println(const Image<I>& input);
template <typename I, typename W>
void println(const Image<I>& input_,
const Window<W>& win_);
# ifndef MLN_INCLUDE_ONLY
......
// 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.
#ifndef MLN_LEVEL_ALL_HH
# define MLN_LEVEL_ALL_HH
/*! \file mln/level/all.hh
*
* \brief File that includes all level-related routines.
*/
namespace mln
{
/*! Namespace of image processing routines related to pixel levels.
*/
namespace level {}
}
# include <mln/level/fill.hh>
# include <mln/level/compare.hh>
# include <mln/level/paste.hh>
#endif // ! MLN_LEVEL_ALL_HH
......@@ -28,22 +28,54 @@
#ifndef MLN_LEVEL_COMPARE_HH
# define MLN_LEVEL_COMPARE_HH
/*! \file mln/level/compare.hh
*
* \brief Comparison operators between the pixel values of images.
*/
# include <mln/core/concept/image.hh>
namespace mln
{
/*! Point-wise test if the pixel values of \p lhs are equal to the
* pixel values of \p rhs.
*
* \param[in] lhs A first image.
* \param[in] rhs A second image.
*
* \todo Test domain equality.
*/
template <typename L, typename R>
bool operator == (const Image<L>& lhs, const Image<R>& rhs);
/*! Point-wise test if the pixel values of \p lhs are point-wise
* less than the pixel values of \p rhs.
*
* \param[in] lhs A first image.
* \param[in] rhs A second image.
*
* \todo Test domain equality.
*/
template <typename L, typename R>
bool operator < (const Image<L>& lhs, const Image<R>& rhs);
/*! Point-wise test if the pixel values of \p lhs are point-wise
* less than or equal to the pixel values of \p rhs.
*
* \param[in] lhs A first image.
* \param[in] rhs A second image.
*
* \todo Test domain equality.
*/
template <typename L, typename R> // required!
bool operator <= (const Image<L>& lhs, const Image<R>& rhs);
# ifndef MLN_INCLUDE_ONLY
template <typename L, typename R>
......
......@@ -28,6 +28,11 @@
#ifndef MLN_LEVEL_FILL_HH
# define MLN_LEVEL_FILL_HH
/*! \file mln/level/fill.hh
*
* \brief Fill an image, that is, set pixel values.
*/
# include <mln/core/concept/image.hh>
......@@ -37,23 +42,68 @@ namespace mln
namespace level
{
/*! Fill the whole image \p ima with the single value \p v.
*
* \param[in,out] ima The image to be filled.
* \param[in] v The value to assign to all pixels.
*
* \pre \p ima has to be initialized.
*/
template <typename I>
void fill(Image<I>& ima_,
const mln_value(I)& value);
void fill(Image<I>& ima,
const mln_value(I)& v);
/*! Fill the image \p ima by applying the function \p f.
*
* \param[in,out] ima The image to be filled.
* \param[in] f The function that defines the value of every pixel.
*
* The signature of \p f has to be:
* " value f(const point& p) "
*
* \pre \p ima has to be initialized.
*/
template <typename I>
void fill(Image<I>& ima_,
void fill(Image<I>& ima,
mln_value(I) (*f)(const mln_point(I)& p));
template <typename I>
void fill(Image<I>& ima_,
const mln_value(I) array[]);
/*! Fill the image \p ima with the values given by the array \p arr.
*
* \param[in,out] ima The image to be filled.
* \param[in] arr The array of values.
*
* \warning The size of the array has to be larger than the number
* of image points, otherwise the program crashes.
*
* \pre \p ima has to be initialized.
*
* \todo Add as parameter the array size, then add a test.
*/
template <typename I>
void fill(Image<I>& ima,
const mln_value(I) arr[]);
/*! Fill the image \p ima with the values of the image \p data.
*
* \param[in,out] ima The image to be filled.
* \param[in] data The image.
*
* \warning The definition domain of \p ima has to be included in
* the one of \p data.
*
* \pre \p ima has to be initialized.
*
* \todo Test domain inclusion.
*/
template <typename I, typename J>
void fill(Image<I>& ima_,
void fill(Image<I>& ima,
const Image<J>& data);
# ifndef MLN_INCLUDE_ONLY
template <typename I>
......
......@@ -28,6 +28,11 @@
#ifndef MLN_LEVEL_PASTE_HH
# define MLN_LEVEL_PASTE_HH
/*! \file mln/level/paste.hh
*
* \brief Paste the contents of an image into another one.
*/
# include <mln/core/concept/image.hh>
......@@ -37,6 +42,23 @@ namespace mln
namespace level
{
/*! Paste the contents of image \p data into the image \p
* destination.
*
* \param[in] data The input image providing pixels values.
* \param[in,out] destination The image in which values are
* assigned.
*
* This routine runs: \n
* for all p of \p data, \p destination(p) = \p data(p).
*
* \warning The definition domain of \p data has to be included
* in the one of \p destination.
*
* \pre Both images have to be initialized.
*
* \todo Test domain inclusion.
*/
template <typename I, typename J>
void paste(const Image<I>& data, Image<J>& destination);
......
// 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.
#ifndef MLN_VALUE_ALL_HH
# define MLN_VALUE_ALL_HH
/*! \file mln/value/all.hh
*
* \brief File that includes all "value types"-related materials.
*/
namespace mln
{
/*! Namespace of materials related to ixel value types.
*/
namespace value {}
}
# include <mln/value/props.hh>
#endif // ! MLN_VALUE_ALL_HH
......@@ -28,23 +28,39 @@
#ifndef MLN_VALUE_PROPS_HH
# define MLN_VALUE_PROPS_HH
/*! \file mln/value/props.hh
*
* \brief Define properties of value types.
*/
# include <climits>
# include <cfloat>
/// Get the minimum value of type \c T.
# define mln_min(T) mln::value::props<T>::min()
/// Get the maximum value of type \c T.
# define mln_max(T) mln::value::props<T>::max()
namespace mln
{
namespace value
{
/*! Class that defines the properties of the value type \c T.
*/
template <typename T>
struct props
{
/// Minimum value for type \c T.
static T min();
/// Maximum value for type \c T.
static T max();
};
......
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