\hypertarget{a01328}{\section{Triangle\+B\+S\+P\+Core\+T$<$ B\+S\+P\+Traits $>$ Class Template Reference}
\label{a01328}\index{Triangle\+B\+S\+P\+Core\+T$<$ B\+S\+P\+Traits $>$@{Triangle\+B\+S\+P\+Core\+T$<$ B\+S\+P\+Traits $>$}}
}
Inheritance diagram for Triangle\+B\+S\+P\+Core\+T$<$ B\+S\+P\+Traits $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a01328}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01328_aaabd25ea6f49abda72a5db3bde880eeb}{typedef B\+S\+P\+Traits {\bfseries Traits}}\label{a01328_aaabd25ea6f49abda72a5db3bde880eeb}

\item 
\hypertarget{a01328_ae7072c4f755b39fd9ddcdef15f3cf1b5}{typedef B\+S\+P\+Traits\+::\+Point {\bfseries Point}}\label{a01328_ae7072c4f755b39fd9ddcdef15f3cf1b5}

\item 
\hypertarget{a01328_a0478fd26b19ced22a2823bdaa49a8873}{typedef B\+S\+P\+Traits\+::\+Handle {\bfseries Handle}}\label{a01328_a0478fd26b19ced22a2823bdaa49a8873}

\item 
\hypertarget{a01328_ae34b8edf69432ac45571dd51db988316}{typedef B\+S\+P\+Traits\+::\+Node {\bfseries Node}}\label{a01328_ae34b8edf69432ac45571dd51db988316}

\item 
\hypertarget{a01328_a2e6e7e0fccaf9dc2b9801c88987ea273}{typedef Point\+::value\+\_\+type {\bfseries Scalar}}\label{a01328_a2e6e7e0fccaf9dc2b9801c88987ea273}

\item 
\hypertarget{a01328_a20527c6b063183acff0488aeb4219bf0}{typedef \hyperlink{a00966}{A\+C\+G\+::\+Geometry\+::\+Plane\+T}\\*
$<$ Scalar $>$ {\bfseries Plane}}\label{a01328_a20527c6b063183acff0488aeb4219bf0}

\item 
\hypertarget{a01328_aee5f88bd344c3236f44b4509b883df05}{typedef std\+::vector$<$ Handle $>$ {\bfseries Handles}}\label{a01328_aee5f88bd344c3236f44b4509b883df05}

\item 
\hypertarget{a01328_a5ab718288a87ae164c46d0f2c1990caa}{typedef Handles\+::iterator {\bfseries Handle\+Iter}}\label{a01328_a5ab718288a87ae164c46d0f2c1990caa}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a01328_a3df42c4ef8987709ecc6bb403b2cc573}{Triangle\+B\+S\+P\+Core\+T} (const B\+S\+P\+Traits \&\+\_\+traits)
\item 
\hypertarget{a01328_a0e1414c16055d3e9e6ab5d11e497991f}{\hyperlink{a01328_a0e1414c16055d3e9e6ab5d11e497991f}{$\sim$\+Triangle\+B\+S\+P\+Core\+T} ()}\label{a01328_a0e1414c16055d3e9e6ab5d11e497991f}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a01328_aec48cfc42a7aaa45d7023876fda60c15}{void \hyperlink{a01328_aec48cfc42a7aaa45d7023876fda60c15}{reserve} (size\+\_\+t \+\_\+n)}\label{a01328_aec48cfc42a7aaa45d7023876fda60c15}

\begin{DoxyCompactList}\small\item\em Reserve memory for \+\_\+n entries. \end{DoxyCompactList}\item 
\hypertarget{a01328_ac53e7d1cc31f797273cfae3055385d3d}{void \hyperlink{a01328_ac53e7d1cc31f797273cfae3055385d3d}{push\+\_\+back} (Handle \+\_\+h)}\label{a01328_ac53e7d1cc31f797273cfae3055385d3d}

\begin{DoxyCompactList}\small\item\em Add a handle to the B\+S\+P. \end{DoxyCompactList}\item 
bool \hyperlink{a01328_a41f447903c024b3447c38d747b7e225a}{empty} ()
\item 
size\+\_\+t \hyperlink{a01328_a1360c94c3c07a7ffa3b3e00cc4216ff4}{size} ()
\item 
void \hyperlink{a01328_a8b1dc19fee411c5c5ece02148e5dd8ba}{build} (unsigned int \+\_\+max\+\_\+handles, unsigned int \+\_\+max\+\_\+depth)
\item 
{\footnotesize template$<$typename Mesh\+T $>$ }\\void \hyperlink{a01328_ac87565b0eeec82b977d4016a11deff09}{visualize\+Tree} (Mesh\+T $\ast$\+\_\+object, int \+\_\+max\+\_\+depth)
\begin{DoxyCompactList}\small\item\em Create a Poly\+Mesh object that visualizes the bounding boxes of the B\+S\+P tree. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01328_a0c7451683398efbb474d027fc16b9e62}{B\+S\+P\+Traits {\bfseries traits\+\_\+}}\label{a01328_a0c7451683398efbb474d027fc16b9e62}

\item 
\hypertarget{a01328_ac5f519de63ffd6f52cff8bb9af0c0dfe}{Handles {\bfseries handles\+\_\+}}\label{a01328_ac5f519de63ffd6f52cff8bb9af0c0dfe}

\item 
\hypertarget{a01328_adc462a4e593792177ccb2b2426566a77}{Node $\ast$ {\bfseries root\+\_\+}}\label{a01328_adc462a4e593792177ccb2b2426566a77}

\item 
\hypertarget{a01328_ac71ac8146f4f3288ce99b391d9408776}{int {\bfseries nodes}}\label{a01328_ac71ac8146f4f3288ce99b391d9408776}

\item 
\hypertarget{a01328_aabf7ab261eb027cffca9e71934985212}{int {\bfseries n\+\_\+triangles}}\label{a01328_aabf7ab261eb027cffca9e71934985212}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01328_a6aaa8cfa7addbf511d6e965aa6fa8838}{{\bfseries Triangle\+B\+S\+P\+Core\+T} (const \hyperlink{a01328}{Triangle\+B\+S\+P\+Core\+T} \&rhs)}\label{a01328_a6aaa8cfa7addbf511d6e965aa6fa8838}

\item 
\hypertarget{a01328_af6ea59ed713f5d92ac2746dda51df58b}{\hyperlink{a01328}{Triangle\+B\+S\+P\+Core\+T} \& {\bfseries operator=} (const \hyperlink{a01328}{Triangle\+B\+S\+P\+Core\+T} \&rhs)}\label{a01328_af6ea59ed713f5d92ac2746dda51df58b}

\item 
\hypertarget{a01328_ab27237d095ae7c46911ae144eafd9404}{void {\bfseries \+\_\+build} (Node $\ast$\+\_\+node, unsigned int \+\_\+max\+\_\+handles, unsigned int \+\_\+depth)}\label{a01328_ab27237d095ae7c46911ae144eafd9404}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class B\+S\+P\+Traits$>$class Triangle\+B\+S\+P\+Core\+T$<$ B\+S\+P\+Traits $>$}



Definition at line 77 of file Triangle\+B\+S\+P\+Core\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a01328_a3df42c4ef8987709ecc6bb403b2cc573}{\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\subsubsection[{Triangle\+B\+S\+P\+Core\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class B\+S\+P\+Traits$>$ {\bf Triangle\+B\+S\+P\+Core\+T}$<$ B\+S\+P\+Traits $>$\+::{\bf Triangle\+B\+S\+P\+Core\+T} (
\begin{DoxyParamCaption}
\item[{const B\+S\+P\+Traits \&}]{\+\_\+traits}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01328_a3df42c4ef8987709ecc6bb403b2cc573}
Constructor\+: need traits that define the types and give us the points by traits\+\_\+.\+point(\+Point\+Handle) 

Definition at line 96 of file Triangle\+B\+S\+P\+Core\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01328_a8b1dc19fee411c5c5ece02148e5dd8ba}{\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!build@{build}}
\index{build@{build}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\subsubsection[{build}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class B\+S\+P\+Traits $>$ void {\bf Triangle\+B\+S\+P\+Core\+T}$<$ B\+S\+P\+Traits $>$\+::build (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+max\+\_\+handles, }
\item[{unsigned int}]{\+\_\+max\+\_\+depth}
\end{DoxyParamCaption}
)}}\label{a01328_a8b1dc19fee411c5c5ece02148e5dd8ba}
Build the tree.


\begin{DoxyParams}{Parameters}
{\em \+\_\+max\+\_\+handles} & Maximum number of vertices per leaf. \\
\hline
{\em \+\_\+max\+\_\+depth} & Maximum depth. \\
\hline
\end{DoxyParams}


Definition at line 72 of file Triangle\+B\+S\+P\+Core\+T.\+cc.

\hypertarget{a01328_a41f447903c024b3447c38d747b7e225a}{\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!empty@{empty}}
\index{empty@{empty}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\subsubsection[{empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class B\+S\+P\+Traits$>$ bool {\bf Triangle\+B\+S\+P\+Core\+T}$<$ B\+S\+P\+Traits $>$\+::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01328_a41f447903c024b3447c38d747b7e225a}
\begin{DoxyReturn}{Returns}
\hyperlink{a01328_a1360c94c3c07a7ffa3b3e00cc4216ff4}{size()} == 0 
\end{DoxyReturn}


Definition at line 112 of file Triangle\+B\+S\+P\+Core\+T.\+hh.

\hypertarget{a01328_a1360c94c3c07a7ffa3b3e00cc4216ff4}{\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!size@{size}}
\index{size@{size}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class B\+S\+P\+Traits$>$ size\+\_\+t {\bf Triangle\+B\+S\+P\+Core\+T}$<$ B\+S\+P\+Traits $>$\+::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01328_a1360c94c3c07a7ffa3b3e00cc4216ff4}
\begin{DoxyReturn}{Returns}
The number of triangles contained in the tree. 
\end{DoxyReturn}


Definition at line 117 of file Triangle\+B\+S\+P\+Core\+T.\+hh.

\hypertarget{a01328_ac87565b0eeec82b977d4016a11deff09}{\index{Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}!visualize\+Tree@{visualize\+Tree}}
\index{visualize\+Tree@{visualize\+Tree}!Triangle\+B\+S\+P\+Core\+T@{Triangle\+B\+S\+P\+Core\+T}}
\subsubsection[{visualize\+Tree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class B\+S\+P\+Traits$>$ template$<$typename Mesh\+T $>$ void {\bf Triangle\+B\+S\+P\+Core\+T}$<$ B\+S\+P\+Traits $>$\+::visualize\+Tree (
\begin{DoxyParamCaption}
\item[{Mesh\+T $\ast$}]{\+\_\+object, }
\item[{int}]{\+\_\+max\+\_\+depth}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01328_ac87565b0eeec82b977d4016a11deff09}


Create a Poly\+Mesh object that visualizes the bounding boxes of the B\+S\+P tree. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object} & The output mesh which the tree will be written into \\
\hline
{\em \+\_\+max\+\_\+depth} & The maximal depth that will be visualized \\
\hline
\end{DoxyParams}


Definition at line 132 of file Triangle\+B\+S\+P\+Core\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+Geometry/bsp/Triangle\+B\+S\+P\+Core\+T.\+hh\item 
A\+C\+G/\+Geometry/bsp/Triangle\+B\+S\+P\+Core\+T.\+cc\end{DoxyCompactItemize}
