\hypertarget{a00028}{
\section{mln::Box$<$ E $>$ Struct Template Reference}
\label{dc/d3c/a00028}\index{mln::Box@{mln::Box}}
}


Base class for implementation classes of boxes.  




{\ttfamily \#include $<$box.hh$>$}



Inheritance diagram for mln::Box$<$ E $>$:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=212pt]{d4/d60/a03446}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
const E \& \hyperlink{a00028_a689abe6596bfbe40fa307fc0db3a9290}{bbox} () const 
\begin{DoxyCompactList}\small\item\em Give the bounding box of this site set. \item\end{DoxyCompactList}\item 
bool \hyperlink{a00028_a69fd0ab844d3721589ebf9fc7fa8384f}{is\_\-empty} () const 
\begin{DoxyCompactList}\small\item\em Test if this box is empty. \item\end{DoxyCompactList}\item 
unsigned \hyperlink{a00028_a312da6ad989593a69eccdaf01660f4d7}{len} (unsigned i) const 
\begin{DoxyCompactList}\small\item\em Give the length of the {\ttfamily i-\/th} side of the box. \item\end{DoxyCompactList}\item 
unsigned \hyperlink{a00028_a3c92d5b998f6b6faad7362fe84ff37dc}{nsites} () const 
\begin{DoxyCompactList}\small\item\em Give the number of sites of this box. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Related Functions}
(Note that these are not member functions.) \begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\\hyperlink{a00320}{p\_\-set}$<$ typename Sl::site $>$ \hyperlink{a00348_a209946459ef9fbcf7a827f1b153867f0}{diff} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Set theoretic difference of {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\\hyperlink{a00320}{p\_\-set}$<$ typename Sl::site $>$ \hyperlink{a00348_ac8f40def1143ff1f29363ebfed8a090c}{inter} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Intersection between a couple of point sets. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\bool \hyperlink{a00348_a9c1c89a74e9e424f1eb8cb3a01b1c2e0}{operator$<$} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Strict inclusion test between site sets {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Bl , typename Br $>$ }\\bool \hyperlink{a00028_a52a2f6e202f560e62e3ce2a5ca5eb32a}{operator$<$} (const \hyperlink{a00028}{Box}$<$ Bl $>$ \&lhs, const \hyperlink{a00028}{Box}$<$ Br $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Strict inclusion test between boxes {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename S $>$ }\\std::ostream \& \hyperlink{a00348_a44002127b8ae83b633cc1cceca9d5baa}{operator$<$$<$} (std::ostream \&ostr, const \hyperlink{a00348}{Site\_\-Set}$<$ S $>$ \&\hyperlink{a00432}{set})
\begin{DoxyCompactList}\small\item\em Print a site set {\ttfamily set} into the output stream {\ttfamily ostr}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\bool \hyperlink{a00348_a864fd47cfb0a45b9403e21fab42067d5}{operator$<$=} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Inclusion test between site sets {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Bl , typename Br $>$ }\\bool \hyperlink{a00028_a5f9376588a8a955b72004f4ab3237b5c}{operator$<$=} (const \hyperlink{a00028}{Box}$<$ Bl $>$ \&lhs, const \hyperlink{a00028}{Box}$<$ Br $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Inclusion test between boxes {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\bool \hyperlink{a00348_a2aaedfe17e98d6670ed57c8102eb7749}{operator==} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Equality test between site sets {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\\hyperlink{a00320}{p\_\-set}$<$ typename Sl::site $>$ \hyperlink{a00348_a2d114751ea5c8622f744dada103483cb}{sym\_\-diff} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Set theoretic symmetrical difference of {\ttfamily lhs} and {\ttfamily rhs}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename Sl , typename Sr $>$ }\\\hyperlink{a00320}{p\_\-set}$<$ typename Sl::site $>$ \hyperlink{a00348_a2cc83fbbb290d98bdbbf8027750e4ef8}{uni} (const \hyperlink{a00348}{Site\_\-Set}$<$ Sl $>$ \&lhs, const \hyperlink{a00348}{Site\_\-Set}$<$ Sr $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Union of a couple of point sets. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename S $>$ }\\\hyperlink{a00320}{p\_\-set}$<$ typename S::site $>$ \hyperlink{a00348_a5acca096453b76ee0eeb919ac248165b}{unique} (const \hyperlink{a00348}{Site\_\-Set}$<$ S $>$ \&s)
\begin{DoxyCompactList}\small\item\em Give the unique set of {\ttfamily s}. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename E$>$ struct mln::Box$<$ E $>$}

Base class for implementation classes of boxes. Boxes are particular site sets useful to bound any set of sites defined on a regular grid.

\begin{DoxySeeAlso}{See also}
\hyperlink{a00161}{mln::doc::Box} for a complete documentation of this class contents. 
\end{DoxySeeAlso}


Definition at line 48 of file core/concept/box.hh.



\subsection{Member Function Documentation}
\hypertarget{a00028_a689abe6596bfbe40fa307fc0db3a9290}{
\index{mln::Box@{mln::Box}!bbox@{bbox}}
\index{bbox@{bbox}!mln::Box@{mln::Box}}
\subsubsection[{bbox}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename E $>$ const E \& {\bf mln::Box}$<$ E $>$::bbox (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d3c/a00028_a689abe6596bfbe40fa307fc0db3a9290}


Give the bounding box of this site set. 

Return the bounding box of this site set, so that is itself. This method is declared by the \hyperlink{a00348}{mln::Site\_\-Set} concept.

\begin{DoxyWarning}{Warning}
This method is final for all box classes. 
\end{DoxyWarning}


Definition at line 124 of file core/concept/box.hh.

\hypertarget{a00028_a69fd0ab844d3721589ebf9fc7fa8384f}{
\index{mln::Box@{mln::Box}!is\_\-empty@{is\_\-empty}}
\index{is\_\-empty@{is\_\-empty}!mln::Box@{mln::Box}}
\subsubsection[{is\_\-empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename E $>$ bool {\bf mln::Box}$<$ E $>$::is\_\-empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d3c/a00028_a69fd0ab844d3721589ebf9fc7fa8384f}


Test if this box is empty. 



Definition at line 167 of file core/concept/box.hh.

\hypertarget{a00028_a312da6ad989593a69eccdaf01660f4d7}{
\index{mln::Box@{mln::Box}!len@{len}}
\index{len@{len}!mln::Box@{mln::Box}}
\subsubsection[{len}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename E $>$ unsigned {\bf mln::Box}$<$ E $>$::len (
\begin{DoxyParamCaption}
\item[{unsigned}]{ i}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d3c/a00028_a312da6ad989593a69eccdaf01660f4d7}


Give the length of the {\ttfamily i-\/th} side of the box. 

\begin{DoxyPrecond}{Precondition}
i $<$ site::dim
\end{DoxyPrecond}
\begin{DoxyWarning}{Warning}
This method is final for all box classes. 
\end{DoxyWarning}


Definition at line 131 of file core/concept/box.hh.

\hypertarget{a00028_a3c92d5b998f6b6faad7362fe84ff37dc}{
\index{mln::Box@{mln::Box}!nsites@{nsites}}
\index{nsites@{nsites}!mln::Box@{mln::Box}}
\subsubsection[{nsites}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename E $>$ unsigned {\bf mln::Box}$<$ E $>$::nsites (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d3c/a00028_a3c92d5b998f6b6faad7362fe84ff37dc}


Give the number of sites of this box. 

Return the number of sites of this box. This method is declared by the \hyperlink{a00348}{mln::Site\_\-Set} concept.

\begin{DoxyWarning}{Warning}
This method is final for all box classes. 
\end{DoxyWarning}


Definition at line 153 of file core/concept/box.hh.



Referenced by mln::morpho::line\_\-gradient().



\subsection{Friends And Related Function Documentation}
\hypertarget{a00348_a209946459ef9fbcf7a827f1b153867f0}{
\index{mln::Box@{mln::Box}!diff@{diff}}
\index{diff@{diff}!mln::Box@{mln::Box}}
\subsubsection[{diff}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ {\bf p\_\-set}$<$ typename Sl::site $>$ diff (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a209946459ef9fbcf7a827f1b153867f0}


Set theoretic difference of {\ttfamily lhs} and {\ttfamily rhs}. 



Definition at line 66 of file set/diff.hh.

\hypertarget{a00348_ac8f40def1143ff1f29363ebfed8a090c}{
\index{mln::Box@{mln::Box}!inter@{inter}}
\index{inter@{inter}!mln::Box@{mln::Box}}
\subsubsection[{inter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ {\bf p\_\-set}$<$ typename Sl::site $>$ inter (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_ac8f40def1143ff1f29363ebfed8a090c}


Intersection between a couple of point sets. 



Definition at line 62 of file set/inter.hh.

\hypertarget{a00348_a9c1c89a74e9e424f1eb8cb3a01b1c2e0}{
\index{mln::Box@{mln::Box}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!mln::Box@{mln::Box}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ bool operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a9c1c89a74e9e424f1eb8cb3a01b1c2e0}


Strict inclusion test between site sets {\ttfamily lhs} and {\ttfamily rhs}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in]} {\em lhs}]A site set (strictly included?). \item[\mbox{\tt[in]} {\em rhs}]Another site set (includer?). \end{DoxyParams}


Definition at line 479 of file operators.hh.

\hypertarget{a00028_a52a2f6e202f560e62e3ce2a5ca5eb32a}{
\index{mln::Box@{mln::Box}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!mln::Box@{mln::Box}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Bl , typename Br $>$ bool operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf Box}$<$ Bl $>$ \&}]{ lhs, }
\item[{const {\bf Box}$<$ Br $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related\mbox{]}}}}
\label{dc/d3c/a00028_a52a2f6e202f560e62e3ce2a5ca5eb32a}


Strict inclusion test between boxes {\ttfamily lhs} and {\ttfamily rhs}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in]} {\em lhs}]A box (strictly included?). \item[\mbox{\tt[in]} {\em rhs}]Another box (includor?). \end{DoxyParams}


Definition at line 193 of file core/concept/box.hh.

\hypertarget{a00348_a44002127b8ae83b633cc1cceca9d5baa}{
\index{mln::Box@{mln::Box}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!mln::Box@{mln::Box}}
\subsubsection[{operator$<$$<$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename S $>$ std::ostream \& operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{std::ostream \&}]{ ostr, }
\item[{const {\bf Site\_\-Set}$<$ S $>$ \&}]{ set}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a44002127b8ae83b633cc1cceca9d5baa}


Print a site set {\ttfamily set} into the output stream {\ttfamily ostr}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in,out]} {\em ostr}]An output stream. \item[\mbox{\tt[in]} {\em set}]A site set.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The modified output stream {\ttfamily ostr}. 
\end{DoxyReturn}


Definition at line 505 of file operators.hh.

\hypertarget{a00348_a864fd47cfb0a45b9403e21fab42067d5}{
\index{mln::Box@{mln::Box}!operator$<$=@{operator$<$=}}
\index{operator$<$=@{operator$<$=}!mln::Box@{mln::Box}}
\subsubsection[{operator$<$=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ bool operator$<$= (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a864fd47cfb0a45b9403e21fab42067d5}


Inclusion test between site sets {\ttfamily lhs} and {\ttfamily rhs}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in]} {\em lhs}]A site set (included?). \item[\mbox{\tt[in]} {\em rhs}]Another site set (includer?). \end{DoxyParams}


Definition at line 491 of file operators.hh.

\hypertarget{a00028_a5f9376588a8a955b72004f4ab3237b5c}{
\index{mln::Box@{mln::Box}!operator$<$=@{operator$<$=}}
\index{operator$<$=@{operator$<$=}!mln::Box@{mln::Box}}
\subsubsection[{operator$<$=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Bl , typename Br $>$ bool operator$<$= (
\begin{DoxyParamCaption}
\item[{const {\bf Box}$<$ Bl $>$ \&}]{ lhs, }
\item[{const {\bf Box}$<$ Br $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related\mbox{]}}}}
\label{dc/d3c/a00028_a5f9376588a8a955b72004f4ab3237b5c}


Inclusion test between boxes {\ttfamily lhs} and {\ttfamily rhs}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in]} {\em lhs}]A box (included?). \item[\mbox{\tt[in]} {\em rhs}]Another box (includor?). \end{DoxyParams}


Definition at line 178 of file core/concept/box.hh.

\hypertarget{a00348_a2aaedfe17e98d6670ed57c8102eb7749}{
\index{mln::Box@{mln::Box}!operator==@{operator==}}
\index{operator==@{operator==}!mln::Box@{mln::Box}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ bool operator== (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a2aaedfe17e98d6670ed57c8102eb7749}


Equality test between site sets {\ttfamily lhs} and {\ttfamily rhs}. 


\begin{DoxyParams}{Parameters}
\item[\mbox{\tt[in]} {\em lhs}]A site set. \item[\mbox{\tt[in]} {\em rhs}]Another site set. \end{DoxyParams}


Definition at line 467 of file operators.hh.

\hypertarget{a00348_a2d114751ea5c8622f744dada103483cb}{
\index{mln::Box@{mln::Box}!sym\_\-diff@{sym\_\-diff}}
\index{sym\_\-diff@{sym\_\-diff}!mln::Box@{mln::Box}}
\subsubsection[{sym\_\-diff}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ {\bf p\_\-set}$<$ typename Sl::site $>$ sym\_\-diff (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a2d114751ea5c8622f744dada103483cb}


Set theoretic symmetrical difference of {\ttfamily lhs} and {\ttfamily rhs}. 



Definition at line 65 of file sym\_\-diff.hh.

\hypertarget{a00348_a2cc83fbbb290d98bdbbf8027750e4ef8}{
\index{mln::Box@{mln::Box}!uni@{uni}}
\index{uni@{uni}!mln::Box@{mln::Box}}
\subsubsection[{uni}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Sl , typename Sr $>$ {\bf p\_\-set}$<$ typename Sl::site $>$ uni (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ Sl $>$ \&}]{ lhs, }
\item[{const {\bf Site\_\-Set}$<$ Sr $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a2cc83fbbb290d98bdbbf8027750e4ef8}


Union of a couple of point sets. 



Definition at line 61 of file uni.hh.

\hypertarget{a00348_a5acca096453b76ee0eeb919ac248165b}{
\index{mln::Box@{mln::Box}!unique@{unique}}
\index{unique@{unique}!mln::Box@{mln::Box}}
\subsubsection[{unique}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename S $>$ {\bf p\_\-set}$<$ typename S::site $>$ unique (
\begin{DoxyParamCaption}
\item[{const {\bf Site\_\-Set}$<$ S $>$ \&}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}related, inherited\mbox{]}}}}
\label{df/d03/a00348_a5acca096453b76ee0eeb919ac248165b}


Give the unique set of {\ttfamily s}. 



Definition at line 61 of file unique.hh.

