\hypertarget{classOctree}{\section{Octree$<$ Value\-Type $>$ Class Template Reference}
\label{classOctree}\index{Octree$<$ Value\-Type $>$@{Octree$<$ Value\-Type $>$}}
}


{\ttfamily \#include $<$Octree.\-hpp$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
double \hyperlink{classOctree_ac9415653f1ac33c13f6cbe3b388ea129}{Ray\-Trace} (const \hyperlink{structVector}{Vector} \&start\-Point, const \hyperlink{structVector}{Vector} \&direction\-Vector) const 
\item 
Value\-Type \hyperlink{classOctree_a30d43378b4aba488b42f169ddd3abf23}{Query} (const \hyperlink{structVector}{Vector} \&query\-Point) const 
\item 
double \hyperlink{classOctree_a0fc5c39c06a87a72e218f02949ed4c61}{Interpolating\-Query} (const \hyperlink{structVector}{Vector} \&query\-Point) const 
\item 
\hyperlink{classOctree_a2029ea7ed17de516f0ead4710a03b7a4}{Octree} ()
\item 
\hyperlink{classOctree_ad3546114ff80f9321336415b2e4e68d8}{Octree} (const \hyperlink{classOctree}{Octree}$<$ Value\-Type $>$ \&octree\-To\-Copy)
\item 
\hyperlink{classOctree_a83bdc11d5b4bd24cd975a88a81e1f29b}{Octree} (const \hyperlink{structVector}{Vector} \&desired\-Resolution, const \hyperlink{structVector}{Vector} \&lower\-Bounds, const \hyperlink{structVector}{Vector} \&upper\-Bounds, const \hyperlink{namespaceOctreeType_a314f8981edb58288dc66b74f0728ed8c}{Octree\-Type\-::\-Enum\-Octree\-Type} octree\-Type)
\item 
\hyperlink{classOctree}{Octree} \& \hyperlink{classOctree_aa270c9c244b07ba0e8a7671010c98aff}{operator=} (\hyperlink{classOctree}{Octree}$<$ Value\-Type $>$ right\-Hand\-Side)
\item 
\hyperlink{classOctree_af12f989f60a3ef89c287760eb0a64add}{$\sim$\-Octree} ()
\item 
bool \hyperlink{classOctree_ac5b5048f360fa00d9d673a34fa23a044}{Add\-Point} (const \hyperlink{structVector}{Vector} \&point)
\item 
long \hyperlink{classOctree_af0e12c2c87280c6406633f2c1ca35501}{Add\-Points} (const \hyperlink{structVector}{Vector} points\mbox{[}$\,$\mbox{]}, const long num\-Points)
\item 
bool \hyperlink{classOctree_a1d8fa4b38cf9a843000a3e5b4a71f1a2}{Add\-Data} (const \hyperlink{structVector}{Vector} point, const Value\-Type data)
\item 
long \hyperlink{classOctree_aa43be7c3c68e9ff791ecb8f57ee322d3}{Add\-Data} (const \hyperlink{structVector}{Vector} points\mbox{[}$\,$\mbox{]}, const Value\-Type data\mbox{[}$\,$\mbox{]}, const long num\-Datas)
\item 
void \hyperlink{classOctree_aa6a3ceca5ac5b7f9828e87345b4c1b72}{Fill\-If\-Empty} (const \hyperlink{structVector}{Vector} \&point, Value\-Type fill\-Value)
\item 
void \hyperlink{classOctree_a020d4307f25d215bea16117e99ecb63e}{Fill\-If\-Empty} (const \hyperlink{structVector}{Vector} points\mbox{[}$\,$\mbox{]}, long num\-Points, Value\-Type fill\-Value)
\item 
void \hyperlink{classOctree_a401f4d12e827ec72252f5915cf9615f4}{Collapse} (void)
\item 
bool \hyperlink{classOctree_a15dbf0bdd9be3f21025d8e8df760dcec}{Save\-To\-File} (const char $\ast$filename) const 
\item 
bool \hyperlink{classOctree_afe84f0a82aba8ac0b793f9703af0cb0b}{Load\-From\-File} (const char $\ast$filename)
\item 
void \hyperlink{classOctree_af528f491097779b24d61f14fa0413eeb}{Print} (void) const 
\item 
\hyperlink{structVector}{Vector} \hyperlink{classOctree_a6316297bd56b9e4a2735a383e9053c87}{Get\-True\-Resolution} (void) const 
\item 
\hyperlink{structVector}{Vector} \hyperlink{classOctree_a74631c88891f82a701eb30d17f01bc64}{Get\-Lower\-Bounds} (void) const 
\item 
\hyperlink{structVector}{Vector} \hyperlink{classOctree_ad1426bc099443a41a332e7eead08edc0}{Get\-Upper\-Bounds} (void) const 
\item 
void \hyperlink{classOctree_a153ee78423b61ac2969f7e92de7e06ca}{Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty} (const \hyperlink{structVector}{Vector} \&point, Value\-Type fill\-Value)
\item 
{\footnotesize template$<$$>$ }\\double \hyperlink{classOctree_ae1250ab8dd1ba075ba149bf823d93a71}{Ray\-Trace} (const \hyperlink{structVector}{Vector} \&start\-Point, const \hyperlink{structVector}{Vector} \&direction\-Vector) const
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classOctree_a8b24235b6b0c86da018f898416ecd2e8}{Octree\-Node}
\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classOctree_a2029ea7ed17de516f0ead4710a03b7a4}{\index{Octree@{Octree}!Octree@{Octree}}
\index{Octree@{Octree}!Octree@{Octree}}
\subsubsection[{Octree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ {\bf Octree}$<$ Value\-Type $>$\-::{\bf Octree} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{classOctree_a2029ea7ed17de516f0ead4710a03b7a4}
\hypertarget{classOctree_ad3546114ff80f9321336415b2e4e68d8}{\index{Octree@{Octree}!Octree@{Octree}}
\index{Octree@{Octree}!Octree@{Octree}}
\subsubsection[{Octree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Octree}$<$ Value\-Type $>$\-::{\bf Octree} (
\begin{DoxyParamCaption}
\item[{const {\bf Octree}$<$ Value\-Type $>$ \&}]{octree\-To\-Copy}
\end{DoxyParamCaption}
)}}\label{classOctree_ad3546114ff80f9321336415b2e4e68d8}
\hypertarget{classOctree_a83bdc11d5b4bd24cd975a88a81e1f29b}{\index{Octree@{Octree}!Octree@{Octree}}
\index{Octree@{Octree}!Octree@{Octree}}
\subsubsection[{Octree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Octree}$<$ Value\-Type $>$\-::{\bf Octree} (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{desired\-Resolution, }
\item[{const {\bf Vector} \&}]{lower\-Bounds, }
\item[{const {\bf Vector} \&}]{upper\-Bounds, }
\item[{const {\bf Octree\-Type\-::\-Enum\-Octree\-Type}}]{octree\-Type}
\end{DoxyParamCaption}
)}}\label{classOctree_a83bdc11d5b4bd24cd975a88a81e1f29b}
\hypertarget{classOctree_af12f989f60a3ef89c287760eb0a64add}{\index{Octree@{Octree}!$\sim$\-Octree@{$\sim$\-Octree}}
\index{$\sim$\-Octree@{$\sim$\-Octree}!Octree@{Octree}}
\subsubsection[{$\sim$\-Octree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ {\bf Octree}$<$ Value\-Type $>$\-::$\sim${\bf Octree} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{classOctree_af12f989f60a3ef89c287760eb0a64add}


\subsection{Member Function Documentation}
\hypertarget{classOctree_a1d8fa4b38cf9a843000a3e5b4a71f1a2}{\index{Octree@{Octree}!Add\-Data@{Add\-Data}}
\index{Add\-Data@{Add\-Data}!Octree@{Octree}}
\subsubsection[{Add\-Data}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ bool {\bf Octree}$<$ Value\-Type $>$\-::Add\-Data (
\begin{DoxyParamCaption}
\item[{const {\bf Vector}}]{point, }
\item[{const Value\-Type}]{data}
\end{DoxyParamCaption}
)}}\label{classOctree_a1d8fa4b38cf9a843000a3e5b4a71f1a2}
\hypertarget{classOctree_aa43be7c3c68e9ff791ecb8f57ee322d3}{\index{Octree@{Octree}!Add\-Data@{Add\-Data}}
\index{Add\-Data@{Add\-Data}!Octree@{Octree}}
\subsubsection[{Add\-Data}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ long {\bf Octree}$<$ Value\-Type $>$\-::Add\-Data (
\begin{DoxyParamCaption}
\item[{const {\bf Vector}}]{points\mbox{[}$\,$\mbox{]}, }
\item[{const Value\-Type}]{data\mbox{[}$\,$\mbox{]}, }
\item[{const long}]{num\-Datas}
\end{DoxyParamCaption}
)}}\label{classOctree_aa43be7c3c68e9ff791ecb8f57ee322d3}
\hypertarget{classOctree_ac5b5048f360fa00d9d673a34fa23a044}{\index{Octree@{Octree}!Add\-Point@{Add\-Point}}
\index{Add\-Point@{Add\-Point}!Octree@{Octree}}
\subsubsection[{Add\-Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ bool {\bf Octree}$<$ Value\-Type $>$\-::Add\-Point (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{point}
\end{DoxyParamCaption}
)}}\label{classOctree_ac5b5048f360fa00d9d673a34fa23a044}
Adding points\-: Adding points will switch based on the \hyperlink{namespaceOctreeType}{Octree\-Type} for determining what is done as a result of a point being added. See Octree\-Node.\-tcc for the various Add\-Point methods or \hyperlink{Octree_8hpp}{Octree.\-hpp} for a description of the \hyperlink{classOctree}{Octree} Types. The return indicates the number of points added.

If the point is outside the bounds of the \hyperlink{classOctree}{Octree}, it expands to include the new point. This is not recomended as it can result in unnecessarily large Octrees. \hypertarget{classOctree_af0e12c2c87280c6406633f2c1ca35501}{\index{Octree@{Octree}!Add\-Points@{Add\-Points}}
\index{Add\-Points@{Add\-Points}!Octree@{Octree}}
\subsubsection[{Add\-Points}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ long {\bf Octree}$<$ Value\-Type $>$\-::Add\-Points (
\begin{DoxyParamCaption}
\item[{const {\bf Vector}}]{points\mbox{[}$\,$\mbox{]}, }
\item[{const long}]{num\-Points}
\end{DoxyParamCaption}
)}}\label{classOctree_af0e12c2c87280c6406633f2c1ca35501}
\hypertarget{classOctree_a401f4d12e827ec72252f5915cf9615f4}{\index{Octree@{Octree}!Collapse@{Collapse}}
\index{Collapse@{Collapse}!Octree@{Octree}}
\subsubsection[{Collapse}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ void {\bf Octree}$<$ Value\-Type $>$\-::Collapse (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{classOctree_a401f4d12e827ec72252f5915cf9615f4}
\hypertarget{classOctree_aa6a3ceca5ac5b7f9828e87345b4c1b72}{\index{Octree@{Octree}!Fill\-If\-Empty@{Fill\-If\-Empty}}
\index{Fill\-If\-Empty@{Fill\-If\-Empty}!Octree@{Octree}}
\subsubsection[{Fill\-If\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ void {\bf Octree}$<$ Value\-Type $>$\-::Fill\-If\-Empty (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{point, }
\item[{Value\-Type}]{fill\-Value}
\end{DoxyParamCaption}
)}}\label{classOctree_aa6a3ceca5ac5b7f9828e87345b4c1b72}
\hypertarget{classOctree_a020d4307f25d215bea16117e99ecb63e}{\index{Octree@{Octree}!Fill\-If\-Empty@{Fill\-If\-Empty}}
\index{Fill\-If\-Empty@{Fill\-If\-Empty}!Octree@{Octree}}
\subsubsection[{Fill\-If\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ void {\bf Octree}$<$ Value\-Type $>$\-::Fill\-If\-Empty (
\begin{DoxyParamCaption}
\item[{const {\bf Vector}}]{points\mbox{[}$\,$\mbox{]}, }
\item[{long}]{num\-Points, }
\item[{Value\-Type}]{fill\-Value}
\end{DoxyParamCaption}
)}}\label{classOctree_a020d4307f25d215bea16117e99ecb63e}
\hypertarget{classOctree_a153ee78423b61ac2969f7e92de7e06ca}{\index{Octree@{Octree}!Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty@{Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty}}
\index{Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty@{Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty}!Octree@{Octree}}
\subsubsection[{Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ void {\bf Octree}$<$ Value\-Type $>$\-::Fill\-Smallest\-Resolution\-Leaf\-At\-Point\-If\-Empty (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{point, }
\item[{Value\-Type}]{fill\-Value}
\end{DoxyParamCaption}
)}}\label{classOctree_a153ee78423b61ac2969f7e92de7e06ca}
\hypertarget{classOctree_a74631c88891f82a701eb30d17f01bc64}{\index{Octree@{Octree}!Get\-Lower\-Bounds@{Get\-Lower\-Bounds}}
\index{Get\-Lower\-Bounds@{Get\-Lower\-Bounds}!Octree@{Octree}}
\subsubsection[{Get\-Lower\-Bounds}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Vector} {\bf Octree}$<$ Value\-Type $>$\-::Get\-Lower\-Bounds (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classOctree_a74631c88891f82a701eb30d17f01bc64}
\hypertarget{classOctree_a6316297bd56b9e4a2735a383e9053c87}{\index{Octree@{Octree}!Get\-True\-Resolution@{Get\-True\-Resolution}}
\index{Get\-True\-Resolution@{Get\-True\-Resolution}!Octree@{Octree}}
\subsubsection[{Get\-True\-Resolution}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Vector} {\bf Octree}$<$ Value\-Type $>$\-::Get\-True\-Resolution (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classOctree_a6316297bd56b9e4a2735a383e9053c87}
\hypertarget{classOctree_ad1426bc099443a41a332e7eead08edc0}{\index{Octree@{Octree}!Get\-Upper\-Bounds@{Get\-Upper\-Bounds}}
\index{Get\-Upper\-Bounds@{Get\-Upper\-Bounds}!Octree@{Octree}}
\subsubsection[{Get\-Upper\-Bounds}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Vector} {\bf Octree}$<$ Value\-Type $>$\-::Get\-Upper\-Bounds (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classOctree_ad1426bc099443a41a332e7eead08edc0}
\hypertarget{classOctree_a0fc5c39c06a87a72e218f02949ed4c61}{\index{Octree@{Octree}!Interpolating\-Query@{Interpolating\-Query}}
\index{Interpolating\-Query@{Interpolating\-Query}!Octree@{Octree}}
\subsubsection[{Interpolating\-Query}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ double {\bf Octree}$<$ Value\-Type $>$\-::Interpolating\-Query (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{query\-Point}
\end{DoxyParamCaption}
) const}}\label{classOctree_a0fc5c39c06a87a72e218f02949ed4c61}
\hypertarget{classOctree_afe84f0a82aba8ac0b793f9703af0cb0b}{\index{Octree@{Octree}!Load\-From\-File@{Load\-From\-File}}
\index{Load\-From\-File@{Load\-From\-File}!Octree@{Octree}}
\subsubsection[{Load\-From\-File}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ bool {\bf Octree}$<$ Value\-Type $>$\-::Load\-From\-File (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{filename}
\end{DoxyParamCaption}
)}}\label{classOctree_afe84f0a82aba8ac0b793f9703af0cb0b}
\hypertarget{classOctree_aa270c9c244b07ba0e8a7671010c98aff}{\index{Octree@{Octree}!operator=@{operator=}}
\index{operator=@{operator=}!Octree@{Octree}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ {\bf Octree}$<$ Value\-Type $>$ \& {\bf Octree}$<$ Value\-Type $>$\-::operator= (
\begin{DoxyParamCaption}
\item[{{\bf Octree}$<$ Value\-Type $>$}]{right\-Hand\-Side}
\end{DoxyParamCaption}
)}}\label{classOctree_aa270c9c244b07ba0e8a7671010c98aff}
\hypertarget{classOctree_af528f491097779b24d61f14fa0413eeb}{\index{Octree@{Octree}!Print@{Print}}
\index{Print@{Print}!Octree@{Octree}}
\subsubsection[{Print}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ void {\bf Octree}$<$ Value\-Type $>$\-::Print (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
) const}}\label{classOctree_af528f491097779b24d61f14fa0413eeb}
\hypertarget{classOctree_a30d43378b4aba488b42f169ddd3abf23}{\index{Octree@{Octree}!Query@{Query}}
\index{Query@{Query}!Octree@{Octree}}
\subsubsection[{Query}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ Value\-Type {\bf Octree}$<$ Value\-Type $>$\-::Query (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{query\-Point}
\end{DoxyParamCaption}
) const}}\label{classOctree_a30d43378b4aba488b42f169ddd3abf23}
\hypertarget{classOctree_ac9415653f1ac33c13f6cbe3b388ea129}{\index{Octree@{Octree}!Ray\-Trace@{Ray\-Trace}}
\index{Ray\-Trace@{Ray\-Trace}!Octree@{Octree}}
\subsubsection[{Ray\-Trace}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ double {\bf Octree}$<$ Value\-Type $>$\-::Ray\-Trace (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{start\-Point, }
\item[{const {\bf Vector} \&}]{direction\-Vector}
\end{DoxyParamCaption}
) const}}\label{classOctree_ac9415653f1ac33c13f6cbe3b388ea129}
\hypertarget{classOctree_ae1250ab8dd1ba075ba149bf823d93a71}{\index{Octree@{Octree}!Ray\-Trace@{Ray\-Trace}}
\index{Ray\-Trace@{Ray\-Trace}!Octree@{Octree}}
\subsubsection[{Ray\-Trace}]{\setlength{\rightskip}{0pt plus 5cm}template$<$$>$ double {\bf Octree}$<$ {\bf Planar\-Fit\-Node} $>$\-::Ray\-Trace (
\begin{DoxyParamCaption}
\item[{const {\bf Vector} \&}]{start\-Point, }
\item[{const {\bf Vector} \&}]{direction\-Vector}
\end{DoxyParamCaption}
) const}}\label{classOctree_ae1250ab8dd1ba075ba149bf823d93a71}
\hypertarget{classOctree_a15dbf0bdd9be3f21025d8e8df760dcec}{\index{Octree@{Octree}!Save\-To\-File@{Save\-To\-File}}
\index{Save\-To\-File@{Save\-To\-File}!Octree@{Octree}}
\subsubsection[{Save\-To\-File}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type $>$ bool {\bf Octree}$<$ Value\-Type $>$\-::Save\-To\-File (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{filename}
\end{DoxyParamCaption}
) const}}\label{classOctree_a15dbf0bdd9be3f21025d8e8df760dcec}


\subsection{Friends And Related Function Documentation}
\hypertarget{classOctree_a8b24235b6b0c86da018f898416ecd2e8}{\index{Octree@{Octree}!Octree\-Node@{Octree\-Node}}
\index{Octree\-Node@{Octree\-Node}!Octree@{Octree}}
\subsubsection[{Octree\-Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Value\-Type$>$ friend class Octree\-Node\hspace{0.3cm}{\ttfamily [friend]}}}\label{classOctree_a8b24235b6b0c86da018f898416ecd2e8}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{Octree_8hpp}{Octree.\-hpp}\item 
\hyperlink{Octree_8cpp}{Octree.\-cpp}\end{DoxyCompactItemize}
