\hypertarget{a00376}{\section{A\+C\+G\+:\+:B\+Spline\+Curve\+T$<$ Point\+T $>$ Class Template Reference}
\label{a00376}\index{A\+C\+G\+::\+B\+Spline\+Curve\+T$<$ Point\+T $>$@{A\+C\+G\+::\+B\+Spline\+Curve\+T$<$ Point\+T $>$}}
}


{\ttfamily \#include $<$A\+C$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00376_a3015085f47381c6079e999eb941e0f6d}{typedef Point\+T {\bfseries Point}}\label{a00376_a3015085f47381c6079e999eb941e0f6d}

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

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00376_a5276a7963260d10e607897b323e05acf}{\hyperlink{a00376_a5276a7963260d10e607897b323e05acf}{B\+Spline\+Curve\+T} (unsigned int \+\_\+degree=3)}\label{a00376_a5276a7963260d10e607897b323e05acf}

\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hypertarget{a00376_a66718e323b9e44b5084c3ca190099ad0}{\hyperlink{a00376_a66718e323b9e44b5084c3ca190099ad0}{B\+Spline\+Curve\+T} (const \hyperlink{a00376}{B\+Spline\+Curve\+T} \&\+\_\+curve)}\label{a00376_a66718e323b9e44b5084c3ca190099ad0}

\begin{DoxyCompactList}\small\item\em Copy Constructor. \end{DoxyCompactList}\item 
\hypertarget{a00376_a7a1bf4640d8ed71efd22f161ae5e71ae}{\hyperlink{a00376_a7a1bf4640d8ed71efd22f161ae5e71ae}{$\sim$\+B\+Spline\+Curve\+T} ()}\label{a00376_a7a1bf4640d8ed71efd22f161ae5e71ae}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00376_ae88ce193d90e6f9ec6c0b201bd15850b}{std\+::vector$<$ Scalar $>$ \& \hyperlink{a00376_ae88ce193d90e6f9ec6c0b201bd15850b}{get\+\_\+knots} ()}\label{a00376_ae88ce193d90e6f9ec6c0b201bd15850b}

\begin{DoxyCompactList}\small\item\em get the knotvector of the bspline curve \end{DoxyCompactList}\item 
\hypertarget{a00376_a56125a41fd49eb3498499d562c80696f}{void \hyperlink{a00376_a56125a41fd49eb3498499d562c80696f}{set\+\_\+knots} (std\+::vector$<$ Scalar $>$ \+\_\+knots)}\label{a00376_a56125a41fd49eb3498499d562c80696f}

\begin{DoxyCompactList}\small\item\em set the knotvector of the bspline curve \end{DoxyCompactList}\item 
\hypertarget{a00376_a4077bb5256b3c0d126d0b905e343b4f1}{\hyperlink{a00759}{Knotvector} $\ast$ \hyperlink{a00376_a4077bb5256b3c0d126d0b905e343b4f1}{get\+\_\+knotvector\+\_\+ref} ()}\label{a00376_a4077bb5256b3c0d126d0b905e343b4f1}

\begin{DoxyCompactList}\small\item\em get a reference to the knotvector \end{DoxyCompactList}\item 
\hypertarget{a00376_a26cca569876dc782a8e2cbdc28871531}{void \hyperlink{a00376_a26cca569876dc782a8e2cbdc28871531}{set\+\_\+knotvector\+\_\+type} (Knotvector\+::\+Knotvector\+Type \+\_\+type)}\label{a00376_a26cca569876dc782a8e2cbdc28871531}

\begin{DoxyCompactList}\small\item\em set type of knotvector \end{DoxyCompactList}\item 
\hypertarget{a00376_a9cedab0a5c7cf566b27513d1086f77b1}{Scalar \hyperlink{a00376_a9cedab0a5c7cf566b27513d1086f77b1}{get\+\_\+knot} (int \+\_\+i)}\label{a00376_a9cedab0a5c7cf566b27513d1086f77b1}

\begin{DoxyCompactList}\small\item\em get knot i \end{DoxyCompactList}\item 
\hypertarget{a00376_ac1d4cf2de1de6f0cc2988ed4836ac765}{Point \& \hyperlink{a00376_ac1d4cf2de1de6f0cc2988ed4836ac765}{get\+\_\+control\+\_\+point} (int \+\_\+i)}\label{a00376_ac1d4cf2de1de6f0cc2988ed4836ac765}

\begin{DoxyCompactList}\small\item\em get control point i \end{DoxyCompactList}\item 
\hypertarget{a00376_a3dbc2b3de2aa1b84c1775cc8ccd8f891}{void \hyperlink{a00376_a3dbc2b3de2aa1b84c1775cc8ccd8f891}{add\+\_\+control\+\_\+point} (const Point \&\+\_\+cp)}\label{a00376_a3dbc2b3de2aa1b84c1775cc8ccd8f891}

\begin{DoxyCompactList}\small\item\em add a control point \end{DoxyCompactList}\item 
\hypertarget{a00376_aad64e278e5f04a9d7a4e0c7100cfdd3b}{void \hyperlink{a00376_aad64e278e5f04a9d7a4e0c7100cfdd3b}{insert\+\_\+control\+\_\+point} (int \+\_\+idx, const Point \&\+\_\+cp)}\label{a00376_aad64e278e5f04a9d7a4e0c7100cfdd3b}

\begin{DoxyCompactList}\small\item\em insert a control point at given index \end{DoxyCompactList}\item 
\hypertarget{a00376_a74f255d05b4121ebb2b6713e7b703df3}{void \hyperlink{a00376_a74f255d05b4121ebb2b6713e7b703df3}{delete\+\_\+control\+\_\+point} (int \+\_\+idx)}\label{a00376_a74f255d05b4121ebb2b6713e7b703df3}

\begin{DoxyCompactList}\small\item\em delete control point at given index \end{DoxyCompactList}\item 
\hypertarget{a00376_ab3def9c46c443bf10e7e1e5f14c62ef1}{void \hyperlink{a00376_ab3def9c46c443bf10e7e1e5f14c62ef1}{set\+\_\+control\+\_\+point} (int \+\_\+idx, const Point \&\+\_\+cp)}\label{a00376_ab3def9c46c443bf10e7e1e5f14c62ef1}

\begin{DoxyCompactList}\small\item\em reset a control point \end{DoxyCompactList}\item 
\hypertarget{a00376_ac15da84f6d200206955450b313a90077}{void \hyperlink{a00376_ac15da84f6d200206955450b313a90077}{set\+\_\+control\+\_\+polygon} (std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon)}\label{a00376_ac15da84f6d200206955450b313a90077}

\begin{DoxyCompactList}\small\item\em set whole control polygon \end{DoxyCompactList}\item 
\hypertarget{a00376_af773cbf4d3cd7509a5e0930feea5ce95}{void \hyperlink{a00376_af773cbf4d3cd7509a5e0930feea5ce95}{reset\+\_\+control\+\_\+polygon} ()}\label{a00376_af773cbf4d3cd7509a5e0930feea5ce95}

\begin{DoxyCompactList}\small\item\em Clears the control polygon. \end{DoxyCompactList}\item 
\hypertarget{a00376_a2f867fb7c547e85546b4c095ccd17206}{void \hyperlink{a00376_a2f867fb7c547e85546b4c095ccd17206}{print} () const }\label{a00376_a2f867fb7c547e85546b4c095ccd17206}

\begin{DoxyCompactList}\small\item\em print information string \end{DoxyCompactList}\item 
Point \hyperlink{a00376_abf519780ac56f1c241ec963a2cb6bb46}{curve\+Point} (Scalar \+\_\+u)
\item 
Point \hyperlink{a00376_ac5880caa553e7b5f1c2a97229f0f9ed0}{derivative\+Curve\+Point} (Scalar \+\_\+u, unsigned int \+\_\+der)
\item 
std\+::vector$<$ Point $>$ \hyperlink{a00376_a7b523c6154ecc27283979b542e89ed08}{de\+Boor\+Algorithm} (double \+\_\+u)
\item 
\hypertarget{a00376_ab0b96354dc3059cc38082d0e5cb36426}{void \hyperlink{a00376_ab0b96354dc3059cc38082d0e5cb36426}{insert\+Knot} (double \+\_\+u)}\label{a00376_ab0b96354dc3059cc38082d0e5cb36426}

\begin{DoxyCompactList}\small\item\em Inserts a new knot at parameter u. \end{DoxyCompactList}\item 
\hypertarget{a00376_a179e7f99ef74a8c872667db2f89064ef}{unsigned int \hyperlink{a00376_a179e7f99ef74a8c872667db2f89064ef}{n\+\_\+control\+\_\+points} () const }\label{a00376_a179e7f99ef74a8c872667db2f89064ef}

\begin{DoxyCompactList}\small\item\em Returns the number of control points. \end{DoxyCompactList}\item 
\hypertarget{a00376_ae44df7c2d2b1772ac2032809cc762647}{unsigned int \hyperlink{a00376_ae44df7c2d2b1772ac2032809cc762647}{n\+\_\+knots} () const }\label{a00376_ae44df7c2d2b1772ac2032809cc762647}

\begin{DoxyCompactList}\small\item\em Returns the number of knots. \end{DoxyCompactList}\item 
\hypertarget{a00376_a5e5a73e33cd63b944505b061d333776c}{unsigned int \hyperlink{a00376_a5e5a73e33cd63b944505b061d333776c}{degree} () const }\label{a00376_a5e5a73e33cd63b944505b061d333776c}

\begin{DoxyCompactList}\small\item\em Returns the spline degree. \end{DoxyCompactList}\item 
\hypertarget{a00376_a607219e6c78a77df1e259a4289cb9548}{void \hyperlink{a00376_a607219e6c78a77df1e259a4289cb9548}{set\+\_\+degree} (unsigned int \+\_\+degree)}\label{a00376_a607219e6c78a77df1e259a4289cb9548}

\begin{DoxyCompactList}\small\item\em Sets the spline degree. \end{DoxyCompactList}\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00376_a75eeb9e14eb31ea4a81fdfaa7fb28073}{span} (double \+\_\+t)
\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00376_a752f3ce70682f41baccd8dbb9339a585}{interval} (double \+\_\+t)
\item 
\hypertarget{a00376_ab8bcfeb91f06fdc582a00296771db9f6}{void {\bfseries autocompute\+\_\+knotvector} (bool \+\_\+auto)}\label{a00376_ab8bcfeb91f06fdc582a00296771db9f6}

\item 
\hypertarget{a00376_ab08923cf506ce4b65e13a13bd81abc80}{void {\bfseries fix\+Number\+Of\+Control\+Points} (bool \+\_\+fix)}\label{a00376_ab08923cf506ce4b65e13a13bd81abc80}

\item 
bool \hyperlink{a00376_a29b1ce7b72cbf137522222ab27b961ca}{projected} ()
\begin{DoxyCompactList}\small\item\em projected \end{DoxyCompactList}\item 
\hypertarget{a00376_a7afc7aef87f5a11b8d4de70d6c096775}{void \hyperlink{a00376_a7afc7aef87f5a11b8d4de70d6c096775}{reverse} ()}\label{a00376_a7afc7aef87f5a11b8d4de70d6c096775}

\begin{DoxyCompactList}\small\item\em Reverses the curve. \end{DoxyCompactList}\item 
Scalar \hyperlink{a00376_ad723ac106cd1beb2f9f3414d08975a8c}{basis\+Function} (int \+\_\+i, int \+\_\+n, Scalar \+\_\+t)
\item 
Scalar \hyperlink{a00376_a72d3801f04b04fabd962da59c1160851}{derivative\+Basis\+Function} (int \+\_\+i, int \+\_\+n, Scalar \+\_\+t, int \+\_\+der)
\item 
\hypertarget{a00376_af140a72d6e7630eecfba8c3044ea305b}{Scalar \hyperlink{a00376_af140a72d6e7630eecfba8c3044ea305b}{lower} () const }\label{a00376_af140a72d6e7630eecfba8c3044ea305b}

\begin{DoxyCompactList}\small\item\em Returns the lower parameter. \end{DoxyCompactList}\item 
\hypertarget{a00376_a72e7c499bf30a2abda8d6b48ac6a58b4}{Scalar \hyperlink{a00376_a72e7c499bf30a2abda8d6b48ac6a58b4}{upper} () const }\label{a00376_a72e7c499bf30a2abda8d6b48ac6a58b4}

\begin{DoxyCompactList}\small\item\em Returns the upper parameter. \end{DoxyCompactList}\item 
\hypertarget{a00376_a1222fe5ca8b5dc317f55c866f2c14722}{void {\bfseries request\+\_\+controlpoint\+\_\+selections} ()}\label{a00376_a1222fe5ca8b5dc317f55c866f2c14722}

\item 
\hypertarget{a00376_a6d6cf6a7a974ce35dd54e2be850e6c6e}{void {\bfseries request\+\_\+edge\+\_\+selections} ()}\label{a00376_a6d6cf6a7a974ce35dd54e2be850e6c6e}

\item 
\hypertarget{a00376_aa539434fc7a2d4e93fa6dc1b4a23bd39}{void {\bfseries release\+\_\+controlpoint\+\_\+selections} ()}\label{a00376_aa539434fc7a2d4e93fa6dc1b4a23bd39}

\item 
\hypertarget{a00376_a345a381656364c38c49ee42a0bc94481}{void {\bfseries release\+\_\+edge\+\_\+selections} ()}\label{a00376_a345a381656364c38c49ee42a0bc94481}

\item 
\hypertarget{a00376_a4f834131055f54de7b4e661840f2d16b}{bool {\bfseries controlpoint\+\_\+selections\+\_\+available} () const }\label{a00376_a4f834131055f54de7b4e661840f2d16b}

\item 
\hypertarget{a00376_ae4e9a564bec4bbca1c3cb653dcb38008}{bool {\bfseries edge\+\_\+selections\+\_\+available} () const }\label{a00376_ae4e9a564bec4bbca1c3cb653dcb38008}

\item 
\hypertarget{a00376_a6f404e21981badd81cd324ab262a291d}{unsigned char \& {\bfseries controlpoint\+\_\+selection} (unsigned int \+\_\+i)}\label{a00376_a6f404e21981badd81cd324ab262a291d}

\item 
\hypertarget{a00376_a6f6f0b195ff67090a8a1c600979ec822}{const unsigned char \& {\bfseries controlpoint\+\_\+selection} (unsigned int \+\_\+i) const }\label{a00376_a6f6f0b195ff67090a8a1c600979ec822}

\item 
\hypertarget{a00376_a2ab5d517d42c81255d709d586f94271c}{unsigned char \& {\bfseries edge\+\_\+selection} (unsigned int \+\_\+i)}\label{a00376_a2ab5d517d42c81255d709d586f94271c}

\item 
\hypertarget{a00376_a98d593be82598ddd7ab994cb6de16e45}{const unsigned char \& {\bfseries edge\+\_\+selection} (unsigned int \+\_\+i) const }\label{a00376_a98d593be82598ddd7ab994cb6de16e45}

\item 
\hypertarget{a00376_a62af3cee82830fa8ae090d50a0955b52}{void {\bfseries select\+\_\+controlpoint} (unsigned int \+\_\+p\+Idx)}\label{a00376_a62af3cee82830fa8ae090d50a0955b52}

\item 
\hypertarget{a00376_a24073a9d73bd1482a9fa7ff178eb4515}{void {\bfseries deselect\+\_\+controlpoint} (unsigned int \+\_\+p\+Idx)}\label{a00376_a24073a9d73bd1482a9fa7ff178eb4515}

\item 
\hypertarget{a00376_aa2e2a2b08527437b891872b804f10117}{bool {\bfseries controlpoint\+\_\+selected} (unsigned int \+\_\+p\+Idx) const }\label{a00376_aa2e2a2b08527437b891872b804f10117}

\item 
\hypertarget{a00376_a3f2b7d7c15cc3c0123c2425b6f765edc}{void {\bfseries select\+\_\+edge} (unsigned int \+\_\+p\+Idx)}\label{a00376_a3f2b7d7c15cc3c0123c2425b6f765edc}

\item 
\hypertarget{a00376_acdc8bc45be5eab3a89e1dfc6c512c3f2}{void {\bfseries deselect\+\_\+edge} (unsigned int \+\_\+p\+Idx)}\label{a00376_acdc8bc45be5eab3a89e1dfc6c512c3f2}

\item 
\hypertarget{a00376_ac158116309d5ecac4acdec5d9971200f}{bool {\bfseries edge\+\_\+selected} (unsigned int \+\_\+p\+Idx) const }\label{a00376_ac158116309d5ecac4acdec5d9971200f}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00376_a5bff70d004ebe99727bba55486f114b2}{{\footnotesize template$<$class Prop\+T $>$ }\\void {\bfseries request\+\_\+prop} (unsigned int \&\+\_\+ref\+\_\+count, Prop\+T \&\+\_\+prop)}\label{a00376_a5bff70d004ebe99727bba55486f114b2}

\item 
\hypertarget{a00376_a6ce6bc9b101a9b393f8436ac51cd5c37}{{\footnotesize template$<$class Prop\+T $>$ }\\void {\bfseries release\+\_\+prop} (unsigned int \&\+\_\+ref\+\_\+count, Prop\+T \&\+\_\+prop)}\label{a00376_a6ce6bc9b101a9b393f8436ac51cd5c37}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00376_aa4396a94c2cbf08d0f0f3d55f2ee083b}{std\+::vector$<$ Point $>$ {\bfseries control\+\_\+polygon\+\_\+}}\label{a00376_aa4396a94c2cbf08d0f0f3d55f2ee083b}

\item 
\hypertarget{a00376_ac5cabb8e6591882bc744495fab8565cc}{\hyperlink{a00759}{Knotvector} {\bfseries knotvector\+\_\+}}\label{a00376_ac5cabb8e6591882bc744495fab8565cc}

\item 
\hypertarget{a00376_a30a867f418d0c1f45d7ab14d8175bbc9}{unsigned int {\bfseries degree\+\_\+}}\label{a00376_a30a867f418d0c1f45d7ab14d8175bbc9}

\item 
\hypertarget{a00376_aff6c704c0071c56fe9d1cdfe687253a2}{bool {\bfseries autocompute\+\_\+knotvector\+\_\+}}\label{a00376_aff6c704c0071c56fe9d1cdfe687253a2}

\item 
\hypertarget{a00376_a8e1ae5c573703cc6adb3d9e7981bb631}{bool {\bfseries fix\+\_\+number\+\_\+control\+\_\+points\+\_\+}}\label{a00376_a8e1ae5c573703cc6adb3d9e7981bb631}

\item 
\hypertarget{a00376_a2d7998a53ad39266ed8ec853c7c85f45}{std\+::vector$<$ unsigned char $>$ {\bfseries cpselections\+\_\+}}\label{a00376_a2d7998a53ad39266ed8ec853c7c85f45}

\item 
\hypertarget{a00376_ae4ce14571f69d2051c36ab1c43952497}{std\+::vector$<$ unsigned char $>$ {\bfseries eselections\+\_\+}}\label{a00376_ae4ce14571f69d2051c36ab1c43952497}

\item 
\hypertarget{a00376_a6657c7d0ef42afe88b4e9173b56ddca2}{unsigned int {\bfseries ref\+\_\+count\+\_\+cpselections\+\_\+}}\label{a00376_a6657c7d0ef42afe88b4e9173b56ddca2}

\item 
\hypertarget{a00376_ad3f734d7269420797323c251055c15df}{unsigned int {\bfseries ref\+\_\+count\+\_\+eselections\+\_\+}}\label{a00376_ad3f734d7269420797323c251055c15df}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Point\+T$>$class A\+C\+G\+::\+B\+Spline\+Curve\+T$<$ Point\+T $>$}

/.../\+B\+Spline\+Curve\+T.hh$>$

Brief Description.

A more elaborate description follows. 

Definition at line 88 of file B\+Spline\+Curve\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00376_ad723ac106cd1beb2f9f3414d08975a8c}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!basis\+Function@{basis\+Function}}
\index{basis\+Function@{basis\+Function}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{basis\+Function}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::Scalar {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::basis\+Function (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+i, }
\item[{int}]{\+\_\+n, }
\item[{Scalar}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00376_ad723ac106cd1beb2f9f3414d08975a8c}
A Spline Basis Function 
\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & the i'th basis function \\
\hline
{\em \+\_\+n} & the spline degree \\
\hline
{\em \+\_\+t} & the parameter Returns N\+\_\+i$^\wedge$p(\+\_\+u) \\
\hline
\end{DoxyParams}


Definition at line 341 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_abf519780ac56f1c241ec963a2cb6bb46}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!curve\+Point@{curve\+Point}}
\index{curve\+Point@{curve\+Point}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{curve\+Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::curve\+Point (
\begin{DoxyParamCaption}
\item[{Scalar}]{\+\_\+u}
\end{DoxyParamCaption}
)}}\label{a00376_abf519780ac56f1c241ec963a2cb6bb46}
Evaluates a spline curve at parameter \+\_\+u 
\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the curve point 
\end{DoxyReturn}


Definition at line 286 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_a7b523c6154ecc27283979b542e89ed08}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!de\+Boor\+Algorithm@{de\+Boor\+Algorithm}}
\index{de\+Boor\+Algorithm@{de\+Boor\+Algorithm}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{de\+Boor\+Algorithm}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ std\+::vector$<$ Point\+T $>$ {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::de\+Boor\+Algorithm (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+u}
\end{DoxyParamCaption}
)}}\label{a00376_a7b523c6154ecc27283979b542e89ed08}
Evaluates the curve at parameter u using de\+Boor algorithm. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
triangular array of control points 
\end{DoxyReturn}


Definition at line 407 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_a72d3801f04b04fabd962da59c1160851}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!derivative\+Basis\+Function@{derivative\+Basis\+Function}}
\index{derivative\+Basis\+Function@{derivative\+Basis\+Function}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{derivative\+Basis\+Function}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::Scalar {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::derivative\+Basis\+Function (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+i, }
\item[{int}]{\+\_\+n, }
\item[{Scalar}]{\+\_\+t, }
\item[{int}]{\+\_\+der}
\end{DoxyParamCaption}
)}}\label{a00376_a72d3801f04b04fabd962da59c1160851}
Derivative of a Spline Basis Function 
\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & the i'th basis function \\
\hline
{\em \+\_\+n} & the spline degree \\
\hline
{\em \+\_\+t} & the parameter \\
\hline
{\em \+\_\+der} & the \+\_\+der'th derivative \\
\hline
\end{DoxyParams}


Definition at line 380 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_ac5880caa553e7b5f1c2a97229f0f9ed0}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!derivative\+Curve\+Point@{derivative\+Curve\+Point}}
\index{derivative\+Curve\+Point@{derivative\+Curve\+Point}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{derivative\+Curve\+Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::derivative\+Curve\+Point (
\begin{DoxyParamCaption}
\item[{Scalar}]{\+\_\+u, }
\item[{unsigned int}]{\+\_\+der}
\end{DoxyParamCaption}
)}}\label{a00376_ac5880caa553e7b5f1c2a97229f0f9ed0}
Returns the \+\_\+derm'th derivative of a spline curve 
\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter \\
\hline
{\em \+\_\+der} & the \+\_\+derm'th derivative \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the derivative 
\end{DoxyReturn}


Definition at line 316 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_a752f3ce70682f41baccd8dbb9339a585}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!interval@{interval}}
\index{interval@{interval}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{interval}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::interval (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00376_a752f3ce70682f41baccd8dbb9339a585}
returns the index of the knots u and u+1 such that t in \mbox{[}u, u+1) 
\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & the parameter \\
\hline
\end{DoxyParams}


Definition at line 493 of file B\+Spline\+Curve\+T.\+cc.

\hypertarget{a00376_a29b1ce7b72cbf137522222ab27b961ca}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!projected@{projected}}
\index{projected@{projected}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{projected}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ bool {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::projected (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00376_a29b1ce7b72cbf137522222ab27b961ca}


projected 

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a03409__todo000056}{Todo}]This is a hack actually. review \end{DoxyRefDesc}


Definition at line 201 of file B\+Spline\+Curve\+T.\+hh.

\hypertarget{a00376_a75eeb9e14eb31ea4a81fdfaa7fb28073}{\index{A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}!span@{span}}
\index{span@{span}!A\+C\+G\+::\+B\+Spline\+Curve\+T@{A\+C\+G\+::\+B\+Spline\+Curve\+T}}
\subsubsection[{span}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Curve\+T}$<$ Point\+T $>$\+::span (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00376_a75eeb9e14eb31ea4a81fdfaa7fb28073}
returns the basis functions which are unequal to zero at parameter t 
\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & the parameter \\
\hline
\end{DoxyParams}


Definition at line 474 of file B\+Spline\+Curve\+T.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Object\+Types/\+B\+Spline\+Curve/B\+Spline\+Curve\+T.\+hh\item 
Object\+Types/\+B\+Spline\+Curve/B\+Spline\+Curve\+T.\+cc\end{DoxyCompactItemize}
