Commit 79c7b4b8 authored by Roland Levillain's avatar Roland Levillain
Browse files

Catch up with Static's changes on automatically retrieved

	implementations.

	* oln/core/automatic/impl.hh: New.
	* oln/automatic/image.hh: Move...
	* oln/core/automatic/image.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/image_being_mutable.hh: Move...
	* oln/core/automatic/image_being_mutable.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/image_being_random_accessible.hh: Move...
	* oln/core/automatic/image_being_random_accessible.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/image_having_neighborhood.hh: Move...
	* oln/core/automatic/image_having_neighborhood.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/topology_being_random_accessible.hh: Move...
	* oln/core/automatic/topology_being_random_accessible.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/topology_having_bbox.hh: Move...
	* oln/core/automatic/topology_having_bbox.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	* oln/automatic/topology_having_neighborhood.hh: Move...
	* oln/core/automatic/topology_having_neighborhood.hh: ...here.
	(impl): Rename as...
	(set_impl): ...this.
	Adjust.
	* oln/core/abstract/image.hh (oln::abstract::image)
	* oln/core/abstract/image/accessibility/hierarchy.hh
	(oln::abstract::image_being_random_accessible)
	* oln/core/abstract/image/bbox/hierarchy.hh
	(oln::abstract::image_having_bbox)
	* oln/core/abstract/image/dimension/1d.hh
	(oln::abstract::image1d)
	* oln/core/abstract/image/dimension/2d.hh
	(oln::abstract::image2d)
	* oln/core/abstract/image/dimension/3d.hh
	(oln::abstract::image3d)
	* oln/core/abstract/image/mutability/hierarchy.hh
	(oln::abstract::image_being_mutable)
	* oln/core/abstract/image/neighborhood/hierarchy.hh
	(oln::abstract::image_having_neighborhood)
	* oln/core/abstract/topology_being_random_accessible.hh
	(oln::abstract::topology_being_random_accessible)
	* oln/core/abstract/topology_having_bbox.hh
	(oln::abstract::topology_having_bbox)
	* oln/core/abstract/topology_having_neighborhood.hh
	(oln::abstract::topology_having_neighborhood): Adjust.
	* oln/Makefile.am (nobase_oln_HEADERS): Adjust.


git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@584 4aad255d-cdde-0310-9447-f3009e2ae8c0
parent 5db1a116
2006-09-28 Roland Levillain <roland@lrde.epita.fr>
Catch up with Static's changes on automatically retrieved
implementations.
* oln/core/automatic/impl.hh: New.
* oln/automatic/image.hh: Move...
* oln/core/automatic/image.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/image_being_mutable.hh: Move...
* oln/core/automatic/image_being_mutable.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/image_being_random_accessible.hh: Move...
* oln/core/automatic/image_being_random_accessible.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/image_having_neighborhood.hh: Move...
* oln/core/automatic/image_having_neighborhood.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/topology_being_random_accessible.hh: Move...
* oln/core/automatic/topology_being_random_accessible.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/topology_having_bbox.hh: Move...
* oln/core/automatic/topology_having_bbox.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
* oln/automatic/topology_having_neighborhood.hh: Move...
* oln/core/automatic/topology_having_neighborhood.hh: ...here.
(impl): Rename as...
(set_impl): ...this.
Adjust.
* oln/core/abstract/image.hh (oln::abstract::image)
* oln/core/abstract/image/accessibility/hierarchy.hh
(oln::abstract::image_being_random_accessible)
* oln/core/abstract/image/bbox/hierarchy.hh
(oln::abstract::image_having_bbox)
* oln/core/abstract/image/dimension/1d.hh
(oln::abstract::image1d)
* oln/core/abstract/image/dimension/2d.hh
(oln::abstract::image2d)
* oln/core/abstract/image/dimension/3d.hh
(oln::abstract::image3d)
* oln/core/abstract/image/mutability/hierarchy.hh
(oln::abstract::image_being_mutable)
* oln/core/abstract/image/neighborhood/hierarchy.hh
(oln::abstract::image_having_neighborhood)
* oln/core/abstract/topology_being_random_accessible.hh
(oln::abstract::topology_being_random_accessible)
* oln/core/abstract/topology_having_bbox.hh
(oln::abstract::topology_having_bbox)
* oln/core/abstract/topology_having_neighborhood.hh
(oln::abstract::topology_having_neighborhood): Adjust.
* oln/Makefile.am (nobase_oln_HEADERS): Adjust.
2006-09-27 Thierry GERAUD <theo@tegucigalpa.lrde.epita.fr>
Add oln debug print and a "classical" image abstraction.
......
## Process this file through Automake to create Makefile.in -*- Makefile -*-
olndir = $(includedir)/oln
nobase_oln_HEADERS = \
\
automatic/image.hh \
automatic/image_being_mutable.hh \
automatic/image_being_random_accessible.hh \
automatic/image_having_neighborhood.hh \
automatic/image_having_neighborhood.hh \
automatic/topology_being_random_accessible.hh \
automatic/topology_having_bbox.hh \
automatic/topology_having_neighborhood.hh \
\
core/1d/grid1d.hh \
\
core/2d/aliases.hh \
......@@ -25,7 +15,7 @@ nobase_oln_HEADERS = \
\
core/3d/grid3d.hh \
\
core/abstract/internal/image_impl.hh \
core/abstract/image/accessibility/hierarchy.hh \
\
core/abstract/any.hh \
core/abstract/bbox.hh \
......@@ -35,15 +25,19 @@ nobase_oln_HEADERS = \
core/abstract/grid.hh \
core/abstract/image.hh \
core/abstract/image/accessibility/hierarchy.hh \
\
core/abstract/image/bbox/hierarchy.hh \
\
core/abstract/image/dimension/1d.hh \
core/abstract/image/dimension/2d.hh \
core/abstract/image/dimension/3d.hh \
core/abstract/image/dimension/hierarchy.hh \
core/abstract/image/hierarchies.hh \
\
core/abstract/image/hybrid/classical.hh \
core/abstract/image/mutability/hierarchy.hh \
\
core/abstract/image/neighborhood/hierarchy.hh \
\
core/abstract/image/type/binary.hh \
core/abstract/image/type/color.hh \
core/abstract/image/type/data.hh \
......@@ -51,6 +45,17 @@ nobase_oln_HEADERS = \
core/abstract/image/type/hierarchy.hh \
core/abstract/image/type/integre.hh \
core/abstract/image/type/label.hh \
\
core/abstract/image/hierarchies.hh \
\
core/abstract/internal/image_impl.hh \
\
core/abstract/any.hh \
core/abstract/bbox.hh \
core/abstract/dpoint.hh \
core/abstract/entry.hh \
core/abstract/grid.hh \
core/abstract/image.hh \
core/abstract/iterator.hh \
core/abstract/iterator_on_points.hh \
core/abstract/neighborhood.hh \
......@@ -67,6 +72,16 @@ nobase_oln_HEADERS = \
core/abstract/topology_having_neighborhood.hh \
core/abstract/topology_hierarchies.hh \
\
core/automatic/image.hh \
core/automatic/image_being_mutable.hh \
core/automatic/image_being_random_accessible.hh \
core/automatic/image_having_neighborhood.hh \
core/automatic/image_having_neighborhood.hh \
core/automatic/impl.hh \
core/automatic/topology_being_random_accessible.hh \
core/automatic/topology_having_bbox.hh \
core/automatic/topology_having_neighborhood.hh \
\
core/gen/bbox.hh \
core/gen/bbox_bkd_piter.hh \
core/gen/bbox_fwd_piter.hh \
......
......@@ -31,7 +31,7 @@
# include <oln/core/typedefs.hh>
# include <oln/core/abstract/fwd_decls.hh>
# include <oln/automatic/image.hh>
# include <oln/core/automatic/image.hh>
namespace oln
......@@ -56,7 +56,7 @@ namespace oln
template <typename E>
struct image : public virtual stc::any__simple<E>,
public virtual oln::type,
public automatic::impl< image, oln_type_of(E, morpher), E >
public automatic::get_impl<image, E>
{
public:
......
......@@ -29,8 +29,7 @@
# define OLN_CORE_ABSTRACT_IMAGE_ACCESSIBILITY_HIERARCHY_HH
# include <oln/core/abstract/image.hh>
# include <oln/automatic/image_being_random_accessible.hh>
# include <oln/core/automatic/image_being_random_accessible.hh>
namespace oln
......@@ -47,7 +46,7 @@ namespace oln
template <typename E>
struct image_being_random_accessible :
public virtual image<E>,
public automatic::impl< image_being_random_accessible, oln_type_of(E, morpher), E >
public automatic::get_impl< image_being_random_accessible, E >
{
typedef oln_type_of(E, point) point_t;
......
......@@ -32,7 +32,6 @@
# include <oln/core/abstract/bbox.hh>
namespace oln
{
......@@ -47,7 +46,7 @@ namespace oln
template <typename E>
struct image_having_bbox :
public virtual image<E>,
public automatic::impl< image_having_bbox, oln_type_of(E, morpher), E >
public automatic::get_impl<image_having_bbox, E>
{
private:
......
......@@ -30,6 +30,7 @@
# include <oln/core/abstract/image.hh>
namespace oln
{
......@@ -40,7 +41,7 @@ namespace oln
template <typename E>
struct image1d :
public virtual image<E>,
public automatic::impl< image1d, oln_type_of(E, morpher), E>
public automatic::get_impl<image1d, E>
{
protected:
/// Constructor (protected, empty).
......
......@@ -41,7 +41,7 @@ namespace oln
template <typename E>
struct image2d :
public virtual image<E>,
public automatic::impl< image2d, oln_type_of(E, morpher), E>
public automatic::get_impl<image2d, E>
{
protected:
/// Constructor (protected, empty).
......
......@@ -41,7 +41,7 @@ namespace oln
template <typename E>
struct image3d :
public virtual image<E>,
public automatic::impl< image3d, oln_type_of(E, morpher), E>
public automatic::get_impl<image3d, E>
{
protected:
/// Constructor (protected, empty).
......
......@@ -29,9 +29,7 @@
# define OLN_CORE_ABSTRACT_IMAGE_MUTABILITY_HIERARCHY_HH
# include <oln/core/abstract/image.hh>
// Automatically-inherited implementations.
# include <oln/automatic/image_being_mutable.hh>
# include <oln/core/automatic/image_being_mutable.hh>
......@@ -49,7 +47,7 @@ namespace oln
template <typename E>
struct image_being_mutable :
public virtual image<E>,
public automatic::impl< image_being_mutable, oln_type_of(E, morpher), E >
public automatic::get_impl<image_being_mutable, E>
{
private:
......
......@@ -29,9 +29,7 @@
# define OLN_CORE_ABSTRACT_IMAGE_NEIGHBORHOOD_HIERARCHY_HH
# include <oln/core/abstract/image.hh>
// Automatically-inherited implementations.
# include <oln/automatic/image_having_neighborhood.hh>
# include <oln/core/automatic/image_having_neighborhood.hh>
/* Image having neighborhood hierarchy (summary).
......@@ -59,9 +57,7 @@ namespace oln
template <typename E>
struct image_having_neighborhood :
public virtual image<E>,
public automatic::impl< image_having_neighborhood,
oln_type_of(E, morpher),
E >
public automatic::get_impl<image_having_neighborhood, E>
{
private:
typedef oln_type_of(E, neighborhood) neighborhood_t;
......
......@@ -29,8 +29,7 @@
# define OLN_CORE_ABSTRACT_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
# include <oln/core/abstract/topology.hh>
# include <oln/automatic/topology_being_random_accessible.hh>
# include <oln/core/automatic/topology_being_random_accessible.hh>
namespace oln
......@@ -39,13 +38,10 @@ namespace oln
namespace abstract
{
template <typename E>
class topology_being_random_accessible
: public virtual topology<E>,
public automatic::impl< topology_being_random_accessible,
oln_type_of(E, morpher),
E >
public automatic::get_impl<topology_being_random_accessible, E>
{
typedef oln_type_of(E, point) point_t;
......
......@@ -29,7 +29,7 @@
# define OLN_CORE_ABSTRACT_TOPOLOGY_HAVING_BBOX_HH
# include <oln/core/abstract/topology.hh>
# include <oln/automatic/topology_having_bbox.hh>
# include <oln/core/automatic/topology_having_bbox.hh>
namespace oln
......@@ -38,13 +38,10 @@ namespace oln
namespace abstract
{
template <typename E>
class topology_having_bbox
: public virtual topology<E>,
public automatic::impl< topology_having_bbox,
oln_type_of(E, morpher),
E >
public automatic::get_impl<topology_having_bbox, E>
{
typedef oln_type_of(E, bbox) bbox_t;
......
......@@ -29,7 +29,7 @@
# define OLN_CORE_ABSTRACT_TOPOLOGY_HAVING_NEIGHBORHOOD_HH
# include <oln/core/abstract/topology.hh>
# include <oln/automatic/topology_having_neighborhood.hh>
# include <oln/core/automatic/topology_having_neighborhood.hh>
namespace oln
......@@ -38,13 +38,10 @@ namespace oln
namespace abstract
{
template <typename E>
class topology_having_neighborhood
: public virtual topology<E>,
public automatic::impl< topology_having_neighborhood,
oln_type_of(E, morpher),
E >
public automatic::get_impl<topology_having_neighborhood, E>
{
typedef oln_type_of(E, neighborhood) neighborhood_t;
......
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_IMAGE_HH
# define OLN_AUTOMATIC_IMAGE_HH
#ifndef OLN_CORE_AUTOMATIC_IMAGE_HH
# define OLN_CORE_AUTOMATIC_IMAGE_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -48,9 +48,7 @@ namespace oln
/// Implementation corresponding to the interface
/// oln::abstract::image for an identity morpher.
template <typename E>
class impl< abstract::image,
morpher::tag::identity,
E> :
class set_impl<abstract::image, morpher::tag::identity, E> :
public virtual stc::any__simple<E>
{
private:
......@@ -79,4 +77,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_IMAGE_HH
#endif // ! OLN_CORE_AUTOMATIC_IMAGE_HH
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
# define OLN_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
#ifndef OLN_CORE_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
# define OLN_CORE_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -47,7 +47,7 @@ namespace oln
/// Implementation corresponding to the interface
/// oln::abstract::image_being_mutable for an identity morpher.
template <typename E>
class impl< abstract::image_being_mutable, morpher::tag::identity, E> :
class set_impl<abstract::image_being_mutable, morpher::tag::identity, E> :
public virtual stc::any__simple<E>
{
private:
......@@ -66,4 +66,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
#endif // ! OLN_CORE_AUTOMATIC_IMAGE_BEING_MUTABLE_HH
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
# define OLN_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
#ifndef OLN_CORE_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
# define OLN_CORE_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -50,7 +50,7 @@ namespace oln
/// oln::abstract::image_being_random_accessible.
template <typename E, typename M>
class impl< abstract::image_being_random_accessible, M, E> :
class set_impl<abstract::image_being_random_accessible, M, E> :
public virtual stc::any__simple<E>
{
private:
......@@ -76,7 +76,9 @@ namespace oln
/// oln::abstract::image_being_random_accessible for an identity morpher.
template <typename E>
class impl< abstract::image_being_random_accessible, morpher::tag::identity, E> :
class set_impl< abstract::image_being_random_accessible,
morpher::tag::identity,
E > :
public virtual stc::any__simple<E>
{
private:
......@@ -101,4 +103,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
#endif // ! OLN_CORE_AUTOMATIC_IMAGE_BEING_RANDOM_ACCESSIBLE_HH
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
# define OLN_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
#ifndef OLN_CORE_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
# define OLN_CORE_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -47,9 +47,9 @@ namespace oln
/// Implementation corresponding to the interface
/// oln::abstract::image_having_neighborhood for an identity morpher.
template <typename E>
class impl< abstract::image_having_neighborhood,
morpher::tag::identity,
E> :
class set_impl< abstract::image_having_neighborhood,
morpher::tag::identity,
E > :
public virtual stc::any__simple<E>
{
private:
......@@ -67,4 +67,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
#endif // ! OLN_CORE_AUTOMATIC_IMAGE_HAVING_NEIGHBORHOOD_HH
// Copyright (C) 2006 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 OLN_CORE_AUTOMATIC_IMPL_HH
# define OLN_CORE_AUTOMATIC_IMPL_HH
# include <oln/core/typedefs.hh>
namespace oln
{
namespace automatic
{
/* Specialize to set an automatic implementation. */
template <template <class> class abstraction, typename tag, typename E>
class set_impl
{
};
/// Specialization of oln::automatic::get_impl saving the user
/// the need to specify the morpher type as tag.
template < template <class> class abstraction, typename E >
class get_impl : public set_impl< abstraction, oln_type_of(E, morpher), E >
{
};
} // end of namespace oln::automatic
} // end of namespace oln
#endif // ! OLN_CORE_AUTOMATIC_IMPL_HH
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
# define OLN_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
#ifndef OLN_CORE_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
# define OLN_CORE_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -47,12 +47,13 @@ namespace oln
{
/// Implementation corresponding to the interface
/// oln::abstract::topology_being_random_accessible for an identity morpher.
/// oln::abstract::topology_being_random_accessible for an identity
/// morpher.
template <typename E>
class impl< abstract::topology_being_random_accessible,
morpher::tag::identity,
E> :
class set_impl< abstract::topology_being_random_accessible,
morpher::tag::identity,
E > :
public virtual stc::any__simple<E>
{
private:
......@@ -76,4 +77,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
#endif // ! OLN_CORE_AUTOMATIC_TOPOLOGY_BEING_RANDOM_ACCESSIBLE_HH
......@@ -25,10 +25,10 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
#ifndef OLN_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
# define OLN_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
#ifndef OLN_CORE_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
# define OLN_CORE_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
# include <oln/core/typedefs.hh>
# include <oln/core/automatic/impl.hh>
# include <oln/morpher/tags.hh>
......@@ -50,9 +50,9 @@ namespace oln
/// oln::abstract::topology_having_bbox for an identity morpher.
template <typename E>
class impl< abstract::topology_having_bbox,
morpher::tag::identity,
E> :
class set_impl< abstract::topology_having_bbox,
morpher::tag::identity,
E > :
public virtual stc::any__simple<E>
{
private:
......@@ -71,4 +71,4 @@ namespace oln
} // end of namespace oln
#endif // ! OLN_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
#endif // ! OLN_CORE_AUTOMATIC_TOPOLOGY_HAVING_BBOX_HH
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