\hypertarget{a00440}{\section{Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Composite\+T$<$ Mesh\+Type, Real\+Type $>$ Class Template Reference}
\label{a00440}\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T$<$ Mesh\+Type, Real\+Type $>$@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T$<$ Mesh\+Type, Real\+Type $>$}}
}


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

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Composite\+T$<$ Mesh\+Type, Real\+Type $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.528217cm]{a00440}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a00416}{Coeff}
\begin{DoxyCompactList}\small\item\em Abstract base class for coefficient functions. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_ac17a2051674b9dee657a63fa0fb76d94}{typedef Real\+Type {\bfseries real\+\_\+t}}\label{a00440_ac17a2051674b9dee657a63fa0fb76d94}

\item 
\hypertarget{a00440_a83b2fed1876ab235d16f0da2cf1e2d8c}{typedef Mesh\+Type {\bfseries mesh\+\_\+t}}\label{a00440_a83b2fed1876ab235d16f0da2cf1e2d8c}

\item 
\hypertarget{a00440_ae940e2f7d2d435c6fd49542422d98cd4}{typedef \hyperlink{a01257}{Subdivider\+T}$<$ mesh\+\_\+t, \\*
real\+\_\+t $>$ {\bfseries parent\+\_\+t}}\label{a00440_ae940e2f7d2d435c6fd49542422d98cd4}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_a514ff6d9a921fb10d886d5519d4fded8}{{\bfseries Composite\+T} (Mesh\+Type \&\+\_\+mesh)}\label{a00440_a514ff6d9a921fb10d886d5519d4fded8}

\item 
\hypertarget{a00440_a239327f4a99ebba6be5a7b340f62d3b6}{virtual const char $\ast$ \hyperlink{a00440_a239327f4a99ebba6be5a7b340f62d3b6}{name} (void) const =0}\label{a00440_a239327f4a99ebba6be5a7b340f62d3b6}

\begin{DoxyCompactList}\small\item\em Return name of subdivision algorithm. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_abc5a069002b908b75a6363c1e9b02c39}{typedef Mesh\+Type\+::\+Scalar {\bfseries scalar\+\_\+t}}\label{a00440_abc5a069002b908b75a6363c1e9b02c39}

\item 
\hypertarget{a00440_a19e9e92bd454236289c4d54059fa60d3}{typedef Mesh\+Type\+::\+Vertex\+Handle {\bfseries Vertex\+Handle}}\label{a00440_a19e9e92bd454236289c4d54059fa60d3}

\item 
\hypertarget{a00440_ae8c7d4574e0051a0682ca4d09aba1c3b}{typedef Mesh\+Type\+::\+Face\+Handle {\bfseries Face\+Handle}}\label{a00440_ae8c7d4574e0051a0682ca4d09aba1c3b}

\item 
\hypertarget{a00440_a1e16be1dbc078c68b9daf1edb19a8bcc}{typedef Mesh\+Type\+::\+Edge\+Handle {\bfseries Edge\+Handle}}\label{a00440_a1e16be1dbc078c68b9daf1edb19a8bcc}

\item 
\hypertarget{a00440_aad7b956149abff9f415160916919f86f}{typedef Mesh\+Type\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}}\label{a00440_aad7b956149abff9f415160916919f86f}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_a99076b15a85d478bd98933fa47a7ee9a}{bool \hyperlink{a00440_a99076b15a85d478bd98933fa47a7ee9a}{prepare} (Mesh\+Type \&\+\_\+m)}\label{a00440_a99076b15a85d478bd98933fa47a7ee9a}

\begin{DoxyCompactList}\small\item\em Prepare mesh, e.\+g. add properties. \end{DoxyCompactList}\item 
\hypertarget{a00440_af65a12b995f0483dd423001c0d5066ec}{bool \hyperlink{a00440_af65a12b995f0483dd423001c0d5066ec}{subdivide} (Mesh\+Type \&\+\_\+m, size\+\_\+t \+\_\+n, const bool \+\_\+update\+\_\+points=true)}\label{a00440_af65a12b995f0483dd423001c0d5066ec}

\begin{DoxyCompactList}\small\item\em Subdivide mesh {\ttfamily \+\_\+m} {\ttfamily \+\_\+n} times. \end{DoxyCompactList}\item 
\hypertarget{a00440_a99cba9898bd23ba6e9896039855e14ac}{bool \hyperlink{a00440_a99cba9898bd23ba6e9896039855e14ac}{cleanup} (Mesh\+Type \&\+\_\+m)}\label{a00440_a99cba9898bd23ba6e9896039855e14ac}

\begin{DoxyCompactList}\small\item\em Cleanup mesh after usage, e.\+g. remove added properties. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00440_a8dfdb98878479b54cfc103f1c8034ed4}{apply\+\_\+rules} (void)=0
\item 
void \hyperlink{a00440_aa8cf2fa548e0723623306b821b0b01c2}{commit} (Mesh\+Type \&\+\_\+m)
\item 
\hypertarget{a00440_a1326d30c4a87ad9bba5127a3fdbe79d2}{void \hyperlink{a00440_a1326d30c4a87ad9bba5127a3fdbe79d2}{corner\+\_\+cutting} (Halfedge\+Handle \+\_\+heh)}\label{a00440_a1326d30c4a87ad9bba5127a3fdbe79d2}

\begin{DoxyCompactList}\small\item\em Corner Cutting. \end{DoxyCompactList}\item 
\hypertarget{a00440_ab18f57dd13668c67124aa284a828b510}{Vertex\+Handle \hyperlink{a00440_ab18f57dd13668c67124aa284a828b510}{split\+\_\+edge} (Halfedge\+Handle \+\_\+heh)}\label{a00440_ab18f57dd13668c67124aa284a828b510}

\begin{DoxyCompactList}\small\item\em Split Edge. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Uniform composite subdivision rules}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_a1d45a05215a0145b08afe17afe56fb4f}{void \hyperlink{a00440_a1d45a05215a0145b08afe17afe56fb4f}{Tvv3} ()}\label{a00440_a1d45a05215a0145b08afe17afe56fb4f}

\begin{DoxyCompactList}\small\item\em Split Face, using Vertex information (1-\/3 split) \end{DoxyCompactList}\item 
\hypertarget{a00440_ac926099e21e1ccf4208038d273b63a57}{void \hyperlink{a00440_ac926099e21e1ccf4208038d273b63a57}{Tvv4} ()}\label{a00440_ac926099e21e1ccf4208038d273b63a57}

\begin{DoxyCompactList}\small\item\em Split Face, using Vertex information (1-\/4 split) \end{DoxyCompactList}\item 
\hypertarget{a00440_ace1e32ab93dfdf5f867ff0d60aae7ce1}{void \hyperlink{a00440_ace1e32ab93dfdf5f867ff0d60aae7ce1}{Tfv} ()}\label{a00440_ace1e32ab93dfdf5f867ff0d60aae7ce1}

\begin{DoxyCompactList}\small\item\em Split Face, using Face Information. \end{DoxyCompactList}\item 
\hypertarget{a00440_aa0495c7bbeb355e88af1724fd510b327}{void \hyperlink{a00440_aa0495c7bbeb355e88af1724fd510b327}{F\+F} ()}\label{a00440_aa0495c7bbeb355e88af1724fd510b327}

\begin{DoxyCompactList}\small\item\em Face to face averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_ab53a99ba5610576ef1d3cf01a566ab30}{void \hyperlink{a00440_ab53a99ba5610576ef1d3cf01a566ab30}{F\+Fc} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)}\label{a00440_ab53a99ba5610576ef1d3cf01a566ab30}

\begin{DoxyCompactList}\small\item\em Weighted face to face averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a2cc63b7252fbd630a3ef26da8a381c01}{void \hyperlink{a00440_a2cc63b7252fbd630a3ef26da8a381c01}{F\+Fc} (scalar\+\_\+t \+\_\+c)}\label{a00440_a2cc63b7252fbd630a3ef26da8a381c01}

\begin{DoxyCompactList}\small\item\em Weighted face to face averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a3600488b52e6e143c464b284fd453781}{void \hyperlink{a00440_a3600488b52e6e143c464b284fd453781}{F\+V} ()}\label{a00440_a3600488b52e6e143c464b284fd453781}

\begin{DoxyCompactList}\small\item\em Face to vertex averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a39ca9a5507d4d6b0f0c30d7f0daf2a9e}{void \hyperlink{a00440_a39ca9a5507d4d6b0f0c30d7f0daf2a9e}{F\+Vc} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)}\label{a00440_a39ca9a5507d4d6b0f0c30d7f0daf2a9e}

\begin{DoxyCompactList}\small\item\em Weighted face to vertex Averaging with flaps. \end{DoxyCompactList}\item 
\hypertarget{a00440_a2e6c3024dcbee1a6b1aac8695d33d86f}{void \hyperlink{a00440_a2e6c3024dcbee1a6b1aac8695d33d86f}{F\+Vc} (scalar\+\_\+t \+\_\+c)}\label{a00440_a2e6c3024dcbee1a6b1aac8695d33d86f}

\begin{DoxyCompactList}\small\item\em Weighted face to vertex Averaging with flaps. \end{DoxyCompactList}\item 
\hypertarget{a00440_a8db66c0f8eb5b35af24eb368da524ba7}{void \hyperlink{a00440_a8db66c0f8eb5b35af24eb368da524ba7}{F\+E} ()}\label{a00440_a8db66c0f8eb5b35af24eb368da524ba7}

\begin{DoxyCompactList}\small\item\em Face to edge averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a35388243679b29082a346088779e4e86}{void \hyperlink{a00440_a35388243679b29082a346088779e4e86}{V\+F} ()}\label{a00440_a35388243679b29082a346088779e4e86}

\begin{DoxyCompactList}\small\item\em Vertex to Face Averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a391faa77341e9e7fa268a05745d170de}{void \hyperlink{a00440_a391faa77341e9e7fa268a05745d170de}{V\+Fa} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)}\label{a00440_a391faa77341e9e7fa268a05745d170de}

\begin{DoxyCompactList}\small\item\em Vertex to Face Averaging, weighted. \end{DoxyCompactList}\item 
\hypertarget{a00440_ae7041649c35a328ec0dde220604ef41e}{void \hyperlink{a00440_ae7041649c35a328ec0dde220604ef41e}{V\+Fa} (scalar\+\_\+t \+\_\+alpha)}\label{a00440_ae7041649c35a328ec0dde220604ef41e}

\begin{DoxyCompactList}\small\item\em Vertex to Face Averaging, weighted. \end{DoxyCompactList}\item 
\hypertarget{a00440_add3815ae0c361f86d6540a2f73e36ebc}{void \hyperlink{a00440_add3815ae0c361f86d6540a2f73e36ebc}{V\+V} ()}\label{a00440_add3815ae0c361f86d6540a2f73e36ebc}

\begin{DoxyCompactList}\small\item\em Vertex to vertex averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a321e740e4f6cff41adfcf843c82e33f0}{void \hyperlink{a00440_a321e740e4f6cff41adfcf843c82e33f0}{V\+Vc} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)}\label{a00440_a321e740e4f6cff41adfcf843c82e33f0}

\begin{DoxyCompactList}\small\item\em Vertex to vertex averaging, weighted. \end{DoxyCompactList}\item 
\hypertarget{a00440_ab95a7d8ea472a57bfc80fd5f6c6a5654}{void \hyperlink{a00440_ab95a7d8ea472a57bfc80fd5f6c6a5654}{V\+Vc} (scalar\+\_\+t \+\_\+c)}\label{a00440_ab95a7d8ea472a57bfc80fd5f6c6a5654}

\begin{DoxyCompactList}\small\item\em Vertex to vertex averaging, weighted. \end{DoxyCompactList}\item 
\hypertarget{a00440_ac33806fb9f809971a3dfe4c228507a76}{void \hyperlink{a00440_ac33806fb9f809971a3dfe4c228507a76}{V\+E} ()}\label{a00440_ac33806fb9f809971a3dfe4c228507a76}

\begin{DoxyCompactList}\small\item\em V\+E Step (Vertex to Edge Averaging) \end{DoxyCompactList}\item 
\hypertarget{a00440_acd243b4d3e60a7b67ddd7f3437e51010}{void \hyperlink{a00440_acd243b4d3e60a7b67ddd7f3437e51010}{Vd\+E} ()}\label{a00440_acd243b4d3e60a7b67ddd7f3437e51010}

\begin{DoxyCompactList}\small\item\em Vertex to edge averaging, using diamond of edges. \end{DoxyCompactList}\item 
\hypertarget{a00440_a787f2e616ae6b4e0cf5c5f7951d783b2}{void \hyperlink{a00440_a787f2e616ae6b4e0cf5c5f7951d783b2}{Vd\+Ec} (scalar\+\_\+t \+\_\+c)}\label{a00440_a787f2e616ae6b4e0cf5c5f7951d783b2}

\begin{DoxyCompactList}\small\item\em Weighted vertex to edge averaging, using diamond of edges. \end{DoxyCompactList}\item 
void \hyperlink{a00440_a6a75fc51769d2f972cca10beb52c4494}{Vd\+Eg} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)
\item 
void \hyperlink{a00440_a1500a850dcfa332546c202048be25daa}{Vd\+Eg} (scalar\+\_\+t \+\_\+gamma)
\item 
\hypertarget{a00440_a2ec3a28199e1d6a464284a86851d2b51}{void \hyperlink{a00440_a2ec3a28199e1d6a464284a86851d2b51}{E\+F} ()}\label{a00440_a2ec3a28199e1d6a464284a86851d2b51}

\begin{DoxyCompactList}\small\item\em Edge to face averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_aa211c0ed8fb4ea49f877a6a2503eb670}{void \hyperlink{a00440_aa211c0ed8fb4ea49f877a6a2503eb670}{E\+V} ()}\label{a00440_aa211c0ed8fb4ea49f877a6a2503eb670}

\begin{DoxyCompactList}\small\item\em Edge to vertex averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a55c0091dddb4064cb72248208986c010}{void \hyperlink{a00440_a55c0091dddb4064cb72248208986c010}{E\+Vc} (\hyperlink{a00416}{Coeff} \&\+\_\+coeff)}\label{a00440_a55c0091dddb4064cb72248208986c010}

\begin{DoxyCompactList}\small\item\em Weighted edge to vertex averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_a20e01b467ae0b8f32a3c08c2e4f3dcb6}{void \hyperlink{a00440_a20e01b467ae0b8f32a3c08c2e4f3dcb6}{E\+Vc} (scalar\+\_\+t \+\_\+c)}\label{a00440_a20e01b467ae0b8f32a3c08c2e4f3dcb6}

\begin{DoxyCompactList}\small\item\em Weighted edge to vertex averaging. \end{DoxyCompactList}\item 
\hypertarget{a00440_ae09cae8bd069be8007a8c6c44e3eb7c7}{void \hyperlink{a00440_ae09cae8bd069be8007a8c6c44e3eb7c7}{Ed\+E} ()}\label{a00440_ae09cae8bd069be8007a8c6c44e3eb7c7}

\begin{DoxyCompactList}\small\item\em Edge to edge averaging w/ flap rule. \end{DoxyCompactList}\item 
\hypertarget{a00440_abd991c2a1ecb9b2c313de99b0f6de160}{void \hyperlink{a00440_abd991c2a1ecb9b2c313de99b0f6de160}{Ed\+Ec} (scalar\+\_\+t \+\_\+c)}\label{a00440_abd991c2a1ecb9b2c313de99b0f6de160}

\begin{DoxyCompactList}\small\item\em Weighted edge to edge averaging w/ flap rule. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00440_acbaeb7bdbe0f5928905a730b994acc95}{Mesh\+Type $\ast$ {\bfseries p\+\_\+mesh\+\_\+}}\label{a00440_acbaeb7bdbe0f5928905a730b994acc95}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Mesh\+Type, typename Real\+Type = float$>$class Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T$<$ Mesh\+Type, Real\+Type $>$}

This class provides the composite subdivision rules for the uniform case.

To create a subdivider derive from this class and overload the functions \hyperlink{a00440_a239327f4a99ebba6be5a7b340f62d3b6}{name()} and \hyperlink{a00440_a8dfdb98878479b54cfc103f1c8034ed4}{apply\+\_\+rules()}. In the latter one call the wanted rules.

For details on the composite scheme refer to
\begin{DoxyItemize}
\item \href{http://cm.bell-labs.com/who/poswald/sqrt3.pdf}{\tt P. Oswald, P. Schroeder \char`\"{}\+Composite primal/dual sqrt(3)-\/subdivision schemes\char`\"{}, C\+A\+G\+D 20, 3, 2003, 135--164}
\end{DoxyItemize}

\begin{DoxyNote}{Note}
Not all rules are implemented! 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
class \hyperlink{a00439}{Adaptive\+::\+Composite\+T} 
\end{DoxySeeAlso}


Definition at line 94 of file Composite\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00440_a8dfdb98878479b54cfc103f1c8034ed4}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}!apply\+\_\+rules@{apply\+\_\+rules}}
\index{apply\+\_\+rules@{apply\+\_\+rules}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}}
\subsubsection[{apply\+\_\+rules}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ virtual void {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}$<$ Mesh\+Type, Real\+Type $>$\+::apply\+\_\+rules (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}}\label{a00440_a8dfdb98878479b54cfc103f1c8034ed4}
Assemble here the rule sequence, by calling the constructor of the wanted rules. 

Implemented in \hyperlink{a00437_a91afe60dc791d39f82547a151015de46}{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+Loop\+T$<$ Mesh\+Type, Real\+Type $>$}, and \hyperlink{a00438_a002726eaa6860072f116de68e90b64a7}{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+Sqrt3\+T$<$ Mesh\+Type, Real\+Type $>$}.

\hypertarget{a00440_aa8cf2fa548e0723623306b821b0b01c2}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}!commit@{commit}}
\index{commit@{commit}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}}
\subsubsection[{commit}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ void {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}$<$ Mesh\+Type, Real\+Type $>$\+::commit (
\begin{DoxyParamCaption}
\item[{Mesh\+Type \&}]{\+\_\+m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}}\label{a00440_aa8cf2fa548e0723623306b821b0b01c2}
Move vertices to new positions after the rules have been applied to the mesh (called by \hyperlink{a00440_af65a12b995f0483dd423001c0d5066ec}{subdivide()}). 

Definition at line 150 of file Composite\+T.\+hh.

\hypertarget{a00440_a6a75fc51769d2f972cca10beb52c4494}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}!Vd\+Eg@{Vd\+Eg}}
\index{Vd\+Eg@{Vd\+Eg}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}}
\subsubsection[{Vd\+Eg}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type $>$ void {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}$<$ Mesh\+Type, Real\+Type $>$\+::Vd\+Eg (
\begin{DoxyParamCaption}
\item[{{\bf Coeff} \&}]{\+\_\+coeff}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{a00440_a6a75fc51769d2f972cca10beb52c4494}
Weigthed vertex to edge averaging, using diamond of edges for irregular vertices. 

Definition at line 778 of file Composite\+T.\+cc.

\hypertarget{a00440_a1500a850dcfa332546c202048be25daa}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}!Vd\+Eg@{Vd\+Eg}}
\index{Vd\+Eg@{Vd\+Eg}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}}
\subsubsection[{Vd\+Eg}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type $>$ void {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Composite\+T}$<$ Mesh\+Type, Real\+Type $>$\+::Vd\+Eg (
\begin{DoxyParamCaption}
\item[{scalar\+\_\+t}]{\+\_\+gamma}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{a00440_a1500a850dcfa332546c202048be25daa}
Weigthed vertex to edge averaging, using diamond of edges for irregular vertices. 

Definition at line 719 of file Composite\+T.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Uniform/\+Composite/\hyperlink{a02058}{Composite\+T.\+hh}\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Uniform/\+Composite/\hyperlink{a02056}{Composite\+T.\+cc}\end{DoxyCompactItemize}
