\hypertarget{a09084}{}\section{Open\+Mesh\+:\+:Subdivider\+:\+:Adaptive\+:\+:Composite\+Traits Struct Reference}
\label{a09084}\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Adaptive/\+Composite/\+Composite\+Traits.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Adaptive\+:\+:Composite\+Traits\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a09084}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a09088}{State}
\begin{DoxyCompactList}\small\item\em Storage type for intermediate states and the final flag of a mesh entity. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}\label{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}} 
typedef int \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t}
\begin{DoxyCompactList}\small\item\em External representation for intermediate state. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09084_a6130640284ae3223c2a7e3c54269d4f1}\label{a09084_a6130640284ae3223c2a7e3c54269d4f1}} 
typedef bool \hyperlink{a09084_a6130640284ae3223c2a7e3c54269d4f1}{final\+\_\+t}
\begin{DoxyCompactList}\small\item\em External representation for final flag. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09084_acd97b60d53a940be95886b312063eb05}\label{a09084_acd97b60d53a940be95886b312063eb05}} 
typedef Refs\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}
\item 
\mbox{\Hypertarget{a09084_ac05be418c577d9f63052cc2b292c9bb2}\label{a09084_ac05be418c577d9f63052cc2b292c9bb2}} 
typedef std\+::map$<$ \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t}, \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} $>$ {\bfseries Position\+History}
\item 
\mbox{\Hypertarget{a09084_ac05be418c577d9f63052cc2b292c9bb2}\label{a09084_ac05be418c577d9f63052cc2b292c9bb2}} 
typedef std\+::map$<$ \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t}, \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} $>$ {\bfseries Position\+History}
\item 
\mbox{\Hypertarget{a09084_abe5d0edcbd6e799baab99c30ab413c9b}\label{a09084_abe5d0edcbd6e799baab99c30ab413c9b}} 
typedef Refs\+::\+Scalar {\bfseries Scalar}
\item 
\mbox{\Hypertarget{a09084_ac05be418c577d9f63052cc2b292c9bb2}\label{a09084_ac05be418c577d9f63052cc2b292c9bb2}} 
typedef std\+::map$<$ \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t}, \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} $>$ {\bfseries Position\+History}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09084_a25eb0009aac00490b3e691419138c83c}\label{a09084_a25eb0009aac00490b3e691419138c83c}} 
{\bfseries Face\+Attributes} (\hyperlink{a06215_ab78a93560926cd2f9958cb028f7ea96da213616dd2e4d9744d863587001a77988}{Open\+Mesh\+::\+Attributes\+::\+Normal})
\item 
\mbox{\Hypertarget{a09084_a2e5915425bebe179b91427352b6a03cf}\label{a09084_a2e5915425bebe179b91427352b6a03cf}} 
{\bfseries Vertex\+Attributes} (\hyperlink{a06215_ab78a93560926cd2f9958cb028f7ea96da213616dd2e4d9744d863587001a77988}{Open\+Mesh\+::\+Attributes\+::\+Normal})
\item 
\mbox{\Hypertarget{a09084_ad2cb2a8407a8febf9decdae10745a0fe}\label{a09084_ad2cb2a8407a8febf9decdae10745a0fe}} 
{\bfseries Halfedge\+Attributes} (\hyperlink{a06215_ab78a93560926cd2f9958cb028f7ea96dafaaebe1808b5cce96ad4e19df471d58a}{Open\+Mesh\+::\+Attributes\+::\+Prev\+Halfedge})
\item 
\mbox{\Hypertarget{a09084_a6dc18ac7e4730729466fa7998a477840}\label{a09084_a6dc18ac7e4730729466fa7998a477840}} 
\hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} {\bfseries state} () const
\item 
\mbox{\Hypertarget{a09084_a7f204100f1ddac2ecfb21f942092bc94}\label{a09084_a7f204100f1ddac2ecfb21f942092bc94}} 
void {\bfseries set\+\_\+state} (const \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} \+\_\+s)
\item 
\mbox{\Hypertarget{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}\label{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}} 
void {\bfseries inc\+\_\+state} ()
\item 
\mbox{\Hypertarget{a09084_a58cad70aad1cd180d3344b691800297d}\label{a09084_a58cad70aad1cd180d3344b691800297d}} 
\hyperlink{a09084_a6130640284ae3223c2a7e3c54269d4f1}{final\+\_\+t} {\bfseries final} () const
\item 
\mbox{\Hypertarget{a09084_a12335f749c6e4733f89822494232b106}\label{a09084_a12335f749c6e4733f89822494232b106}} 
void {\bfseries set\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}\label{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}} 
void {\bfseries set\+\_\+not\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a1d272d3aa3dbf30c6477a45d2a3765d3}\label{a09084_a1d272d3aa3dbf30c6477a45d2a3765d3}} 
const Halfedge\+Handle \& {\bfseries red\+\_\+halfedge} () const
\item 
\mbox{\Hypertarget{a09084_a87fea1a42394c85c5ef4ded66d014cad}\label{a09084_a87fea1a42394c85c5ef4ded66d014cad}} 
void {\bfseries set\+\_\+red\+\_\+halfedge} (const Halfedge\+Handle \&\+\_\+h)
\item 
\mbox{\Hypertarget{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}\label{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}} 
void {\bfseries set\+\_\+position} (const int \&\+\_\+i, const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} \&\+\_\+p)
\item 
\mbox{\Hypertarget{a09084_a238f153d2512112ab4e019f00761394f}\label{a09084_a238f153d2512112ab4e019f00761394f}} 
const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} {\bfseries position} (const int \&\+\_\+i)
\item 
\mbox{\Hypertarget{a09084_a6dc18ac7e4730729466fa7998a477840}\label{a09084_a6dc18ac7e4730729466fa7998a477840}} 
\hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} {\bfseries state} () const
\item 
\mbox{\Hypertarget{a09084_a7f204100f1ddac2ecfb21f942092bc94}\label{a09084_a7f204100f1ddac2ecfb21f942092bc94}} 
void {\bfseries set\+\_\+state} (const \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} \+\_\+s)
\item 
\mbox{\Hypertarget{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}\label{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}} 
void {\bfseries inc\+\_\+state} ()
\item 
\mbox{\Hypertarget{a09084_a58cad70aad1cd180d3344b691800297d}\label{a09084_a58cad70aad1cd180d3344b691800297d}} 
\hyperlink{a09084_a6130640284ae3223c2a7e3c54269d4f1}{final\+\_\+t} {\bfseries final} () const
\item 
\mbox{\Hypertarget{a09084_a12335f749c6e4733f89822494232b106}\label{a09084_a12335f749c6e4733f89822494232b106}} 
void {\bfseries set\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}\label{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}} 
void {\bfseries set\+\_\+not\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}\label{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}} 
void {\bfseries set\+\_\+position} (const int \&\+\_\+i, const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} \&\+\_\+p)
\item 
\mbox{\Hypertarget{a09084_a238f153d2512112ab4e019f00761394f}\label{a09084_a238f153d2512112ab4e019f00761394f}} 
const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} {\bfseries position} (const int \&\+\_\+i)
\item 
\mbox{\Hypertarget{a09084_a6dc18ac7e4730729466fa7998a477840}\label{a09084_a6dc18ac7e4730729466fa7998a477840}} 
\hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} {\bfseries state} () const
\item 
\mbox{\Hypertarget{a09084_a7f204100f1ddac2ecfb21f942092bc94}\label{a09084_a7f204100f1ddac2ecfb21f942092bc94}} 
void {\bfseries set\+\_\+state} (const \hyperlink{a09084_a13c642f3a0e8bfb626e99d0d27b7fdd9}{state\+\_\+t} \+\_\+s)
\item 
\mbox{\Hypertarget{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}\label{a09084_a76d9bf506a14d5d0f22fb67aed3a6686}} 
void {\bfseries inc\+\_\+state} ()
\item 
\mbox{\Hypertarget{a09084_a58cad70aad1cd180d3344b691800297d}\label{a09084_a58cad70aad1cd180d3344b691800297d}} 
\hyperlink{a09084_a6130640284ae3223c2a7e3c54269d4f1}{final\+\_\+t} {\bfseries final} () const
\item 
\mbox{\Hypertarget{a09084_a12335f749c6e4733f89822494232b106}\label{a09084_a12335f749c6e4733f89822494232b106}} 
void {\bfseries set\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}\label{a09084_a0334f5d299f86e37ff8cf0eb34ffca1a}} 
void {\bfseries set\+\_\+not\+\_\+final} ()
\item 
\mbox{\Hypertarget{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}\label{a09084_a9ba4f7cec93d077ccf16e4845ba6f9a7}} 
void {\bfseries set\+\_\+position} (const int \&\+\_\+i, const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} \&\+\_\+p)
\item 
\mbox{\Hypertarget{a09084_a238f153d2512112ab4e019f00761394f}\label{a09084_a238f153d2512112ab4e019f00761394f}} 
const \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point} {\bfseries position} (const int \&\+\_\+i)
\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
{\bfseries Face\+Traits}
\item 
\mbox{\Hypertarget{a09084_ac9341ebf59b6d4389abe147ff3289c22}\label{a09084_ac9341ebf59b6d4389abe147ff3289c22}} 
\hyperlink{a09088}{State} {\bfseries state\+\_\+}
\item 
\mbox{\Hypertarget{a09084_acef68f08afcfcb939a6b88153e596609}\label{a09084_acef68f08afcfcb939a6b88153e596609}} 
Halfedge\+Handle {\bfseries red\+\_\+halfedge\+\_\+}
\item 
\mbox{\Hypertarget{a09084_abc062b64297561725c01e8a6203d1c4e}\label{a09084_abc062b64297561725c01e8a6203d1c4e}} 
Position\+History {\bfseries pos\+\_\+map\+\_\+}
\item 
{\bfseries Edge\+Traits}
\item 
{\bfseries Vertex\+Traits}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a06218}{Adaptive} Composite Subdivision framework.\+Mesh traits for adaptive composite subdivision 

Definition at line 81 of file Composite\+Traits.\+hh.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{a09084_a5b2cbd6d4152a2ceeb0b73c5e5743f2c}\label{a09084_a5b2cbd6d4152a2ceeb0b73c5e5743f2c}} 
\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}!Edge\+Traits@{Edge\+Traits}}
\index{Edge\+Traits@{Edge\+Traits}!Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}}
\subsubsection{\texorpdfstring{Edge\+Traits}{EdgeTraits}}
{\footnotesize\ttfamily Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits\+::\+Edge\+Traits}

{\bfseries Initial value\+:}
\begin{DoxyCode}
\{
    
  \textcolor{keyword}{private}:
    
    \textcolor{keyword}{typedef} \textcolor{keyword}{typename} Refs::Point \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point}
\end{DoxyCode}


Definition at line 155 of file Composite\+Traits.\+hh.

\mbox{\Hypertarget{a09084_a73b3809e0764e23f83b4191e8069bb81}\label{a09084_a73b3809e0764e23f83b4191e8069bb81}} 
\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}!Face\+Traits@{Face\+Traits}}
\index{Face\+Traits@{Face\+Traits}!Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}}
\subsubsection{\texorpdfstring{Face\+Traits}{FaceTraits}}
{\footnotesize\ttfamily Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits\+::\+Face\+Traits}

{\bfseries Initial value\+:}
\begin{DoxyCode}
\{
    
  \textcolor{keyword}{private}:
    
    \textcolor{keyword}{typedef} \textcolor{keyword}{typename} Refs::Point \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point}
\end{DoxyCode}


Definition at line 108 of file Composite\+Traits.\+hh.

\mbox{\Hypertarget{a09084_a6e3ce4da0be03d26db0b3b9090d19c49}\label{a09084_a6e3ce4da0be03d26db0b3b9090d19c49}} 
\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}!Vertex\+Traits@{Vertex\+Traits}}
\index{Vertex\+Traits@{Vertex\+Traits}!Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits}}
\subsubsection{\texorpdfstring{Vertex\+Traits}{VertexTraits}}
{\footnotesize\ttfamily Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Composite\+Traits\+::\+Vertex\+Traits}

{\bfseries Initial value\+:}
\begin{DoxyCode}
\{

  \textcolor{keyword}{private}:

    \textcolor{keyword}{typedef} \textcolor{keyword}{typename} Refs::Point \hyperlink{a08800_a57c3a0075b2f50719679de132aa772b1}{Point}
\end{DoxyCode}


Definition at line 203 of file Composite\+Traits.\+hh.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Adaptive/\+Composite/\hyperlink{a15307}{Composite\+Traits.\+hh}\end{DoxyCompactItemize}
