Commit 68181d1d authored by Guillaume Lazzara's avatar Guillaume Lazzara
Browse files

Add more implementations for box specializations.

	* mln/core/internal/box_impl.hh: Add width, height and depth.
parent 89cf4eee
2010-02-16 Guillaume Lazzara <z@lrde.epita.fr>
Add more implementations for box specializations.
* mln/core/internal/box_impl.hh: Add width, height and depth.
2010-02-16 Guillaume Lazzara <z@lrde.epita.fr> 2010-02-16 Guillaume Lazzara <z@lrde.epita.fr>
   
First draft of raw format support. First draft of raw format support.
...@@ -11,26 +17,26 @@ ...@@ -11,26 +17,26 @@
   
Add new 3D neighborhoods and windows. Add new 3D neighborhoods and windows.
   
* milena/mln/core/alias/neighb3d.hh, * mln/core/alias/neighb3d.hh,
* milena/mln/win/sline3d.hh: New. * mln/win/sline3d.hh: New.
   
2010-02-16 Guillaume Lazzara <z@lrde.epita.fr> 2010-02-16 Guillaume Lazzara <z@lrde.epita.fr>
   
Add a new rgb32 type for Qt compatibility. Add a new rgb32 type for Qt compatibility.
   
* milena/mln/convert/from_to.hxx: Declare conversion routines. * mln/convert/from_to.hxx: Declare conversion routines.
   
* milena/mln/value/qt/rgb32.hh: New. * mln/value/qt/rgb32.hh: New.
   
2010-02-16 Guillaume Lazzara <z@lrde.epita.fr> 2010-02-16 Guillaume Lazzara <z@lrde.epita.fr>
   
Fix invalid value type names in dump format. Fix invalid value type names in dump format.
   
* milena/mln/value/internal/make_generic_name.hh: New. * mln/value/internal/make_generic_name.hh: New.
   
* milena/mln/value/int_u.hh, * mln/value/int_u.hh,
* milena/mln/value/label.hh, * mln/value/label.hh,
* milena/mln/value/rgb.hh: Make use of the new routine to print a * mln/value/rgb.hh: Make use of the new routine to print a
correct type names in dump format. correct type names in dump format.
   
2009-11-18 Guillaume Lazzara <z@lrde.epita.fr> 2009-11-18 Guillaume Lazzara <z@lrde.epita.fr>
// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) // Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
// Laboratory (LRDE)
// //
// This file is part of Olena. // This file is part of Olena.
// //
...@@ -38,6 +39,8 @@ ...@@ -38,6 +39,8 @@
namespace mln namespace mln
{ {
// Forward declaration
namespace internal namespace internal
{ {
...@@ -79,6 +82,15 @@ namespace mln ...@@ -79,6 +82,15 @@ namespace mln
/// Give the minimum col. /// Give the minimum col.
C max_col() const; C max_col() const;
/// Give the width.
unsigned width() const;
/// Give the height.
unsigned height() const;
/// Give the depth.
unsigned depth() const;
}; };
template <typename C, typename E> // FIXME: Add an extra param to replace 'unsigned'. template <typename C, typename E> // FIXME: Add an extra param to replace 'unsigned'.
...@@ -101,6 +113,13 @@ namespace mln ...@@ -101,6 +113,13 @@ namespace mln
/// Give the minimum col. /// Give the minimum col.
C max_col() const; C max_col() const;
/// Give the width.
unsigned width() const;
/// Give the height.
unsigned height() const;
}; };
template <typename C, typename E> // FIXME: Add an extra param to replace 'unsigned'. template <typename C, typename E> // FIXME: Add an extra param to replace 'unsigned'.
...@@ -187,6 +206,28 @@ namespace mln ...@@ -187,6 +206,28 @@ namespace mln
} }
template <typename C, typename E>
inline
unsigned box_impl_<3, C, E>::width() const
{
return internal::force_exact<E>(*this).bbox().len(2);
}
template <typename C, typename E>
inline
unsigned box_impl_<3, C, E>::height() const
{
return internal::force_exact<E>(*this).bbox().len(1);
}
template <typename C, typename E>
inline
unsigned box_impl_<3, C, E>::depth() const
{
return internal::force_exact<E>(*this).bbox().len(0);
}
// 2 // 2
template <typename C, typename E> template <typename C, typename E>
...@@ -231,6 +272,20 @@ namespace mln ...@@ -231,6 +272,20 @@ namespace mln
return internal::force_exact<E>(*this).bbox().pmax()[1]; return internal::force_exact<E>(*this).bbox().pmax()[1];
} }
template <typename C, typename E>
inline
unsigned box_impl_<2, C, E>::width() const
{
return internal::force_exact<E>(*this).bbox().len(1);
}
template <typename C, typename E>
inline
unsigned box_impl_<2, C, E>::height() const
{
return internal::force_exact<E>(*this).bbox().len(0);
}
// 1 // 1
template <typename C, typename E> template <typename C, typename E>
......
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