\hypertarget{a08896}{}\section{Open\+Mesh\+:\+:Property\+Container Class Reference}
\label{a08896}\index{Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}}


A a container for properties.  




{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Utils/\+Property\+Container.\+hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_a008a731acf6297b2261964c09e8c69c8}\label{a08896_a008a731acf6297b2261964c09e8c69c8}} 
typedef std\+::vector$<$ \hyperlink{a08824}{Base\+Property} $\ast$ $>$ {\bfseries Properties}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_a3b1b8888637a0be238a7544b057f1aaf}\label{a08896_a3b1b8888637a0be238a7544b057f1aaf}} 
const \hyperlink{a11928}{Properties} \& {\bfseries properties} () const
\item 
\mbox{\Hypertarget{a08896_a7e708d5d2933130b270242dd609fe57a}\label{a08896_a7e708d5d2933130b270242dd609fe57a}} 
size\+\_\+t {\bfseries size} () const
\item 
\mbox{\Hypertarget{a08896_a480b1f8537dfff19668a50dd6e811a44}\label{a08896_a480b1f8537dfff19668a50dd6e811a44}} 
{\bfseries Property\+Container} (const \hyperlink{a08896}{Property\+Container} \&\+\_\+rhs)
\item 
\mbox{\Hypertarget{a08896_acd87f048baa409defd80194fafa318d0}\label{a08896_acd87f048baa409defd80194fafa318d0}} 
\hyperlink{a08896}{Property\+Container} \& {\bfseries operator=} (const \hyperlink{a08896}{Property\+Container} \&\+\_\+rhs)
\item 
\mbox{\Hypertarget{a08896_aebb7fff20f94177b9535d3a7a3b82644}\label{a08896_aebb7fff20f94177b9535d3a7a3b82644}} 
{\footnotesize template$<$class T $>$ }\\\hyperlink{a08872}{Base\+Prop\+HandleT}$<$ T $>$ {\bfseries add} (const T \&, const std\+::string \&\+\_\+name=\char`\"{}$<$unknown$>$\char`\"{})
\item 
\mbox{\Hypertarget{a08896_a4edbcc26906cf506c75d9afd1ca33528}\label{a08896_a4edbcc26906cf506c75d9afd1ca33528}} 
{\footnotesize template$<$class T $>$ }\\\hyperlink{a08872}{Base\+Prop\+HandleT}$<$ T $>$ {\bfseries handle} (const T \&, const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{a08896_a124fd42c4c8ccee81e5155f586c2d96d}\label{a08896_a124fd42c4c8ccee81e5155f586c2d96d}} 
\hyperlink{a08824}{Base\+Property} $\ast$ {\bfseries property} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{a08896_a23c02e8d51fe4b00921dc2378d423310}\label{a08896_a23c02e8d51fe4b00921dc2378d423310}} 
{\footnotesize template$<$class T $>$ }\\\hyperlink{a08860}{PropertyT}$<$ T $>$ \& {\bfseries property} (\hyperlink{a08872}{Base\+Prop\+HandleT}$<$ T $>$ \+\_\+h)
\item 
\mbox{\Hypertarget{a08896_a836d1c6b6d5ce89756562750bb16c89b}\label{a08896_a836d1c6b6d5ce89756562750bb16c89b}} 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{a08860}{PropertyT}$<$ T $>$ \& {\bfseries property} (\hyperlink{a08872}{Base\+Prop\+HandleT}$<$ T $>$ \+\_\+h) const
\item 
\mbox{\Hypertarget{a08896_a762475aa22ffcb5f383403125fcaa36a}\label{a08896_a762475aa22ffcb5f383403125fcaa36a}} 
{\footnotesize template$<$class T $>$ }\\void {\bfseries remove} (\hyperlink{a08872}{Base\+Prop\+HandleT}$<$ T $>$ \+\_\+h)
\item 
\mbox{\Hypertarget{a08896_a631e91a7caa30a9b02a5af495e4129b6}\label{a08896_a631e91a7caa30a9b02a5af495e4129b6}} 
void {\bfseries clear} ()
\item 
void \hyperlink{a08896_a2eb1e2604cdbe9b85248a8cd3436f065}{reserve} (size\+\_\+t \+\_\+n) const
\item 
void \hyperlink{a08896_ac04a05b6e852d51626339252077c54f3}{resize} (size\+\_\+t \+\_\+n) const
\item 
void \hyperlink{a08896_a44baed10be148cd4371f4592a8f70dd2}{resize\+\_\+if\+\_\+smaller} (size\+\_\+t \+\_\+n) const
\item 
void \hyperlink{a08896_a77d56c72792292090b3f14c17a1cdb5d}{swap} (size\+\_\+t \+\_\+i0, size\+\_\+t \+\_\+i1) const
\end{DoxyCompactItemize}
\subsection*{Protected Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_a7ef70e4b89bc896b73a9cf5cb4e6f648}\label{a08896_a7ef70e4b89bc896b73a9cf5cb4e6f648}} 
typedef Properties\+::iterator {\bfseries iterator}
\item 
\mbox{\Hypertarget{a08896_acb338c72528204d41696e20c01bceee1}\label{a08896_acb338c72528204d41696e20c01bceee1}} 
typedef Properties\+::const\+\_\+iterator {\bfseries const\+\_\+iterator}
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_adefb5baef2ed4ea710819d9494c13508}\label{a08896_adefb5baef2ed4ea710819d9494c13508}} 
size\+\_\+t {\bfseries \+\_\+add} (\hyperlink{a08824}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{a08896_ac8ce62e64c55183149a9f38068cf4174}\label{a08896_ac8ce62e64c55183149a9f38068cf4174}} 
\hyperlink{a08824}{Base\+Property} \& {\bfseries \+\_\+property} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{a08896_ae4c4d3fa6c2a897b1531ecc38efc15df}\label{a08896_ae4c4d3fa6c2a897b1531ecc38efc15df}} 
const \hyperlink{a08824}{Base\+Property} \& {\bfseries \+\_\+property} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{a08896_ade6a0c922201139f4a01c4f308565bf0}\label{a08896_ade6a0c922201139f4a01c4f308565bf0}} 
iterator {\bfseries begin} ()
\item 
\mbox{\Hypertarget{a08896_ab865599d4971b5acda0796ff6a1fee2c}\label{a08896_ab865599d4971b5acda0796ff6a1fee2c}} 
iterator {\bfseries end} ()
\item 
\mbox{\Hypertarget{a08896_a33c8414a6706fcb4c4cc1863bf1e234a}\label{a08896_a33c8414a6706fcb4c4cc1863bf1e234a}} 
const\+\_\+iterator {\bfseries begin} () const
\item 
\mbox{\Hypertarget{a08896_a1807f7b6ee96f4dcfd96b5b9d9316512}\label{a08896_a1807f7b6ee96f4dcfd96b5b9d9316512}} 
const\+\_\+iterator {\bfseries end} () const
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_a6c3b440e7cc9086c392e77b339b00874}\label{a08896_a6c3b440e7cc9086c392e77b339b00874}} 
\hyperlink{a11928}{Properties} {\bfseries properties\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08896_a9b82005bcafe1e17389583740fba8c9b}\label{a08896_a9b82005bcafe1e17389583740fba8c9b}} 
class {\bfseries Base\+Kernel}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
A a container for properties. 

Definition at line 62 of file Property\+Container.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08896_a2eb1e2604cdbe9b85248a8cd3436f065}\label{a08896_a2eb1e2604cdbe9b85248a8cd3436f065}} 
\index{Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}!reserve@{reserve}}
\index{reserve@{reserve}!Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}}
\subsubsection{\texorpdfstring{reserve()}{reserve()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Property\+Container\+::reserve (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Reserves space for {\ttfamily \+\_\+n} elements in all property vectors. 

Definition at line 244 of file Property\+Container.\+hh.

\mbox{\Hypertarget{a08896_ac04a05b6e852d51626339252077c54f3}\label{a08896_ac04a05b6e852d51626339252077c54f3}} 
\index{Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}!resize@{resize}}
\index{resize@{resize}!Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}}
\subsubsection{\texorpdfstring{resize()}{resize()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Property\+Container\+::resize (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Resizes all property vectors to the specified size. 

Definition at line 251 of file Property\+Container.\+hh.

\mbox{\Hypertarget{a08896_a44baed10be148cd4371f4592a8f70dd2}\label{a08896_a44baed10be148cd4371f4592a8f70dd2}} 
\index{Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}!resize\+\_\+if\+\_\+smaller@{resize\+\_\+if\+\_\+smaller}}
\index{resize\+\_\+if\+\_\+smaller@{resize\+\_\+if\+\_\+smaller}!Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}}
\subsubsection{\texorpdfstring{resize\+\_\+if\+\_\+smaller()}{resize\_if\_smaller()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Property\+Container\+::resize\+\_\+if\+\_\+smaller (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Same as \begin{DoxySeeAlso}{See also}
\hyperlink{a08896_ac04a05b6e852d51626339252077c54f3}{resize()} but ignores property vectors that have a size larger than {\ttfamily \+\_\+n}.
\end{DoxySeeAlso}
Use this method instead of \begin{DoxySeeAlso}{See also}
\hyperlink{a08896_ac04a05b6e852d51626339252077c54f3}{resize()} if you plan to frequently reduce and enlarge the property container and you don\textquotesingle{}t want to waste time reallocating the property vectors every time. 
\end{DoxySeeAlso}


Definition at line 263 of file Property\+Container.\+hh.

\mbox{\Hypertarget{a08896_a77d56c72792292090b3f14c17a1cdb5d}\label{a08896_a77d56c72792292090b3f14c17a1cdb5d}} 
\index{Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}!swap@{swap}}
\index{swap@{swap}!Open\+Mesh\+::\+Property\+Container@{Open\+Mesh\+::\+Property\+Container}}
\subsubsection{\texorpdfstring{swap()}{swap()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Property\+Container\+::swap (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+i0,  }\item[{size\+\_\+t}]{\+\_\+i1 }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Swaps the items with index {\ttfamily \+\_\+i0} and index {\ttfamily \+\_\+i1} in all property vectors. 

Definition at line 271 of file Property\+Container.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Utils/Property\+Container.\+hh\end{DoxyCompactItemize}
