LRE
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
List overview
Download
Olena-patches
January 2013
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
olena-patches@lrde.epita.fr
7 participants
66 discussions
Start a n
N
ew thread
olena-2.0-37-g818dc37 fix image copy
by Coddy Levi
--- milena/mln/inpainting/fast_isotropic_diffusion.hh | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/milena/mln/inpainting/fast_isotropic_diffusion.hh b/milena/mln/inpainting/fast_isotropic_diffusion.hh index 44a8989..fad9fac 100644 --- a/milena/mln/inpainting/fast_isotropic_diffusion.hh +++ b/milena/mln/inpainting/fast_isotropic_diffusion.hh @@ -1,3 +1,6 @@ +#ifndef FAST_ISOTROPIC_DIFFUSION_HH_ +# define FAST_ISOTROPIC_DIFFUSION_HH_ + #include <mln/core/macros.hh> #include <mln/core/concept/image.hh> #include <mln/core/alias/point2d.hh> @@ -9,7 +12,7 @@ #include <algorithm> #include <limits> -#define CONVERGENCE_THRESHOLD 0.05 +#define CONVERGENCE_THRESHOLD 0.00005 namespace mln { @@ -29,7 +32,8 @@ namespace mln void fast_isotropic_diffusion::operator()(I<T>& src, const I<bool>& mask) { - I<T> src_next(src); + I<T> src_next; + src_next = duplicate(src); I<T>* u_ = &src; I<T>* u_next_ = &src_next; @@ -50,7 +54,7 @@ namespace mln mln_pixter(const I<bool>) p_m(mask); mln_nixter(const I<T>, const neighb2d) n(p, c8()); - for_all_3(p, p_next, p_m) + for_all_3 (p, p_next, p_m) { if (p_m.val()) { @@ -74,10 +78,14 @@ namespace mln } std::swap(u_, u_next_); - } + + std::cout << iterations << "\t"; + } } /* mln::inpainting */ } /* mln */ + +#endif -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-36-gdd1d663 Add: new mean gradient error metric. Some metric refactoring.
by Coddy Levi
--- .../mln/inpainting/metric/mean_gradient_error.hh | 75 ++++++++++++++++++++ milena/mln/inpainting/metric/mean_l1_error.hh | 57 +++++++++++++++ milena/mln/inpainting/metric/{psnr.hh => mse.hh} | 23 ++---- milena/mln/inpainting/metric/psnr.hh | 29 +------- 4 files changed, 144 insertions(+), 40 deletions(-) create mode 100644 milena/mln/inpainting/metric/mean_gradient_error.hh create mode 100644 milena/mln/inpainting/metric/mean_l1_error.hh copy milena/mln/inpainting/metric/{psnr.hh => mse.hh} (60%) diff --git a/milena/mln/inpainting/metric/mean_gradient_error.hh b/milena/mln/inpainting/metric/mean_gradient_error.hh new file mode 100644 index 0000000..05e1b2c --- /dev/null +++ b/milena/mln/inpainting/metric/mean_gradient_error.hh @@ -0,0 +1,75 @@ +#ifndef MEAN_GRADIENT_ERROR_HH_ +# define MEAN_GRADIENT_ERROR_HH_ + +# include <mln/core/concept/image.hh> +# include <mln/norm/l1.hh> +# include <mln/trait/value_.hh> +# include <mln/algebra/vec.hh> +# include <mln/linear/gaussian.hh> + +#include <mln/core/image/dmorph/image_if.hh> +#include <mln/pw/value.hh> + +# include <mln/data/compute.hh> +# include <mln/data/transform.hh> +# include <mln/fun/vv2v/diff_abs.hh> +# include <mln/accu/math/sum.hh> + +# include <mln/inpainting/tv.hh> + +namespace mln +{ + namespace inpainting + { + namespace metric + { + template <typename I, typename M> + float mean_gradient_error(const Image<I>& original_, + const Image<I>& altered_, + const Image<M>& mask_) + { + I original_dx; + I original_dy; + I altered_dx; + I altered_dy; + + initialize(original_dx, exact(original_)); + initialize(original_dy, exact(original_)); + initialize(altered_dx, exact(original_)); + initialize(altered_dy, exact(original_)); + + internal::convolve(exact(original_), original_dx, make_dx_kernel<float>()); + internal::convolve(exact(altered_), altered_dx, make_dx_kernel<float>()); + internal::convolve(exact(original_), original_dy, make_dy_kernel<float>()); + internal::convolve(exact(altered_), altered_dy, make_dy_kernel<float>()); + + unsigned card = 0; + + mln_piter(I) p( original_dx.domain() ); + + float error = 0; + + const M& mask = exact(mask_); + + for_all(p) + { + if (mask(p)) + { + const mln_value(I) diff = original_dx(p) + original_dy(p) + - (altered_dx(p) + altered_dy(p)); + + for (unsigned i = 0; i < mln_dim(mln_value(I)); ++i) + error += std::abs(diff[i]); + + ++card; + } + } + + return error / (card * mln_dim(mln_value(I))); + } + } + } +} + + +#endif diff --git a/milena/mln/inpainting/metric/mean_l1_error.hh b/milena/mln/inpainting/metric/mean_l1_error.hh new file mode 100644 index 0000000..f5caa90 --- /dev/null +++ b/milena/mln/inpainting/metric/mean_l1_error.hh @@ -0,0 +1,57 @@ +#ifndef MEAN_L1_ERROR_HH_ +# define MEAN_L1_ERROR_HH_ + +# include <mln/core/concept/image.hh> +# include <mln/norm/l1.hh> +# include <mln/trait/value_.hh> +# include <mln/algebra/vec.hh> + +# include <mln/data/compute.hh> +# include <mln/accu/math/sum.hh> + +#include <mln/core/image/dmorph/image_if.hh> +#include <mln/pw/value.hh> + +namespace mln +{ + namespace inpainting + { + namespace metric + { + template <typename I, typename M> + float mean_l1_error(const Image<I>& original_, + const Image<I>& altered_, + const Image<M>& mask_) + { + const I& original = exact(original_); + const I& altered = exact(altered_); + const M& mask = exact(mask_); + + mln_piter(I) p( original.domain() ); + + unsigned card = 0; + + float error = 0; + + for_all(p) + { + if (mask(p)) + { + const mln_value(I) diff = original(p) - altered(p); + + for (unsigned i = 0; i < mln_dim(mln_value(I)); ++i) + { + error += std::abs(diff[i]); + } + + ++card; + } + } + + return error / (card * mln_dim(mln_value(I))); + } + } + } +} + +#endif diff --git a/milena/mln/inpainting/metric/psnr.hh b/milena/mln/inpainting/metric/mse.hh similarity index 60% copy from milena/mln/inpainting/metric/psnr.hh copy to milena/mln/inpainting/metric/mse.hh index 5dd8fdd..0c09252 100644 --- a/milena/mln/inpainting/metric/psnr.hh +++ b/milena/mln/inpainting/metric/mse.hh @@ -1,7 +1,5 @@ -#ifndef MLN_INPAINTING_METRIC_PSNR_HH -# define MLN_INPAINTING_METRIC_PSNR_HH - -# include <cmath> +#ifndef MSE_HH_ +# define MSE_HH_ # include <mln/core/concept/image.hh> # include <mln/norm/l1.hh> @@ -15,7 +13,7 @@ namespace mln namespace metric { template <typename I, typename I2> - double psnr(const Image<I>& original_, + double mse(const Image<I>& original_, const Image<I2>& altered_) { const I& original = exact(original_); @@ -32,21 +30,16 @@ namespace mln for_all(p) { const mln_sum(mln_value(I)) diff = original(p) - altered(p); - - if (dim == 1) - mse += diff * diff; - else - for (unsigned i = 0; i < dim; ++i) - mse += diff[i] * diff[i]; + + for (unsigned i = 0; i < dim; ++i) + mse += diff[i] * diff[i]; ++nelements; } - mse /= ( nelements * dim); - - const unsigned max = pow(2, mln_nbits(mln_value(I)) / dim) - 1; + mse /= (nelements * dim); - return 20 * log10( max ) - 10 * log10(mse); + return mse; } } } diff --git a/milena/mln/inpainting/metric/psnr.hh b/milena/mln/inpainting/metric/psnr.hh index 5dd8fdd..3a97fb0 100644 --- a/milena/mln/inpainting/metric/psnr.hh +++ b/milena/mln/inpainting/metric/psnr.hh @@ -4,9 +4,10 @@ # include <cmath> # include <mln/core/concept/image.hh> -# include <mln/norm/l1.hh> + +# include <mln/inpainting/metric/mse.hh> + # include <mln/trait/value_.hh> -# include <mln/algebra/vec.hh> namespace mln { @@ -18,32 +19,10 @@ namespace mln double psnr(const Image<I>& original_, const Image<I2>& altered_) { - const I& original = exact(original_); - const I2& altered = exact(altered_); - - mln_piter(I) p( altered.domain() ); - - double mse = 0; + double mse = metric::mse(original_, altered_); const unsigned dim = mln_dim(mln_value(I)); - - unsigned nelements = 0; - - for_all(p) - { - const mln_sum(mln_value(I)) diff = original(p) - altered(p); - - if (dim == 1) - mse += diff * diff; - else - for (unsigned i = 0; i < dim; ++i) - mse += diff[i] * diff[i]; - - ++nelements; - } - mse /= ( nelements * dim); - const unsigned max = pow(2, mln_nbits(mln_value(I)) / dim) - 1; return 20 * log10( max ) - 10 * log10(mse); -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-108-gbffe887 Fix .gitignore
by Guillaume Lazzara
--- milena/doc/.gitignore | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/milena/doc/.gitignore b/milena/doc/.gitignore index 3c88ad7..6010cc6 100644 --- a/milena/doc/.gitignore +++ b/milena/doc/.gitignore @@ -8,14 +8,14 @@ /figures/*.png -/ref-guide.hh +/ref-guide.dox /ref-guide.pdf /ref-guide/ /technical.pdf /technical/ -/tutorial.hh +/tutorial.dox /tutorial.pdf /tutorial/ -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-107-g3a71702 [WIP] Improve documentation
by Guillaume Lazzara
--- doc/Doxyfile.in | 14 +- doc/DoxygenLayout.xml | 1 - doc/bibliography.dox | 8 +- doc/doc.css | 27 + doc/doxygen.css | 644 +++++++++++++++----- doc/footer.html | 2 +- doc/header.html | 19 +- doc/subdoc_footer.html | 16 +- milena/doc/Doxyfile.in | 130 +++-- milena/doc/DoxygenLayout.xml | 7 +- milena/doc/Makefile.am | 16 +- milena/doc/demo.dox | 5 + milena/doc/examples.dox | 7 + milena/doc/footer.html | 27 + milena/doc/white-paper.tex | 2 +- milena/mln/canvas/browsing/backdiagonal2d.hh | 35 +- milena/mln/canvas/browsing/diagonal2d.hh | 35 +- .../canvas/browsing/dir_struct_elt_incr_update.hh | 34 +- milena/mln/canvas/browsing/directional.hh | 48 +- milena/mln/canvas/browsing/fwd.hh | 20 +- milena/mln/canvas/browsing/snake_fwd.hh | 26 +- milena/mln/canvas/browsing/snake_generic.hh | 36 +- scribo/doc/Doxyfile.in | 14 +- 23 files changed, 800 insertions(+), 373 deletions(-) create mode 100644 doc/doc.css create mode 100644 milena/doc/demo.dox create mode 100644 milena/doc/examples.dox create mode 100644 milena/doc/footer.html diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index e922c9a..9e10f56 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -1,4 +1,5 @@ -# Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE) +# Copyright (C) 2011, 2012 EPITA Research and Development Laboratory +# (LRDE) # # This file is part of Olena. # @@ -34,7 +35,7 @@ INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = NO STRIP_FROM_PATH = @top_srcdir@ STRIP_FROM_INC_PATH = -SHORT_NAMES = YES +SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES @@ -74,7 +75,6 @@ GENERATE_DEPRECATEDLIST= NO ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = NO # Disabled for light doc -SHOW_DIRECTORIES = NO # Disabled for light doc SHOW_FILES = NO # Disabled for light doc SHOW_NAMESPACES = YES FILE_VERSION_FILTER = @@ -112,7 +112,8 @@ INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO INPUT_ENCODING = ISO-8859-1 -CITE_BIB_FILES = @abs_top_srcdir@/doc/olena.bib +CITE_BIB_FILES = @abs_top_srcdir@/doc/doc.bib \ + @abs_top_srcdir@/doc/olena.bib #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- @@ -139,8 +140,8 @@ HTML_FILE_EXTENSION = .html HTML_HEADER = @top_srcdir@/doc/header.html HTML_FOOTER = @top_srcdir@/doc/footer.html HTML_STYLESHEET = @top_srcdir@/doc/doxygen.css +HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/doc.css LAYOUT_FILE = @top_srcdir@/doc/DoxygenLayout.xml -HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = @@ -353,7 +354,8 @@ DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- -SEARCHENGINE = NO +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO # Local Variables: diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml index 0dbf0d7..5feeee9 100644 --- a/doc/DoxygenLayout.xml +++ b/doc/DoxygenLayout.xml @@ -18,7 +18,6 @@ <tab type="files" visible="no" title=""/> <tab type="globals" visible="no" title=""/> </tab> - <tab type="dirs" visible="no" title=""/> <tab type="examples" visible="no" title=""/> </navindex> diff --git a/doc/bibliography.dox b/doc/bibliography.dox index 59518cb..49067f6 100644 --- a/doc/bibliography.dox +++ b/doc/bibliography.dox @@ -9,9 +9,9 @@ \li \ref olnpublisposters \li \ref olnpublistechreps - \li \ref{burrus.03.mpool} - \li \ref{darbon.02.ismm} - \li \ref{darbon.04.ecoopphd} + \li \cite burrus.03.mpool + \li \cite darbon.02.ismm + \li \cite darbon.04.ecoopphd \li \cite duret.00.gcse \li \cite geraud.00.icpr \li \cite geraud.01.ai @@ -34,4 +34,6 @@ \subsection olnpublistechreps Student Technical Reports + \cite sauvola00pr + \cite besl.1992.pami */ diff --git a/doc/doc.css b/doc/doc.css new file mode 100644 index 0000000..72a4b19 --- /dev/null +++ b/doc/doc.css @@ -0,0 +1,27 @@ +table.itable th +{ + font-size: 17px; + +} + +table.itable li +{ + font-size: 16px; +} + +table.itable td +{ + font-size: 17px; + vertical-align: top; +} + +address.div +{ + font-size: 10px; +} + +table.itable +{ + width:850px; + table-layout:fixed; +} diff --git a/doc/doxygen.css b/doc/doxygen.css index 83f13a4..dc14a84 100644 --- a/doc/doxygen.css +++ b/doc/doxygen.css @@ -1,13 +1,12 @@ -/* The standard CSS for doxygen */ +/* The standard CSS for doxygen 1.8.2-20120930 */ body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 12px; + font: 400 14px/19px Roboto,sans-serif; } /* @group Heading Levels */ -h1 { +h1.groupheader { font-size: 150%; } @@ -17,14 +16,34 @@ h1 { margin: 10px 2px; } -h2 { - font-size: 120%; +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; } -h3 { +h3.groupheader { font-size: 100%; } +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + dt { font-weight: bold; } @@ -72,8 +91,6 @@ div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; - margin: 2px; - padding: 2px; } div.qindex, div.navpath { @@ -123,12 +140,12 @@ a.el { a.elRef { } -a.code { - color: #4665A2; +a.code, a.code:visited { + color: #4665A2; } -a.codeRef { - color: #4665A2; +a.codeRef, a.codeRef:visited { + color: #4665A2; } /* @end */ @@ -137,20 +154,72 @@ dl.el { margin-left: -1cm; } -.fragment { +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { font-family: monospace, fixed; - font-size: 105%; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; } -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; } div.ah { @@ -183,15 +252,15 @@ div.groupText { } body { - background: white; + background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; - margin-left: 10px; - margin-right: 5px; + margin-left: 12px; + margin-right: 8px; } td.indexkey { @@ -200,6 +269,8 @@ td.indexkey { border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; + white-space: nowrap; + vertical-align: top; } td.indexvalue { @@ -218,7 +289,7 @@ p.formulaDsp { } img.formulaDsp { - + } img.formulaInl { @@ -276,20 +347,27 @@ span.charliteral { color: #008080 } -span.vhdldigit { - color: #ff00ff +span.vhdldigit { + color: #ff00ff } -span.vhdlchar { - color: #000000 +span.vhdlchar { + color: #000000 } -span.vhdlkeyword { - color: #700070 +span.vhdlkeyword { + color: #700070 } -span.vhdllogic { - color: #ff0000 +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; } /* @end */ @@ -345,6 +423,24 @@ table.memberdecls { padding: 0px; } +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { @@ -359,8 +455,11 @@ table.memberdecls { color: #555; } -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; } .memItemLeft, .memTemplItemLeft { @@ -374,6 +473,7 @@ table.memberdecls { .memTemplParams { color: #4665A2; white-space: nowrap; + font-size: 80%; } /* @end */ @@ -406,15 +506,29 @@ table.memberdecls { padding: 0; margin-bottom: 10px; margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; } .memname { - white-space: nowrap; font-weight: bold; margin-left: 6px; } -.memproto { +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; @@ -422,45 +536,55 @@ table.memberdecls { color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 8px; - border-top-left-radius: 8px; + border-top-right-radius: 4px; + border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; } -.memdoc { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 2px 5px; +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; /* opera specific markup */ - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; } .paramkey { @@ -478,125 +602,140 @@ table.memberdecls { .paramname em { font-style: normal; } +.paramname code { + line-height: 14px; +} .params, .retval, .exception, .tparams { - border-spacing: 6px 2px; -} + margin-left: 0px; + padding-left: 0px; +} .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } +table.mlabels { + border-spacing: 0px; +} +td.mlabels-left { + width: 100%; + padding: 0px; +} +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ +span.mlabels { + margin-left: 8px; +} -.ftvtree { - font-family: sans-serif; - margin: 0px; +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; } -/* these are for tree view when used as main index */ -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} +/* @end */ -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ +/* these are for tree view when not used as main index */ -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; } -*/ -.directory > h3 { - margin-top: 0; +.directory table { + border-collapse:collapse; } -.directory p { - margin: 0px; - white-space: nowrap; +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; } -.directory div { - display: none; - margin: 0px; +.directory td.entry { + white-space: nowrap; + padding-right: 6px; } -.directory img { - vertical-align: -30%; +.directory td.entry a { + outline:none; } -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; +.directory td.entry a img { + border: none; } -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); } -.directory-alt > h3 { - margin-top: 0; +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; } -.directory-alt p { - margin: 0px; - white-space: nowrap; +.directory img { + vertical-align: -30%; } -.directory-alt div { - display: none; - margin: 0px; +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; } -.directory-alt img { - vertical-align: -30%; +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; } -/* @end */ - div.dynheader { margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } address { @@ -606,9 +745,8 @@ address { table.doxtable { border-collapse:collapse; - /* new */ - width:80%; - table-layout:fixed; + margin-top: 4px; + margin-bottom: 4px; } table.doxtable td, table.doxtable th { @@ -622,11 +760,68 @@ table.doxtable th { font-size: 110%; padding-bottom: 4px; padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} - /* Changed */ - text-align:center; +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; } +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 2px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + .tabsearch { top: 0px; left: 10px; @@ -642,6 +837,7 @@ table.doxtable th { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; + background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; @@ -669,6 +865,10 @@ table.doxtable th { display:block; text-decoration: none; outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; } .navpath li.navelem a:hover @@ -697,7 +897,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -707,7 +907,6 @@ div.summary a div.ingroups { font-size: 8pt; - padding-left: 5px; width: 50%; text-align: left; } @@ -736,73 +935,96 @@ dl padding: 0 0 0 10px; } -dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section { - border-left:4px solid; - padding: 0 0 0 6px; + margin-left: 0px; + padding-left: 0px; } dl.note { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #00D000; } dl.deprecated { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #505050; } dl.todo { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #00C0E0; } dl.test { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #3030E0; } dl.bug { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; border-color: #C08050; } +dl.section dd { + margin-bottom: 6px; +} + + #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } - + #projectlogo img -{ +{ border: 0px none; } - + #projectname { - /* Changed */ - font: 32px Tahoma, Arial,sans-serif; - + font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } - + #projectbrief { - /* Changed */ - font: 13px Tahoma, Arial,sans-serif; - + font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } @@ -842,27 +1064,117 @@ dl.bug font-weight: bold; } +div.zoom +{ + border: 1px solid #90A5CE; +} -/* ===> NEW */ +dl.citelist { + margin-bottom:50px; +} -table.itable th -{ - font-size: 17px; +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} +dl.citelist dd { + margin:2px 0; + padding:5px 0; } -table.itable li -{ - font-size: 16px; +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; } -table.itable td -{ - font-size: 17px; - vertical-align: top; +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; } -address.div +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print { - font-size: 10px; -} \ No newline at end of file + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/doc/footer.html b/doc/footer.html index e09f03e..e3881df 100644 --- a/doc/footer.html +++ b/doc/footer.html @@ -1,6 +1,6 @@ <hr class="footer"/><address class="footer"><small> <div style="position:absolute;text-align:left;">Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)</div> -<div align='right'>Olena 2.0</div> +<div align='right'>$projectname $projectnumber</div> </small></address> </body> </html> diff --git a/doc/header.html b/doc/header.html index 6c5cf96..0d1b1cc 100644 --- a/doc/header.html +++ b/doc/header.html @@ -1,28 +1,36 @@ +<!-- HTML header for doxygen 1.8.2-20120930--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"> <html xmlns="
http://www.w3.org/1999/xhtml
"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> -<title>$title</title> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen $doxygenversion"/> +<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> +<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> <link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/> -<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css" /> +<script type="text/javascript" src="$relpath$jquery.js"></script> +<script type="text/javascript" src="$relpath$dynsections.js"></script> $treeview $search $mathjax +<link href="$relpath$$stylesheet" rel="stylesheet" type="text/css" /> +$extrastylesheet </head> <body> -<div id="top"><!-- do not remove this div! --> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> + <!--BEGIN TITLEAREA--> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <!--BEGIN PROJECT_LOGO--> - <td id="projectlogo"><a href="@relcommondocpath@$relpath$index.html"><img alt="Logo" src="$relpath$$projectlogo"></a></td> + <td id="projectlogo"><a href="@relcommondocpath@$relpath$index.html"><img alt="Logo" src="$relpath$$projectlogo"/></a></td> <!--END PROJECT_LOGO--> <!--BEGIN PROJECT_NAME--> <td style="padding-left: 0.5em;"> <div id="projectname">Olena - <!--BEGIN PROJECT_NUMBER--><!--  <span id="projectnumber">$projectnumber</span> --><!--END PROJECT_NUMBER--> + <!--BEGIN PROJECT_NUMBER--> <span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER--> </div> <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF--> </td> @@ -44,3 +52,4 @@ $mathjax </table> </div> <!--END TITLEAREA--> +<!-- end header part --> diff --git a/doc/subdoc_footer.html b/doc/subdoc_footer.html index 3548c1e..9fd0598 100644 --- a/doc/subdoc_footer.html +++ b/doc/subdoc_footer.html @@ -1,6 +1,18 @@ +<!-- HTML footer for doxygen 1.8.2-20120930--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath + <li class="footer"> +Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)</li> + </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> <hr class="footer"/><address class="footer"><small> -<span style="position:absolute;bottom:0;left:5px;text-align:left;">Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)</span> -<span style="position:absolute;bottom:0;right:5px;text-align:right;">Olena 2.0</span> +Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE) </small></address> +<!--END !GENERATE_TREEVIEW--> </body> </html> diff --git a/milena/doc/Doxyfile.in b/milena/doc/Doxyfile.in index 6ebdcf4..c629d2d 100644 --- a/milena/doc/Doxyfile.in +++ b/milena/doc/Doxyfile.in @@ -1,4 +1,4 @@ -# Doxyfile 1.8.0-20120409 +# Doxyfile 1.8.2-20120930 # This file describes the settings to be used by the documentation system # doxygen (
www.doxygen.org
) for a project. @@ -126,7 +126,9 @@ FULL_PATH_NAMES = NO # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the -# path to strip. +# path to strip. Note that you specify absolute paths here, but also +# relative paths, which will be relative from the directory where doxygen is +# started. STRIP_FROM_PATH = @top_srcdir@/milena @@ -137,13 +139,13 @@ STRIP_FROM_PATH = @top_srcdir@/milena # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = @top_srcdir@/milena # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. -SHORT_NAMES = YES +SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style @@ -229,14 +231,15 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, +# and language is one of the parsers supported by doxygen: IDL, Java, +# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, +# C++. For instance to make doxygen treat .inc files as Fortran files (default +# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note +# that for custom extensions you also need to set FILE_PATTERNS otherwise the +# files are not read by doxygen. EXTENSION_MAPPING = @@ -249,6 +252,13 @@ EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES +# When enabled doxygen tries to link words that correspond to documented classes, +# or namespaces to their corresponding documentation. Such a link can be +# prevented in individual cases by by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. + +AUTOLINK_SUPPORT = YES + # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and @@ -269,10 +279,10 @@ CPP_CLI_SUPPORT = NO SIP_SUPPORT = NO -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES (the +# default) will make doxygen replace the get and set methods by a property in +# the documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. @@ -362,7 +372,8 @@ EXTRACT_ALL = NO EXTRACT_PRIVATE = NO -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation. +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. EXTRACT_PACKAGE = NO @@ -578,7 +589,7 @@ FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file +# output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. @@ -591,9 +602,11 @@ LAYOUT_FILE = @top_srcdir@/milena/doc/DoxygenLayout.xml # requires the bibtex tool to be installed. See also #
http://en.wikipedia.org/wiki/BibTeX
for more info. For LaTeX the style # of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. +# feature you need bibtex and perl available in the search path. Do not use +# file names with spaces, bibtex cannot handle them. -CITE_BIB_FILES = @abs_top_srcdir@/doc/doc.bib +CITE_BIB_FILES = @abs_top_srcdir@/doc/doc.bib \ + @abs_top_srcdir@/doc/olena.bib #--------------------------------------------------------------------------- # configuration options related to warning and progress messages @@ -807,7 +820,7 @@ INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. +# fragments. Normal C, C++ and Fortran comments will always remain visible. STRIP_CODE_COMMENTS = YES @@ -910,12 +923,22 @@ HTML_FOOTER = @top_srcdir@/doc/subdoc_footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# style sheet in the HTML output directory as well, or it will be erased! +# fine-tune the look of the HTML output. If left blank doxygen will +# generate a default style sheet. Note that it is recommended to use +# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this +# tag will in the future become obsolete. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional +# user-defined cascading style sheet that is included after the standard +# style sheets created by doxygen. Using this option one can overrule +# certain style aspects. This is preferred over using HTML_STYLESHEET +# since it does not replace the standard style sheet and is therefor more +# robust against future updates. Doxygen will copy the style sheet file to +# the output directory. -HTML_STYLESHEET = @top_srcdir@/doc/doxygen.css +HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/doc.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -957,20 +980,23 @@ HTML_COLORSTYLE_GAMMA = 80 HTML_TIMESTAMP = YES -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). +# page has loaded. HTML_DYNAMIC_SECTIONS = NO +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of +# entries shown in the various tree structured indices initially; the user +# can expand and collapse entries dynamically later on. Doxygen will expand +# the tree to such a level that at most the specified number of entries are +# visible (unless a fully collapsed tree already exceeds this amount). +# So setting the number of entries 1 will produce a full collapsed tree by +# default. 0 is a special value representing an infinite number of entries +# and will result in a full expanded tree by default. + +HTML_INDEX_NUM_ENTRIES = 100 + # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). @@ -989,24 +1015,24 @@ GENERATE_DOCSET = NO # documentation sets from a single provider (such as a company or product suite) # can be grouped. -DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_FEEDNAME = "Olena Platform Documentation" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. -DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_BUNDLE_ID = org.lrde.olena -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely +# identify the documentation publisher. This should be a reverse domain-name +# style string, e.g. com.mycompany.MyDocSet.documentation. -DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_ID = org.lrde # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. -DOCSET_PUBLISHER_NAME = Publisher +DOCSET_PUBLISHER_NAME = EPITA - LRDE # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the @@ -1050,7 +1076,7 @@ BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. -TOC_EXPAND = NO +TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated @@ -1494,7 +1520,7 @@ MACRO_EXPANSION = YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. -EXPAND_ONLY_PREDEF = YES +EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. @@ -1528,6 +1554,7 @@ PREDEFINED = "for_all(x)=for(x.start(); x.is_valid(); x.next())" \ "for_all_remaining(x)=if (! x.is_valid()) {} else while (x.next(), x.is_valid())" \ "mlc_unqualif(T)=typename mln::metal::unqualif<T>::ret" \ "mlc_equal(T1,T2)=mln::metal::equal<T1,T2>" \ + "mlc_bool(B)=mln::metal::bool_<( B )>" \ "mln_piter(T)=typename T::piter" \ "mln_fwd_piter(T)=typename T::fwd_piter" \ "mln_bkd_piter(T)=typename T::bkd_piter" \ @@ -1629,8 +1656,23 @@ PREDEFINED = "for_all(x)=for(x.start(); x.is_valid(); x.next())" \ "mlc_is_a(T, M)=mln::metal::is_a<T, M>" \ "mlc_is_a__1comma(Tleft, Tright, M)=mln::metal::is_a<Tleft, Tright, M>" \ "mlc_is_not_a(T, M)=mln::metal::is_not_a< T, M >" \ + "mlc_is_not(T, U)=mln::metal::is_not< T, U >" \ "mlc_converts_to(T, U)=mln::metal::converts_to< T, U >" \ "mlc_not_equal(T1, T2)=mln::metal::not_equal< T1, T2 >" \ + "mlc_is(T, U)=mln::metal::is< T, U >" \ + "mlc_and(B1, B2)=mln::metal::and_< B1, B2 >" \ + "mln_trait_window_size(W)=typename mln::trait::window_< W >::size" \ + "mln_trait_window_support(W)=typename mln::trait::window_< W >::support" \ + "mln_trait_window_definition(W)=typename mln::trait::window_< W >::definition" \ + "mln_is_simple_window(W)=mln::metal::and_< mlc_is(mln_trait_window_size(W), \ + mln::trait::window::size::fixed), \ + mln::metal::and_< mlc_is(mln_trait_window_support(W), \ + mln::trait::window::support::regular), \ + mlc_is(mln_trait_window_definition(W), \ + mln::trait::window::definition::unique) > >" \ + "mln_is_fastest_IW(I, W)=mlc_and(mlc_is(mln_trait_image_speed(I), \ + trait::image::speed::fastest), \ + mln_is_simple_window(W))" \ "BOOST_PP_LOCAL_ITERATE()=<boost/preprocessor/iteration/detail/local.hpp>" # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then diff --git a/milena/doc/DoxygenLayout.xml b/milena/doc/DoxygenLayout.xml index 05f050a..1aeee52 100644 --- a/milena/doc/DoxygenLayout.xml +++ b/milena/doc/DoxygenLayout.xml @@ -1,12 +1,9 @@ <doxygenlayout version="1.0"> + <!-- Generated by doxygen 1.8.2-20120930 --> <!-- Navigation index tabs for HTML output --> <navindex> <tab type="mainpage" visible="yes" title="Milena"/> - <tab type="pages" visible="no" title="" intro=""/> - <tab type="usergroup" url="@ref mainpage" title="Getting started"> - <tab type="user" url="@ref quickref" title="Quick Reference Guide"/> - <tab type="user" url="@ref tutorial" title="Tutorial"/> - </tab> + <tab type="pages" visible="yes" title="Getting started" intro=""/> <tab type="modules" visible="yes" title="API Reference Manual" intro=""/> <tab type="namespaces" visible="no" title=""> <tab type="namespacelist" visible="no" title="" intro=""/> diff --git a/milena/doc/Makefile.am b/milena/doc/Makefile.am index 4c83006..55ce81e 100644 --- a/milena/doc/Makefile.am +++ b/milena/doc/Makefile.am @@ -185,8 +185,8 @@ regen-split-examples-mk: REFMAN_deps = \ $(PNG_FIGURES) \ - $(srcdir)/tutorial.hh \ - $(srcdir)/ref-guide.hh + $(srcdir)/tutorial.dox \ + $(srcdir)/ref-guide.dox # ----------------------- # # User Reference Manual. # @@ -441,11 +441,7 @@ $(srcdir)/$(TUTORIAL): $(srcdir)/$(TUTORIAL).stamp DATA_html_dirs += $(TUTORIAL) # Intermediate product for the (Doxygen) User Reference Manual. -# -# This is not a bug: TUTORIAL_HH is meant to have a `.hh' extension, -# since it is later parsed by Doxygen, which complains about `.html' -# files. -TUTORIAL_HH = $(srcdir)/tutorial.hh +TUTORIAL_HH = $(srcdir)/tutorial.dox $(TUTORIAL_HH): $(srcdir)/$(TUTORIAL).stamp $(srcdir)/tools/todoxygen.sh # The script `todoxygen.sh' may fail and still create a (partial and # invalid) file, thus preventing Make from trying to generate it @@ -558,11 +554,7 @@ $(srcdir)/$(REF_GUIDE): $(srcdir)/$(REF_GUIDE).stamp DATA_html_dirs += $(REF_GUIDE) # Intermediate product for the (Doxygen) User Reference Manual. -# -# This is not a bug: REF_GUIDE_HH is meant to have a `.hh' extension, -# since it is later parsed by Doxygen, which complains about `.html' -# files. -REF_GUIDE_HH = $(srcdir)/ref-guide.hh +REF_GUIDE_HH = $(srcdir)/ref-guide.dox $(REF_GUIDE_HH): $(srcdir)/$(REF_GUIDE).stamp $(srcdir)/tools/todoxygen.sh # The script `todoxygen.sh' may fail and still create a (partial and # invalid) file, thus preventing Make from trying to generate it diff --git a/milena/doc/demo.dox b/milena/doc/demo.dox new file mode 100644 index 0000000..5573b8a --- /dev/null +++ b/milena/doc/demo.dox @@ -0,0 +1,5 @@ +/** \page demos Demos + + List of Online demos. + +*/ \ No newline at end of file diff --git a/milena/doc/examples.dox b/milena/doc/examples.dox new file mode 100644 index 0000000..1b6d607 --- /dev/null +++ b/milena/doc/examples.dox @@ -0,0 +1,7 @@ +/** \page examples Examples + + List of working program examples. + + List programs related to articles. + +*/ \ No newline at end of file diff --git a/milena/doc/footer.html b/milena/doc/footer.html new file mode 100644 index 0000000..53f7303 --- /dev/null +++ b/milena/doc/footer.html @@ -0,0 +1,27 @@ +<!-- HTML footer for doxygen 1.8.2-20120930--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath + <li class="footer"> + Copyright (c) 2012 EPITA Research and Development Laboratory (LRDE) + </li> + </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> +<hr class="footer"/><address class="footer"><small> + Copyright (c) 2012 EPITA Research and Development Laboratory (LRDE) +</small></address> +<!--END !GENERATE_TREEVIEW--> +</body> +</html> + + +<hr class="footer"/><address class="footer"><small> +<span style="position:absolute;bottom:0;left:5px;text-align:left;">Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)</span> +<span style="position:absolute;bottom:0;right:5px;text-align:right;">Olena 2.0</span> +</small></address> +</body> +</html> diff --git a/milena/doc/white-paper.tex b/milena/doc/white-paper.tex index 0120ad6..a4e9157 100644 --- a/milena/doc/white-paper.tex +++ b/milena/doc/white-paper.tex @@ -171,7 +171,7 @@ Olena's \textbf{official website}: \url{http://olena.lrde.epita.fr} Olena's \textbf{Trac}: \url{http://trac.lrde.org/olena} Milena's \textbf{documentation}: -\url{http://www.lrde.epita.fr/dload/doc/milena/user-refman-html} +\url{http://www.lrde.epita.fr/dload/olena/latest/doc/milena/user-refman-html} % \medskip diff --git a/milena/mln/canvas/browsing/backdiagonal2d.hh b/milena/mln/canvas/browsing/backdiagonal2d.hh index 2648f97..57f5a35 100644 --- a/milena/mln/canvas/browsing/backdiagonal2d.hh +++ b/milena/mln/canvas/browsing/backdiagonal2d.hh @@ -58,26 +58,27 @@ namespace mln * - final(): Will be called at the end. * * F shall features : \n - * { \n - * --- as types: \n - * I; \n - * --- as attributes: \n - * dim; \n - * dir; // and test dir < dim \n - * input; \n - * p; \n - * --- as methods: \n - * void init(); \n - * void next(); \n - * void final(); \n - * } \n + - As types: + + I; + - As attributes: + + dim; + + dir; // and test dir < dim + + input; + + p; + - As methods: + + void init(); + + void next(); + + void final(); + \endverbatim * * Example : \n * - * -------> - * | 4 7 9 - * | 2 5 8 - * | 1 3 6 + \verbatim + -------> + | 4 7 9 + | 2 5 8 + | 1 3 6 + \endverbatim * * \ingroup modcanvasbrowsing */ diff --git a/milena/mln/canvas/browsing/diagonal2d.hh b/milena/mln/canvas/browsing/diagonal2d.hh index 6f7501f..22108cf 100644 --- a/milena/mln/canvas/browsing/diagonal2d.hh +++ b/milena/mln/canvas/browsing/diagonal2d.hh @@ -57,27 +57,26 @@ namespace mln * - final(): Will be called at the end. * * F shall features : \n - * { \n - * --- as types: \n - * I; \n - * --- as attributes: \n - * dim; \n - * dir; // and test dir < dim \n - * input; \n - * p; \n - * --- as methods: \n - * void init(); \n - * void next(); \n - * void final(); \n - * } \n + - As types: + + I; + - As attributes: + + dim; + + dir; // and test dir < dim + + input; + + p; + - As methods: + + void init(); + + void next(); + + void final(); * * Example : \n * - * | 1 3 6 - * | 2 5 8 - * | 4 7 9 - * L------> - * + \verbatim + -------> + | 1 3 6 + | 2 5 8 + | 4 7 9 + \endverbatim * * \ingroup modcanvasbrowsing */ diff --git a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh index 2bc2fc9..719fe15 100644 --- a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh +++ b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh @@ -64,24 +64,22 @@ namespace mln * provided by the functor). * - final() : Will be called at the end. * - * F shall features : \n - * { \n - * --- as types: \n - * I; \n - * --- as attributes: \n - * dim; \n - * dir; // and test dir < dim \n - * input; \n - * p; \n - * length; \n - * --- as methods: \n - * void init(); \n - * void init_line(); \n - * void add_point(q) \n - * void remove_point(q) \n - * void next(); \n - * void final(); \n - * } \n + * F shall features : \n + - As types: + + I + - As attributes: + + dim + + dir // and test dir < dim + + input + + p + + length + - As methods: + + void init() + + void init_line() + + void add_point(q) + + void remove_point(q) + + void next() + + void final() * * * \ingroup modcanvasbrowsing diff --git a/milena/mln/canvas/browsing/directional.hh b/milena/mln/canvas/browsing/directional.hh index 8caad7c..f6a9dcd 100644 --- a/milena/mln/canvas/browsing/directional.hh +++ b/milena/mln/canvas/browsing/directional.hh @@ -57,33 +57,33 @@ namespace mln * - final(): Will be called at the end. * * F shall features : \n - * { \n - * --- as types: \n - * I; \n - * --- as attributes: \n - * dim; \n - * dir; // and test dir < dim \n - * input; \n - * p; \n - * --- as methods: \n - * void init(); \n - * void next(); \n - * void final(); \n - * } \n + - As types: + + I + - As attributes: + + dim + + dir // and test dir < dim + + input + + p + - As methods: + + void init() + + void next() + + void final() * * Example : \n * - * 1 0 0 - * 2 0 0 - * 3 0 0 - * - * 4 0 0 - * 5 0 0 - * 6 0 0 - * - * 7 0 0 - * 8 0 0 - * 9 0 0 + \verbatim + 1 0 0 + 2 0 0 + 3 0 0 + + 4 0 0 + 5 0 0 + 6 0 0 + + 7 0 0 + 8 0 0 + 9 0 0 + \endverbatim * * * \ingroup modcanvasbrowsing diff --git a/milena/mln/canvas/browsing/fwd.hh b/milena/mln/canvas/browsing/fwd.hh index 9c2800b..7309968 100644 --- a/milena/mln/canvas/browsing/fwd.hh +++ b/milena/mln/canvas/browsing/fwd.hh @@ -57,17 +57,15 @@ namespace mln * - final(): Will be called at the end. * * F shall feature: \n - * { \n - * --- as typedef: \n - * I; \n - * --as attributes: \n - * input; \n - * p; \n - * --- as method: \n - * void init(); \n - * void next(); \n - * void final(); \n - * } \n + - As typedef: + + I + - As attributes: + + input + + p + - As method: + + void init() + + void next() + + void final() * * \ingroup modcanvasbrowsing */ diff --git a/milena/mln/canvas/browsing/snake_fwd.hh b/milena/mln/canvas/browsing/snake_fwd.hh index d40ad95..16c187b 100644 --- a/milena/mln/canvas/browsing/snake_fwd.hh +++ b/milena/mln/canvas/browsing/snake_fwd.hh @@ -49,9 +49,11 @@ namespace mln * This canvas browse all the point of an image 'input' like * this : * - * -------> - * <------' - * '------> + \verbatim + -------> + <------' + '------> + \endverbatim * * The fonctor should provide (In addition to 'input') four * methods : @@ -68,16 +70,14 @@ namespace mln * Warning: This canvas works only on 2D. * * F shall feature: \n - * { \n - * --- as attributes: \n - * input; \n - * p; \n - * --- as methods: \n - * void init(); \n - * void down(); \n - * void fwd(); \n - * void bkd(); \n - * } \n + - As attributes: + + input + + p + - As methods: + + void init() + + void down() + + void fwd() + + void bkd() * * * \ingroup modcanvasbrowsing diff --git a/milena/mln/canvas/browsing/snake_generic.hh b/milena/mln/canvas/browsing/snake_generic.hh index 7360dbe..980fec0 100644 --- a/milena/mln/canvas/browsing/snake_generic.hh +++ b/milena/mln/canvas/browsing/snake_generic.hh @@ -47,29 +47,27 @@ namespace mln /*! \brief Multidimentional Browsing in a given-way. * * F shall feature: \n - * { \n - * --- as attributes: \n - * input; \n - * p; \n - * --- as methods: \n - * void init(); \n - * void *() moves[]; \n - * dpsite dps[]; \n - * } \n + - As attributes: + + input + + p + - As methods: + + void init() + + void *() moves[] + + dpsite dps[] * - * init is called before browsing + * init() is called before browsing * * The snake follow dimension using the delta point site of dps. - * dps[0] = delta psite following the global dimension (forward) - * dps[1] = delta psite following the 2nd dimension to follow (forward). - * dps[2] = delta psite following the 2nd dimension to follow (backward). - * dps[3] = delta psite following the 3nd dimension to follow (forward). - * dps[3] = delta psite following the 3nd dimension to follow (backward). + * - dps[0] = delta psite following the global dimension (forward) + * - dps[1] = delta psite following the 2nd dimension to follow (forward). + * - dps[2] = delta psite following the 2nd dimension to follow (backward). + * - dps[3] = delta psite following the 3nd dimension to follow (forward). + * - dps[3] = delta psite following the 3nd dimension to follow (backward). * - * moves contains pointer to f's members. These merbers will be call in each time - * the snake progress in the correct dimension : - * - * moves[i] is called at each move following the delta psite dps[i] + * moves contains pointer to f's members. These members will be + * called each time the snake progress in the correct dimension: + * moves[i] is called at each move following the delta psite + * dps[i]. * * * \ingroup modcanvasbrowsing diff --git a/scribo/doc/Doxyfile.in b/scribo/doc/Doxyfile.in index dd1bf26..b215839 100644 --- a/scribo/doc/Doxyfile.in +++ b/scribo/doc/Doxyfile.in @@ -1,4 +1,5 @@ -# Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE) +# Copyright (C) 2011, 2012 EPITA Research and Development Laboratory +# (LRDE) # # This file is part of Olena. # @@ -34,7 +35,7 @@ INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = NO STRIP_FROM_PATH = @top_srcdir@/scribo STRIP_FROM_INC_PATH = -SHORT_NAMES = YES +SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES @@ -77,7 +78,6 @@ GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = NO # Disabled for light doc -SHOW_DIRECTORIES = NO # Disabled for light doc SHOW_FILES = NO # Disabled for light doc SHOW_NAMESPACES = YES FILE_VERSION_FILTER = @@ -124,8 +124,8 @@ INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO INPUT_ENCODING = ISO-8859-1 -CITE_BIB_FILES = @abs_top_srcdir@/doc/doc.bib \ - @abs_top_srcdir@/doc/olena.bib +CITE_BIB_FILES = @abs_top_srcdir@/doc/doc.bib \ + @abs_top_srcdir@/doc/olena.bib LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -152,9 +152,9 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = @top_srcdir@/doc/header.html HTML_FOOTER = @top_srcdir@/doc/subdoc_footer.html -HTML_STYLESHEET = @top_srcdir@/doc/doxygen.css +HTML_STYLESHEET = +HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/doc.css LAYOUT_FILE = @top_srcdir@/scribo/doc/DoxygenLayout.xml -HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-183-g734f184 Remove kn::internal::display.
by Guillaume Lazzara
* mln/world/kn/compute_tree_of_shapes.hh: Use kn::debug::println for printing debug. * mln/world/kn/internal/display.hh: Remove. --- milena/ChangeLog | 9 + milena/mln/world/kn/compute_tree_of_shapes.hh | 75 ++---- milena/mln/world/kn/internal/display.hh | 320 ------------------------- 3 files changed, 30 insertions(+), 374 deletions(-) delete mode 100644 milena/mln/world/kn/internal/display.hh diff --git a/milena/ChangeLog b/milena/ChangeLog index 4d9dc1a..cafb263 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,14 @@ 2012-11-29 Guillaume Lazzara <z(a)lrde.epita.fr> + Remove kn::internal::display. + + * mln/world/kn/compute_tree_of_shapes.hh: Use kn::debug::println + for printing debug. + + * mln/world/kn/internal/display.hh: Remove. + +2012-11-29 Guillaume Lazzara <z(a)lrde.epita.fr> + * mln/world/kn/compute_tree_of_shapes.hh: Fix tree canonicalization. diff --git a/milena/mln/world/kn/compute_tree_of_shapes.hh b/milena/mln/world/kn/compute_tree_of_shapes.hh index 8fe5073..4a3b226 100644 --- a/milena/mln/world/kn/compute_tree_of_shapes.hh +++ b/milena/mln/world/kn/compute_tree_of_shapes.hh @@ -48,7 +48,7 @@ // FIXME: to be removed or disabled. -# include <mln/world/kn/internal/display.hh> +# include <mln/world/kn/debug/println.hh> namespace mln @@ -114,7 +114,7 @@ namespace mln P find_root(T& zpar, P x); - T union_find(const Array_P& R, display& dsp); + T union_find(const util::tree_of_shapes<I>& t); void priority_push(q_type& q, const P& p, const I& F); P priority_pop(q_type& q); @@ -125,8 +125,7 @@ namespace mln EV level_next_to_lcur(q_type& q); - void sort(const Image<I>& F_, util::tree_of_shapes<I>& t, - display& dsp); + void sort(const Image<I>& F_, util::tree_of_shapes<I>& t); void canonicalize_tree(util::tree_of_shapes<I>& t); @@ -183,10 +182,10 @@ namespace mln template <typename I, typename IV> typename compute_tree_of_shapes_t<I,IV>::T - compute_tree_of_shapes_t<I,IV>::union_find(const Array_P& R, - display& dsp) + compute_tree_of_shapes_t<I,IV>::union_find(const util::tree_of_shapes<I>& t) // with balancing { + const Array_P& R = t.R; T zpar(D), parent(D); U rank(D), last(D); mln_ch_value(I,bool) done(D); @@ -218,12 +217,13 @@ namespace mln } done(p) = true; - if (dsp.level_changes_at(i)) + if (t.level_changes_at(i)) { - std::cout << "union-find: done with level " << dsp.level(p) << std::endl; - //dsp.show(done); + std::cout << "union-find: done with level " << t.level(p) << std::endl; + kn::debug::println(done); } } + return parent; } @@ -358,7 +358,7 @@ namespace mln template <typename I, typename IV> void compute_tree_of_shapes_t<I,IV>::sort(const Image<I>& F_, - util::tree_of_shapes<I>& t, display& dsp) + util::tree_of_shapes<I>& t) { trace::entering("mln::world::kn::sort"); mln_precondition(exact(F_).is_valid()); @@ -403,7 +403,7 @@ namespace mln if (q.is_empty_at(lcur)) { std::cout << "sort: done with level " << lcur << std::endl; - dsp.show(done); + kn::debug::println(done); } } while (i != N); @@ -429,43 +429,6 @@ namespace mln if (Fb(parent(q)) == Fb(q)) parent(p) = parent(q); } - - // mln_ch_value(I,bool) show(D); - // for (unsigned i = 0; i <= N - 1; ++i) - // { - // P p = R[i]; - // show(p) = k2::is_primary_2_face(p) || t.is_representative(p); - // } - - // for (unsigned i = 0; i <= N - 1; ++i) - // { - // P p = R[i]; // p goes from root to leaves - // if (! show(p)) - // continue; - // P q = parent(p); - - // if (show(q) == false) // skip node q - // { - // if (parent(q) == q) // q cannot be root - // std::abort(); - - // P r = parent(q); // new representative - // if (p != r) // if p is a repr node, do nothing - // parent(p) = r; - // } - // else - // if (Fb(q) == Fb(p) && k2::is_primary_2_face(p) && ! k2::is_primary_2_face(q)) - // { - // show(q) = false; - - // if (parent(q) == q) // q is root - // parent(p) = p; // p is the new root - // else - // parent(p) = parent(q); // new parent of the representative - // parent(q) = p; // the new representative is p, stored as q's parent - // } - // } - // t.show = show; } @@ -492,10 +455,9 @@ namespace mln util::tree_of_shapes<I> t; - display_in_K2<util::tree_of_shapes<I> > dsp(t, std::cout); - sort(F, t, dsp); + sort(F, t); - t.parent = union_find(t.R, dsp); + t.parent = union_find(t); canonicalize_tree(t); return t; @@ -521,10 +483,9 @@ namespace mln util::tree_of_shapes<I> t; - display_in_K2<util::tree_of_shapes<I> > dsp(t, std::cout); - sort(F, t, dsp); + sort(F, t); - t.parent = union_find(t.R, dsp); + t.parent = union_find(t); canonicalize_tree(t); return t; @@ -538,14 +499,20 @@ namespace mln // Each face's parent is a representative. for (unsigned i = 0; i <= tree.R.size() - 1; ++i) if (!tree.is_representative(tree.parent(tree.R[i]))) + { + mln_assertion(false); return false; + } // Checking that the parent of a representative face is a parent. mln_piter(I) p(tree.Fb.domain()); for_all(p) if (tree.is_representative(p) && !tree.is_root(p)) if (tree.level(p) == tree.level(tree.parent(p))) + { + mln_assertion(false); return false; + } return true; } diff --git a/milena/mln/world/kn/internal/display.hh b/milena/mln/world/kn/internal/display.hh deleted file mode 100644 index efa0b59..0000000 --- a/milena/mln/world/kn/internal/display.hh +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE) -// -// This file is part of Olena. -// -// Olena is free software: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free -// Software Foundation, version 2 of the License. -// -// Olena 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 Olena. If not, see <
http://www.gnu.org/licenses/
>. -// -// As a special exception, you may use this file as part of a free -// software project 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 -/// -/// \brief Helpers to display tree of shapes. - -#ifndef MLN_WORLD_KN_INTERNAL_DISPLAY_HH -# define MLN_WORLD_KN_INTERNAL_DISPLAY_HH - -# include <sstream> -# include <mln/world/kn/face_dim.hh> -# include <mln/world/k2/is_primary_2_face.hh> -# include <mln/world/kn/is_1_face_horizontal.hh> -# include <mln/world/kn/is_1_face_vertical.hh> - - -namespace mln -{ - - namespace world - { - - namespace kn - { - - namespace internal - { - - - struct display - { - virtual bool is_on() const = 0; - virtual std::string level(const point2d& p) = 0; - virtual bool level_changes_at(unsigned i) const = 0; - virtual void show(const image2d<bool>& input) = 0; - virtual ~display(); - }; - - - struct display_off : public display - { - virtual bool is_on() const; - virtual std::string level(const point2d&); - virtual bool level_changes_at(unsigned) const; - virtual void show(const image2d<bool>&); - }; - - - template <typename Tree> - struct display_on : public display - { - const Tree& t; - std::ostream& ostr; - - display_on(const Tree& t, std::ostream& ostr); - virtual bool is_on() const; - virtual std::string level(const point2d& p); - virtual bool level_changes_at(unsigned i) const; - virtual void print_p(const point2d& p) = 0; - virtual void show(const image2d<bool>& input); - }; - - - - template <typename Tree> - struct display_in_D : public display_on<Tree> - { - typedef display_on<Tree> super; - using super::ostr; - using super::t; - - display_in_D(const Tree& t, std::ostream& ostr = std::cout); - virtual void print_p(const point2d& p); - }; - - - - template <typename Tree> - struct display_in_K1 : public display_on<Tree> - { - typedef display_on<Tree> super; - using super::ostr; - using super::t; - - display_in_K1(const Tree& t, std::ostream& ostr = std::cout); - virtual void print_p(const point2d& p); - }; - - - - template <typename Tree> - struct display_in_K2 : public display_on<Tree> - { - typedef display_on<Tree> super; - using super::ostr; - using super::t; - - display_in_K2(const Tree& t, std::ostream& ostr = std::cout); - virtual void print_p(const point2d& p); - }; - - -# ifndef MLN_INCLUDE_ONLY - - // display - - inline - display::~display() - { - } - - - // display_off - - inline - bool - display_off::is_on() const - { - return false; - } - - inline - std::string - display_off::level(const point2d&) - { - return ""; - } - - inline - bool - display_off::level_changes_at(unsigned) const - { - return false; - } - - inline - void - display_off:: show(const image2d<bool>&) - { - } - - - // display_on - - template <typename Tree> - display_on<Tree>::display_on(const Tree& t, - std::ostream& ostr) - : t(t), ostr(ostr) - { - } - - template <typename Tree> - bool - display_on<Tree>::is_on() const - { - return true; - } - - template <typename Tree> - std::string - display_on<Tree>::level(const point2d& p) - { - std::ostringstream s; - s << t.level(p); - return s.str(); - } - - template <typename Tree> - bool - display_on<Tree>::level_changes_at(unsigned i) const - { - return t.level_changes_at(i); - } - - template <typename Tree> - void - display_on<Tree>::show(const image2d<bool>& input) - { - box2d dom = input.domain(); - const short - min_row = dom.pmin().row(), - max_row = dom.pmax().row(), - min_col = dom.pmin().col(), - max_col = dom.pmax().col(); - - point2d p; - short& row = p.row(); - short& col = p.col(); - - char bdr = '#'; - - for (col = min_col; col <= max_col + 2; ++col) - ostr << bdr << ' '; - ostr << std::endl; - - for (row = min_row; row <= max_row; ++row) - { - ostr << bdr; - for (col = min_col; col <= max_col; ++col) - if (input(p)) - print_p(p); - else - ostr << " "; - ostr << ' ' << bdr << std::endl; - } - - for (col = min_col; col <= max_col + 2; ++col) - ostr << bdr << ' '; - ostr << std::endl - << std::endl; - } - - - // display_in_D - - template <typename Tree> - display_in_D<Tree>::display_in_D(const Tree& t, - std::ostream& ostr) - : super(t, ostr) - { - } - - template <typename Tree> - void - display_in_D<Tree>::print_p(const point2d& p) - { - ostr << " O"; - } - - - // display_in_K1 - - template <typename Tree> - display_in_K1<Tree>::display_in_K1(const Tree& t, - std::ostream& ostr) - : super(t, ostr) - { - } - - template <typename Tree> - void - display_in_K1<Tree>::print_p(const point2d& p) - { - switch (face_dim(p)) - { - case 0: - ostr << " +"; - break; - case 1: - ostr << (kn::is_1_face_horizontal(p) ? " -" : " |"); - break; - case 2: - ostr << " O"; - break; - } - } - - - // display_in_K2 - - template <typename Tree> - display_in_K2<Tree>::display_in_K2(const Tree& t, - std::ostream& ostr) - : super(t, ostr) - { - } - - template <typename Tree> - void - display_in_K2<Tree>::print_p(const point2d& p) - { - switch (face_dim(p)) - { - case 0: - ostr << " +"; - break; - case 1: - ostr << (kn::is_1_face_horizontal(p) ? " -" : " |"); - break; - case 2: - ostr << (k2::is_primary_2_face(p) ? " O" : " x"); - break; - } - } - -# endif // ! MLN_INCLUDE_ONLY - - } // end of namespace mln::world::kn::internal - - } // end of namespace mln::world::kn - - } // end of namespace mln::world - -} // end of namespace mln - - -#endif // ! MLN_WORLD_KN_INTERNAL_DISPLAY_HH -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-182-g4d09ba5 mln/world/kn/compute_tree_of_shapes.hh: Fix tree canonicalization.
by Guillaume Lazzara
--- milena/ChangeLog | 5 + milena/mln/world/kn/compute_tree_of_shapes.hh | 99 +++++++++++++++--------- 2 files changed, 67 insertions(+), 37 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index 3c91081..4d9dc1a 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,3 +1,8 @@ +2012-11-29 Guillaume Lazzara <z(a)lrde.epita.fr> + + * mln/world/kn/compute_tree_of_shapes.hh: Fix tree + canonicalization. + 2012-11-22 Guillaume Lazzara <z(a)lrde.epita.fr> Small fixes. diff --git a/milena/mln/world/kn/compute_tree_of_shapes.hh b/milena/mln/world/kn/compute_tree_of_shapes.hh index 90007ac..8fe5073 100644 --- a/milena/mln/world/kn/compute_tree_of_shapes.hh +++ b/milena/mln/world/kn/compute_tree_of_shapes.hh @@ -221,7 +221,7 @@ namespace mln if (dsp.level_changes_at(i)) { std::cout << "union-find: done with level " << dsp.level(p) << std::endl; - dsp.show(done); + //dsp.show(done); } } return parent; @@ -430,42 +430,42 @@ namespace mln parent(p) = parent(q); } - mln_ch_value(I,bool) show(D); - for (unsigned i = 0; i <= N - 1; ++i) - { - P p = R[i]; - show(p) = k2::is_primary_2_face(p) || t.is_representative(p); - } - - for (unsigned i = 0; i <= N - 1; ++i) - { - P p = R[i]; // p goes from root to leaves - if (! show(p)) - continue; - P q = parent(p); - - if (show(q) == false) // skip node q - { - if (parent(q) == q) // q cannot be root - std::abort(); - - P r = parent(q); // new representative - if (p != r) // if p is a repr node, do nothing - parent(p) = r; - } - else - if (Fb(q) == Fb(p) && k2::is_primary_2_face(p) && ! k2::is_primary_2_face(q)) - { - show(q) = false; - - if (parent(q) == q) // q is root - parent(p) = p; // p is the new root - else - parent(p) = parent(q); // new parent of the representative - parent(q) = p; // the new representative is p, stored as q's parent - } - } - t.show = show; + // mln_ch_value(I,bool) show(D); + // for (unsigned i = 0; i <= N - 1; ++i) + // { + // P p = R[i]; + // show(p) = k2::is_primary_2_face(p) || t.is_representative(p); + // } + + // for (unsigned i = 0; i <= N - 1; ++i) + // { + // P p = R[i]; // p goes from root to leaves + // if (! show(p)) + // continue; + // P q = parent(p); + + // if (show(q) == false) // skip node q + // { + // if (parent(q) == q) // q cannot be root + // std::abort(); + + // P r = parent(q); // new representative + // if (p != r) // if p is a repr node, do nothing + // parent(p) = r; + // } + // else + // if (Fb(q) == Fb(p) && k2::is_primary_2_face(p) && ! k2::is_primary_2_face(q)) + // { + // show(q) = false; + + // if (parent(q) == q) // q is root + // parent(p) = p; // p is the new root + // else + // parent(p) = parent(q); // new parent of the representative + // parent(q) = p; // the new representative is p, stored as q's parent + // } + // } + // t.show = show; } @@ -530,6 +530,27 @@ namespace mln return t; } + + template <typename I> + bool + is_tree_canonicalized(const util::tree_of_shapes<I>& tree) + { + // Each face's parent is a representative. + for (unsigned i = 0; i <= tree.R.size() - 1; ++i) + if (!tree.is_representative(tree.parent(tree.R[i]))) + return false; + + // Checking that the parent of a representative face is a parent. + mln_piter(I) p(tree.Fb.domain()); + for_all(p) + if (tree.is_representative(p) && !tree.is_root(p)) + if (tree.level(p) == tree.level(tree.parent(p))) + return false; + + return true; + } + + } // end of namespace mln::world::kn::internal @@ -548,6 +569,8 @@ namespace mln util::tree_of_shapes<I> t = internal::compute_tree_of_shapes_t<I,IV>()(exact(F), inter, p_infty); + mln_postcondition(internal::is_tree_canonicalized(t)); + trace::exiting("mln::world::kn::compute_tree_of_shapes"); return t; } @@ -566,6 +589,8 @@ namespace mln util::tree_of_shapes<I> t = internal::compute_tree_of_shapes_t<I,IV>()(exact(F), inter, p_infty, l_inf); + mln_postcondition(internal::is_tree_canonicalized(t)); + trace::exiting("mln::world::kn::compute_tree_of_shapes"); return t; } -- 1.7.2.5
11 years, 11 months
1
0
0
0
olena-2.0-181-gd6bf15a Small fixes.
by Guillaume Lazzara
* mln/world/kn/compute_tree_of_shapes.hh: Add a missing include. * mln/world/kn/debug/println.hh: Check value type of the input image. * mln/world/kn/hqueue.hh: Remove from namespace internal. --- milena/ChangeLog | 11 ++ milena/mln/world/kn/compute_tree_of_shapes.hh | 1 + milena/mln/world/kn/debug/println.hh | 2 + milena/mln/world/kn/hqueue.hh | 197 ++++++++++++------------- 4 files changed, 110 insertions(+), 101 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index d9f6a99..3c91081 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,3 +1,14 @@ +2012-11-22 Guillaume Lazzara <z(a)lrde.epita.fr> + + Small fixes. + + * mln/world/kn/compute_tree_of_shapes.hh: Add a missing include. + + * mln/world/kn/debug/println.hh: Check value type of the input + image. + + * mln/world/kn/hqueue.hh: Remove from namespace internal. + 2012-11-12 Guillaume Lazzara <z(a)lrde.epita.fr> Improve initialization of 2-faces in borders. diff --git a/milena/mln/world/kn/compute_tree_of_shapes.hh b/milena/mln/world/kn/compute_tree_of_shapes.hh index 9c686f2..90007ac 100644 --- a/milena/mln/world/kn/compute_tree_of_shapes.hh +++ b/milena/mln/world/kn/compute_tree_of_shapes.hh @@ -44,6 +44,7 @@ # include <mln/world/kn/hqueue.hh> # include <mln/util/tree_of_shapes.hh> # include <mln/world/kn/is_2_face.hh> +# include <mln/world/k2/is_primary_2_face.hh> // FIXME: to be removed or disabled. diff --git a/milena/mln/world/kn/debug/println.hh b/milena/mln/world/kn/debug/println.hh index 6580aa5..ce31c8c 100644 --- a/milena/mln/world/kn/debug/println.hh +++ b/milena/mln/world/kn/debug/println.hh @@ -106,6 +106,8 @@ namespace mln { const I& ima = exact(ima_); const B& bbox = exact(bbox_); + typedef mln_value(I) V; + mlc_is(V,bool)::check(); mln_precondition(ima.is_valid()); mln_precondition(I::site::dim == 2); mln_precondition(bbox.is_valid()); diff --git a/milena/mln/world/kn/hqueue.hh b/milena/mln/world/kn/hqueue.hh index fe29376..dc2b365 100644 --- a/milena/mln/world/kn/hqueue.hh +++ b/milena/mln/world/kn/hqueue.hh @@ -23,8 +23,8 @@ // exception does not however invalidate any other reasons why the // executable file might be covered by the GNU General Public License. -#ifndef MLN_WORLD_KN_INTERNAL_HQUEUE_HH -# define MLN_WORLD_KN_INTERNAL_HQUEUE_HH +#ifndef MLN_WORLD_KN_HQUEUE_HH +# define MLN_WORLD_KN_HQUEUE_HH /// \file /// \brief Class for hierarchical queues. @@ -43,118 +43,113 @@ namespace mln namespace kn { - namespace internal + /// \internal + /// \brief Class for hierarchical queues. + template <typename T, typename P> + class hqueue { + public: + hqueue(); + hqueue(const value::interval<P>& inter); + hqueue(const P& first, const P& last); - /// \internal - /// \brief Class for hierarchical queues. - template <typename T, typename P> - class hqueue - { - public: - hqueue(); - hqueue(const value::interval<P>& inter); - hqueue(const P& first, const P& last); + unsigned nelements() const; - unsigned nelements() const; + bool is_empty() const; + bool is_empty_at(const P& bucket) const; - bool is_empty() const; - bool is_empty_at(const P& bucket) const; + void push(const T& t, const P& bucket); + T pop(const P& bucket); - void push(const T& t, const P& bucket); - T pop(const P& bucket); + // FIXME: add some reserve strategies... - // FIXME: add some reserve strategies... - - private: - std::vector< internal::queue_<T> > v_; - value::interval<P> inter_; - unsigned n_; - }; + private: + std::vector< internal::queue_<T> > v_; + value::interval<P> inter_; + unsigned n_; + }; # ifndef MLN_INCLUDE_ONLY - template <typename T, typename P> - hqueue<T,P>::hqueue() - { - n_ = 0; - } - - template <typename T, typename P> - hqueue<T,P>::hqueue(const value::interval<P>& inter) - { - v_.resize(inter.nelements()); - inter_ = inter; - n_ = 0; - } - - template <typename T, typename P> - hqueue<T,P>::hqueue(const P& first, const P& last) - { - v_.resize(inter_.nelements()); - inter_ = value::interval<P>(first, last); - n_ = 0; - } - - template <typename T, typename P> - unsigned - hqueue<T,P>::nelements() const - { - return n_; - } - - template <typename T, typename P> - bool - hqueue<T,P>::is_empty_at(const P& bucket) const - { - unsigned i = inter_.index_of(bucket); - mln_precondition(i < v_.size()); - return v_[i].is_empty(); - } - - template <typename T, typename P> - bool - hqueue<T,P>::is_empty() const - { - return n_ == 0; - } - - template <typename T, typename P> - void - hqueue<T,P>::push(const T& t, const P& bucket) - { - unsigned i = inter_.index_of(bucket); - mln_precondition(i < v_.size()); - v_[i].push(t); - } - - template <typename T, typename P> - T - hqueue<T,P>::pop(const P& bucket) - { - mln_precondition(! is_empty_at(bucket)); - unsigned i = inter_.index_of(bucket); - mln_precondition(i < v_.size()); - return v_[i].pop(); - } - - // template <typename T, typename P> - // std::ostream& - // operator<<(std::ostream& ostr, const hqueue<T,P>& q) - // { - // unsigned n = q.size(); - // ostr << '('; - // for (unsigned i = 0; i < n; ++i) - // ostr << q.v_[i] << (i + 1 == n ? "" : ", "); - // return ostr << ')'; - // } + template <typename T, typename P> + hqueue<T,P>::hqueue() + { + n_ = 0; + } + template <typename T, typename P> + hqueue<T,P>::hqueue(const value::interval<P>& inter) + { + v_.resize(inter.nelements()); + inter_ = inter; + n_ = 0; + } -# endif // ! MLN_INCLUDE_ONLY + template <typename T, typename P> + hqueue<T,P>::hqueue(const P& first, const P& last) + { + v_.resize(inter_.nelements()); + inter_ = value::interval<P>(first, last); + n_ = 0; + } + + template <typename T, typename P> + unsigned + hqueue<T,P>::nelements() const + { + return n_; + } + + template <typename T, typename P> + bool + hqueue<T,P>::is_empty_at(const P& bucket) const + { + unsigned i = inter_.index_of(bucket); + mln_precondition(i < v_.size()); + return v_[i].is_empty(); + } + + template <typename T, typename P> + bool + hqueue<T,P>::is_empty() const + { + return n_ == 0; + } - } // end of namespace mln::world::kn::internal + template <typename T, typename P> + void + hqueue<T,P>::push(const T& t, const P& bucket) + { + unsigned i = inter_.index_of(bucket); + mln_precondition(i < v_.size()); + v_[i].push(t); + } + + template <typename T, typename P> + T + hqueue<T,P>::pop(const P& bucket) + { + mln_precondition(! is_empty_at(bucket)); + unsigned i = inter_.index_of(bucket); + mln_precondition(i < v_.size()); + return v_[i].pop(); + } + + // template <typename T, typename P> + // std::ostream& + // operator<<(std::ostream& ostr, const hqueue<T,P>& q) + // { + // unsigned n = q.size(); + // ostr << '('; + // for (unsigned i = 0; i < n; ++i) + // ostr << q.v_[i] << (i + 1 == n ? "" : ", "); + // return ostr << ')'; + // } + + +# endif // ! MLN_INCLUDE_ONLY } // end of namespace mln::world::kn @@ -162,4 +157,4 @@ namespace mln } // end of namespace mln -#endif // ! MLN_WORLD_KN_INTERNAL_HQUEUE_HH +#endif // ! MLN_WORLD_KN_HQUEUE_HH -- 1.7.2.5
11 years, 11 months
1
0
0
0
branch exp/newdoc updated: olena-2.0-108-gbffe887
by git@lrde.epita.fr
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Olena, a generic and efficient image processing platform". The branch exp/newdoc has been updated via bffe887ee94cd08a9667bf59a0ce33b7cd9229c5 (commit) via 3a717026f04d96ae19d1d886f1c841968f458698 (commit) from de2cb2343b67f0c639216179374880abdc090ca4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- bffe887 Fix .gitignore 3a71702 [WIP] Improve documentation ----------------------------------------------------------------------- Summary of changes: doc/Doxyfile.in | 14 +- doc/DoxygenLayout.xml | 1 - doc/bibliography.dox | 8 +- doc/doc.css | 27 + doc/doxygen.css | 644 +++++++++++++++----- doc/footer.html | 2 +- doc/header.html | 19 +- doc/subdoc_footer.html | 16 +- milena/doc/.gitignore | 4 +- milena/doc/Doxyfile.in | 130 +++-- milena/doc/DoxygenLayout.xml | 7 +- milena/doc/Makefile.am | 16 +- milena/doc/demo.dox | 5 + milena/doc/examples.dox | 7 + milena/doc/footer.html | 27 + milena/doc/white-paper.tex | 2 +- milena/mln/canvas/browsing/backdiagonal2d.hh | 35 +- milena/mln/canvas/browsing/diagonal2d.hh | 35 +- .../canvas/browsing/dir_struct_elt_incr_update.hh | 34 +- milena/mln/canvas/browsing/directional.hh | 48 +- milena/mln/canvas/browsing/fwd.hh | 20 +- milena/mln/canvas/browsing/snake_fwd.hh | 26 +- milena/mln/canvas/browsing/snake_generic.hh | 36 +- scribo/doc/Doxyfile.in | 14 +- 24 files changed, 802 insertions(+), 375 deletions(-) create mode 100644 doc/doc.css create mode 100644 milena/doc/demo.dox create mode 100644 milena/doc/examples.dox create mode 100644 milena/doc/footer.html hooks/post-receive -- Olena, a generic and efficient image processing platform
11 years, 11 months
1
0
0
0
branch exp/khalimsky updated: olena-2.0-189-gef5c21b
by git@lrde.epita.fr
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Olena, a generic and efficient image processing platform". The branch exp/khalimsky has been updated via ef5c21b243f3ef39ea22323313c1c6625b839366 (commit) via e7ef72283909571efc19d4a215b8b7d8e3376e37 (commit) via 714925b69b78e873880b7e5b67663cb8f97d8446 (commit) via 463e9a6a68d609c5d7bec06fa2dd30aec3cb33ff (commit) via 616b0b6d9dfa0ba0dd6b6d3d3336d135faff9878 (commit) via 4fa59915ef298bcf75ea0c00ec5e43dd684bcd31 (commit) via 734f1842938ec54761188470804349fcb695c538 (commit) via 4d09ba5879b25a753eace0af21d167d94a117a09 (commit) via d6bf15abd18b5c3bc86875557b32a6ae4d75177f (commit) from a8acc5bfb4b222a5c84bc6bbff1fbb014ec4ecd8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ef5c21b mln/util/tree_of_shapes.hh: Extend structure for storing new tree canonicalizationss. e7ef722 Add util::map. 714925b mln/inner_border/remove.hh: New. 463e9a6 Add new v2v functions. 616b0b6 Small fixes. 4fa5991 Make use of data::transform in arith::revert. 734f184 Remove kn::internal::display. 4d09ba5 mln/world/kn/compute_tree_of_shapes.hh: Fix tree canonicalization. d6bf15a Small fixes. ----------------------------------------------------------------------- Summary of changes: milena/ChangeLog | 96 +++ milena/mln/arith/revert.hh | 97 +--- milena/mln/arith/revert.spe.hh | 84 --- milena/mln/border/get.hh | 7 + milena/mln/data/compute.hh | 5 +- milena/mln/debug/println_with_border.hh | 30 +- milena/mln/debug/println_with_border.spe.hh | 44 +- milena/mln/fun/v2v/{abs.hh => ceil.hh} | 36 +- milena/mln/fun/v2v/{abs.hh => floor.hh} | 35 +- milena/mln/fun/{vv2v/span.hh => v2v/revert.hh} | 32 +- milena/mln/inner_border/{extend.hh => remove.hh} | 30 +- milena/mln/util/map.hh | 741 ++++++++++++++++++++ milena/mln/util/tree_of_shapes.hh | 36 +- milena/mln/value/intsub.hh | 4 +- .../k2/fill_non_primary_from_primary_2_faces.hh | 2 - milena/mln/world/k2/immerse.hh | 12 +- .../mln/world/k2/is_non_primary_2_face_center.hh | 5 +- .../world/kn/border/adjust_duplicate_2_faces.hh | 2 +- .../mln/world/kn/border/fill_1_from_aux_2_faces.hh | 17 +- milena/mln/world/kn/compute_tree_of_shapes.hh | 104 ++-- milena/mln/world/kn/debug/println.hh | 2 + milena/mln/world/kn/fill_0_from_1_faces.hh | 4 +- milena/mln/world/kn/hqueue.hh | 197 +++--- milena/mln/world/kn/internal/display.hh | 320 --------- milena/mln/world/kn/is_0_or_1_face.hh | 2 +- milena/mln/world/kn/safe_cast.hh | 19 +- milena/tests/util/Makefile.am | 2 + .../compute_in_inner_border.cc => util/map.cc} | 47 +- milena/tests/value/intsub.cc | 9 + milena/tests/world/k2/un_immerse.cc | 126 +++- 30 files changed, 1364 insertions(+), 783 deletions(-) delete mode 100644 milena/mln/arith/revert.spe.hh copy milena/mln/fun/v2v/{abs.hh => ceil.hh} (76%) copy milena/mln/fun/v2v/{abs.hh => floor.hh} (75%) copy milena/mln/fun/{vv2v/span.hh => v2v/revert.hh} (72%) copy milena/mln/inner_border/{extend.hh => remove.hh} (73%) create mode 100644 milena/mln/util/map.hh delete mode 100644 milena/mln/world/kn/internal/display.hh copy milena/tests/{data/compute_in_inner_border.cc => util/map.cc} (63%) hooks/post-receive -- Olena, a generic and efficient image processing platform
11 years, 11 months
1
0
0
0
olena-2.0-189-gef5c21b mln/util/tree_of_shapes.hh: Extend structure for storing new tree canonicalizationss.
by Guillaume Lazzara
--- milena/ChangeLog | 5 +++++ milena/mln/util/tree_of_shapes.hh | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index a6df4ca..b2a096f 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,10 @@ 2013-01-04 Guillaume Lazzara <z(a)lrde.epita.fr> + * mln/util/tree_of_shapes.hh: Extend structure for storing new + tree canonicalizationss. + +2013-01-04 Guillaume Lazzara <z(a)lrde.epita.fr> + Add util::map. * mln/util/map.hh, diff --git a/milena/mln/util/tree_of_shapes.hh b/milena/mln/util/tree_of_shapes.hh index c3b00e5..9bf978f 100644 --- a/milena/mln/util/tree_of_shapes.hh +++ b/milena/mln/util/tree_of_shapes.hh @@ -37,6 +37,8 @@ namespace mln namespace util { + enum Tags { None, Spurious, Noise }; + template <typename I> struct tree_of_shapes { @@ -45,15 +47,31 @@ namespace mln typedef mln_equiv(V) EV; I Fb; + + // Default canonicalization. std::vector<P> R; mln_ch_value(I,P) parent; - mln_ch_value(I,bool) show; + + // 0-canonicalization. + std::vector<P> R0; + mln_ch_value(I,P) parent0; + // Attributes/tags for 0-representants. + std::vector<Tags> tag; + + // 01-canonicalization. + std::vector<P> R01; + mln_ch_value(I,P) parent01; + V level(const P& p) const; bool level_changes_at(unsigned i) const; bool is_root(const P& p) const; bool is_representative(const P& p) const; + bool is_0_representative(const P& p) const; + + bool is_01_representative(const P& p) const; + }; @@ -91,6 +109,22 @@ namespace mln return is_root(p) || Fb(parent(p)) != Fb(p); } + template <typename I> + bool + tree_of_shapes<I>::is_0_representative(const P& p) const + { + return is_representative(p) && (Fb(p) == V(0)); + } + + template <typename I> + bool + tree_of_shapes<I>::is_01_representative(const P& p) const + { + return is_root(p) + || (Fb(p) == V(0) && Fb(parent(p)) != V(0)) + || (Fb(p) != V(0) && Fb(parent(p)) == V(0)); + } + # endif // ! MLN_INCLUDE_ONLY -- 1.7.2.5
11 years, 11 months
1
0
0
0
← Newer
1
2
3
4
5
6
7
Older →
Jump to page:
1
2
3
4
5
6
7
Results per page:
10
25
50
100
200