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


{\ttfamily \#include $<$Object\+Types/\+B\+Spline\+Surface/\+B\+Spline\+Surface\+T.\+hh$>$}

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

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

\item 
\hypertarget{a00381_a239ed616e963d259c7b4d11f3307ed25}{typedef std\+::vector\\*
$<$ std\+::vector$<$ Point $>$ $>$ {\bfseries Control\+Net}}\label{a00381_a239ed616e963d259c7b4d11f3307ed25}

\item 
\hypertarget{a00381_a4785dd7be37c8cb0151be89fe34b22c8}{typedef std\+::vector\\*
$<$ std\+::vector$<$ unsigned char $>$ $>$ {\bfseries Property\+Net}}\label{a00381_a4785dd7be37c8cb0151be89fe34b22c8}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00381_aff63f3b2876c395c64943c7b7e8c44fe}{B\+Spline\+Surface\+T} (unsigned int \+\_\+degm=3, unsigned int \+\_\+degn=3)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a822de0809d38ea95c27e57d0870995c5}{resize} (unsigned int \+\_\+m, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Resizes the spline struct. \end{DoxyCompactList}\item 
\hypertarget{a00381_a38ddcfd9281556f61323eaebb354ab0d}{std\+::vector$<$ Scalar $>$ \& \hyperlink{a00381_a38ddcfd9281556f61323eaebb354ab0d}{get\+\_\+knots\+\_\+m} ()}\label{a00381_a38ddcfd9281556f61323eaebb354ab0d}

\begin{DoxyCompactList}\small\item\em get the knotvector in m direction of the bspline surface \end{DoxyCompactList}\item 
\hypertarget{a00381_a0164cb66271407b3db3636ce9db71fab}{std\+::vector$<$ Scalar $>$ \& \hyperlink{a00381_a0164cb66271407b3db3636ce9db71fab}{get\+\_\+knots\+\_\+n} ()}\label{a00381_a0164cb66271407b3db3636ce9db71fab}

\begin{DoxyCompactList}\small\item\em get the knotvector in m direction of the bspline surface \end{DoxyCompactList}\item 
\hypertarget{a00381_a31f06852c96582f003a9b3e87cd8bed1}{\hyperlink{a00759}{Knotvector} \hyperlink{a00381_a31f06852c96582f003a9b3e87cd8bed1}{get\+\_\+knotvector\+\_\+m} ()}\label{a00381_a31f06852c96582f003a9b3e87cd8bed1}

\begin{DoxyCompactList}\small\item\em Get the knotvector in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a1410d485c7b47c465e928a2d2eb6b021}{\hyperlink{a00759}{Knotvector} \hyperlink{a00381_a1410d485c7b47c465e928a2d2eb6b021}{get\+\_\+knotvector\+\_\+n} ()}\label{a00381_a1410d485c7b47c465e928a2d2eb6b021}

\begin{DoxyCompactList}\small\item\em Get the knotvector in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a671c9d736fa98a66c314417176f8ad6a}{\hyperlink{a00759}{Knotvector} $\ast$ \hyperlink{a00381_a671c9d736fa98a66c314417176f8ad6a}{get\+\_\+knotvector\+\_\+m\+\_\+ref} ()}\label{a00381_a671c9d736fa98a66c314417176f8ad6a}

\begin{DoxyCompactList}\small\item\em Get a reference to the knotvector in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_aaa94235ecd9e20adcd5c92ebe594ca05}{\hyperlink{a00759}{Knotvector} $\ast$ \hyperlink{a00381_aaa94235ecd9e20adcd5c92ebe594ca05}{get\+\_\+knotvector\+\_\+n\+\_\+ref} ()}\label{a00381_aaa94235ecd9e20adcd5c92ebe594ca05}

\begin{DoxyCompactList}\small\item\em Get a reference to the knotvector in n direction. \end{DoxyCompactList}\item 
Scalar \hyperlink{a00381_a420728368a9610ca4a0b4b890ec8a6dd}{get\+\_\+knot\+\_\+m} (int \+\_\+i)
\begin{DoxyCompactList}\small\item\em Get knot i in m direction. \end{DoxyCompactList}\item 
Scalar \hyperlink{a00381_ad64d4dc9ae7cf7e2898e08b251381f9d}{get\+\_\+knot\+\_\+n} (int \+\_\+i)
\begin{DoxyCompactList}\small\item\em Get knot i in n direction. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a1223633f34f777f1db4ab2ffa90c3d04}{set\+\_\+knots\+\_\+m} (std\+::vector$<$ Scalar $>$ \+\_\+knots)
\begin{DoxyCompactList}\small\item\em Set the knotvector of the bspline surface in m direction. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a79f1ccbed850d90d49e7029270348e17}{set\+\_\+knots\+\_\+n} (std\+::vector$<$ Scalar $>$ \+\_\+knots)
\begin{DoxyCompactList}\small\item\em Set the knotvector of the bspline surface in n direction. \end{DoxyCompactList}\item 
void \hyperlink{a00381_ab82fb6e19a005f3f771026a7a4259b26}{insert\+\_\+knot\+\_\+m} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Insert a knot i in m direction without changing the surface. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a23dfaf34b2da00b7102f8f41eaf47750}{insert\+\_\+knot\+\_\+n} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Insert a knot i in n direction without changing the surface. \end{DoxyCompactList}\item 
\hypertarget{a00381_abd186aa21ccbbe4e590dda94def4f435}{void \hyperlink{a00381_abd186aa21ccbbe4e590dda94def4f435}{create\+Knots} ()}\label{a00381_abd186aa21ccbbe4e590dda94def4f435}

\begin{DoxyCompactList}\small\item\em Creates interpolating knotvectors 0...0, 1, 2, ..., n...n. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a990251a252214d5d29fd82f64b39ac89}{set\+\_\+degree} (unsigned int \+\_\+degm, unsigned int \+\_\+degn)
\begin{DoxyCompactList}\small\item\em Sets the degree of the spline surface. \end{DoxyCompactList}\item 
\hypertarget{a00381_a4a4bd713397b6cf8144e3237e0ea3cbb}{int \hyperlink{a00381_a4a4bd713397b6cf8144e3237e0ea3cbb}{degree\+\_\+m} () const }\label{a00381_a4a4bd713397b6cf8144e3237e0ea3cbb}

\begin{DoxyCompactList}\small\item\em Returns the spline degree in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a98976a1d6e59e7f798195afd1171763d}{int \hyperlink{a00381_a98976a1d6e59e7f798195afd1171763d}{degree\+\_\+n} () const }\label{a00381_a98976a1d6e59e7f798195afd1171763d}

\begin{DoxyCompactList}\small\item\em Returns the spline degree in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a0bc6fdb8e8d5ec2672bcd05cda22a01a}{unsigned int \hyperlink{a00381_a0bc6fdb8e8d5ec2672bcd05cda22a01a}{n\+\_\+control\+\_\+points\+\_\+m} () const }\label{a00381_a0bc6fdb8e8d5ec2672bcd05cda22a01a}

\begin{DoxyCompactList}\small\item\em Returns the number of controlpoints in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a692913c1d17d2bc1a0d768f622e67a0a}{unsigned int \hyperlink{a00381_a692913c1d17d2bc1a0d768f622e67a0a}{n\+\_\+control\+\_\+points\+\_\+n} () const }\label{a00381_a692913c1d17d2bc1a0d768f622e67a0a}

\begin{DoxyCompactList}\small\item\em Returns the number of controlpoints in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a1d9cb15140e98b55d37425b649073496}{unsigned int \hyperlink{a00381_a1d9cb15140e98b55d37425b649073496}{n\+\_\+knots\+\_\+m} ()}\label{a00381_a1d9cb15140e98b55d37425b649073496}

\begin{DoxyCompactList}\small\item\em Returns the number of knots in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a37653d78d84dbde9ae036c6e5c3d2fce}{unsigned int \hyperlink{a00381_a37653d78d84dbde9ae036c6e5c3d2fce}{n\+\_\+knots\+\_\+n} ()}\label{a00381_a37653d78d84dbde9ae036c6e5c3d2fce}

\begin{DoxyCompactList}\small\item\em Returns the number of knots in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_ad9645294255d6ca228831a0571b07d8b}{void \hyperlink{a00381_ad9645294255d6ca228831a0571b07d8b}{reset\+\_\+control\+\_\+net} ()}\label{a00381_ad9645294255d6ca228831a0571b07d8b}

\begin{DoxyCompactList}\small\item\em Clears the control net. \end{DoxyCompactList}\item 
Point \& \hyperlink{a00381_a6db6988e91a605c280f752baab150435}{get\+\_\+control\+\_\+point} (unsigned int \+\_\+m, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Returns a reference to the control point (m, n) \end{DoxyCompactList}\item 
Point \& \hyperlink{a00381_af9d1e11b525e19075cc8bd629b86dfa7}{operator()} (unsigned int \+\_\+m, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Returns a reference to the control point (m, n) \end{DoxyCompactList}\item 
const Point \& \hyperlink{a00381_add9734b5bbe4e5c323a7d94e139782ad}{operator()} (unsigned int \+\_\+m, unsigned int \+\_\+n) const 
\begin{DoxyCompactList}\small\item\em Returns a const reference to the control point (m, n) \end{DoxyCompactList}\item 
Point \& \hyperlink{a00381_a5b23e2682b8860a04cf4ee64ae84f51b}{operator()} (\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \+\_\+param)
\begin{DoxyCompactList}\small\item\em Returns a reference to the control point (m, n) \end{DoxyCompactList}\item 
const Point \& \hyperlink{a00381_ae7715a45e4c0208eab55c5b1a8f5c4ed}{operator()} (\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \+\_\+param) const 
\begin{DoxyCompactList}\small\item\em Returns a const reference to the control point (m, n) \end{DoxyCompactList}\item 
void \hyperlink{a00381_a0015977154d89fbb994e27f9c6768328}{get\+\_\+vector\+\_\+m} (std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon, unsigned int \+\_\+m)
\begin{DoxyCompactList}\small\item\em Returns an n control point vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a5cd5020c907dac916a446ae827828bac}{get\+\_\+vector\+\_\+n} (std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Returns an m ctr\+Point\+Vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a7f78c283bb9af9a40176d666de6aecc2}{add\+\_\+vector\+\_\+m} (const std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon)
\begin{DoxyCompactList}\small\item\em Adds a control point n-\/vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a6668647820cb300c9cd0ec1de388af90}{add\+\_\+vector\+\_\+n} (const std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon)
\begin{DoxyCompactList}\small\item\em Adds a control point m-\/vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a15ffea83e6b4d1a5e6673be346c4011c}{insert\+\_\+vector\+\_\+m} (const std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon, unsigned int \+\_\+m)
\begin{DoxyCompactList}\small\item\em Inserts an n control point vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a76bfbdc5a2205d0c152f3103e4427f45}{insert\+\_\+vector\+\_\+n} (const std\+::vector$<$ Point $>$ \&\+\_\+control\+\_\+polygon, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Inserts an m control point vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_ad94d3b14fb32aa378859a249d1746afe}{delete\+\_\+vector\+\_\+m} (unsigned int \+\_\+m)
\begin{DoxyCompactList}\small\item\em Deletes an n control point vector. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a6368fb720d36fbdaf2e534baa8de7da5}{delete\+\_\+vector\+\_\+n} (unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Deletes an m control point vector. \end{DoxyCompactList}\item 
Point \hyperlink{a00381_af6f99dac3584113d4c5b5cfa2a18382f}{surface\+Point} (double \+\_\+u, double \+\_\+v)
\begin{DoxyCompactList}\small\item\em Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. \end{DoxyCompactList}\item 
void \hyperlink{a00381_a998e3099546cd6f4320ac3e84d45935c}{surface\+Point\+Normal} (Point \&\+\_\+pt, Point \&\+\_\+normal, double \+\_\+u, double \+\_\+v)
\begin{DoxyCompactList}\small\item\em Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. \end{DoxyCompactList}\item 
Point \hyperlink{a00381_aa249b6225e9b6717450a16bc4b0f87b0}{surface\+Point\+\_\+rec} (double \+\_\+u, double \+\_\+v)
\begin{DoxyCompactList}\small\item\em Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. \end{DoxyCompactList}\item 
Point \hyperlink{a00381_a39c44f1469c7b8311e83a13fe7efc147}{derivative\+Surface\+Point} (double \+\_\+u, double \+\_\+v, int \+\_\+derm, int \+\_\+dern)
\begin{DoxyCompactList}\small\item\em Returns the \+\_\+derm'th derivative of a spline surface. \end{DoxyCompactList}\item 
Point \hyperlink{a00381_a84d66cc334a67916ff52332d9b88c934}{normal\+Surface\+Point} (double \+\_\+u, double \+\_\+v)
\begin{DoxyCompactList}\small\item\em Returns the normal of a spline surface. \end{DoxyCompactList}\item 
Scalar \hyperlink{a00381_afc2b20542a6844f3e6cdd48afc3db638}{basis\+Function} (\hyperlink{a00759}{Knotvector} \&\+\_\+knotvector, int \+\_\+i, int \+\_\+n, double \+\_\+t)
\begin{DoxyCompactList}\small\item\em A Spline Basis Function. \end{DoxyCompactList}\item 
Scalar \hyperlink{a00381_ab438f5d46360669ad5aa83f4a3854200}{derivative\+Basis\+Function} (\hyperlink{a00759}{Knotvector} \&\+\_\+knotvector, int \+\_\+i, int \+\_\+n, double \+\_\+t, int \+\_\+der)
\begin{DoxyCompactList}\small\item\em Derivative of a Spline Basis Function. \end{DoxyCompactList}\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00381_a94ae2470192f482b67fa376f281fe199}{spanm} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Returns the basis functions which are unequal to zero at parameter u. \end{DoxyCompactList}\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00381_abf1812c2ba90ba3603bc02753b637d28}{spann} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Returns the basis functions which are unequal to zero at parameter v. \end{DoxyCompactList}\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00381_a64a67d5c241e41c544e53360d33c867a}{interval\+\_\+m} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Returns the index of the knots u and u+1 such that t in \mbox{[}u, u+1) \end{DoxyCompactList}\item 
\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00381_a94fa85376f22eea33f92da8f6caafcd2}{interval\+\_\+n} (double \+\_\+t)
\begin{DoxyCompactList}\small\item\em Returns the index of the knots v and v+1 such that t in \mbox{[}v, v+1) \end{DoxyCompactList}\item 
\hypertarget{a00381_aa263d92b9d83386b6438c8a849d65e00}{Scalar \hyperlink{a00381_aa263d92b9d83386b6438c8a849d65e00}{loweru} ()}\label{a00381_aa263d92b9d83386b6438c8a849d65e00}

\begin{DoxyCompactList}\small\item\em Returns the lower u parameter. \end{DoxyCompactList}\item 
\hypertarget{a00381_a72fd35120bf8a1dcf46aa389ca085591}{Scalar \hyperlink{a00381_a72fd35120bf8a1dcf46aa389ca085591}{upperu} ()}\label{a00381_a72fd35120bf8a1dcf46aa389ca085591}

\begin{DoxyCompactList}\small\item\em Returns the upper u parameter. \end{DoxyCompactList}\item 
\hypertarget{a00381_a680223671a5064bd38884e5cc445e572}{Scalar \hyperlink{a00381_a680223671a5064bd38884e5cc445e572}{lowerv} ()}\label{a00381_a680223671a5064bd38884e5cc445e572}

\begin{DoxyCompactList}\small\item\em Returns the lower v parameter. \end{DoxyCompactList}\item 
\hypertarget{a00381_a68ac7d915646e0d6600810d85ed266cc}{Scalar \hyperlink{a00381_a68ac7d915646e0d6600810d85ed266cc}{upperv} ()}\label{a00381_a68ac7d915646e0d6600810d85ed266cc}

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

\begin{DoxyCompactList}\small\item\em request control point selection property \end{DoxyCompactList}\item 
\hypertarget{a00381_afda1512ef720950f4816dc426b566f7f}{void \hyperlink{a00381_afda1512ef720950f4816dc426b566f7f}{request\+\_\+edge\+\_\+selections} ()}\label{a00381_afda1512ef720950f4816dc426b566f7f}

\begin{DoxyCompactList}\small\item\em request edge selection property \end{DoxyCompactList}\item 
\hypertarget{a00381_a7b635f376850a2dc9ec20a2b75077f0e}{void \hyperlink{a00381_a7b635f376850a2dc9ec20a2b75077f0e}{release\+\_\+controlpoint\+\_\+selections} ()}\label{a00381_a7b635f376850a2dc9ec20a2b75077f0e}

\begin{DoxyCompactList}\small\item\em release control point selection property \end{DoxyCompactList}\item 
\hypertarget{a00381_a2aacadc04d1515f7fd04ff15383a941b}{void \hyperlink{a00381_a2aacadc04d1515f7fd04ff15383a941b}{release\+\_\+edge\+\_\+selections} ()}\label{a00381_a2aacadc04d1515f7fd04ff15383a941b}

\begin{DoxyCompactList}\small\item\em release edge selection property \end{DoxyCompactList}\item 
\hypertarget{a00381_a914b4704e4bd40a221cf510062b8049b}{bool \hyperlink{a00381_a914b4704e4bd40a221cf510062b8049b}{controlpoint\+\_\+selections\+\_\+available} () const }\label{a00381_a914b4704e4bd40a221cf510062b8049b}

\begin{DoxyCompactList}\small\item\em Check if control point selection property is available. \end{DoxyCompactList}\item 
\hypertarget{a00381_a08be6ea9e4a2d44cd1d813a1a2e55789}{bool \hyperlink{a00381_a08be6ea9e4a2d44cd1d813a1a2e55789}{edge\+\_\+selections\+\_\+available} () const }\label{a00381_a08be6ea9e4a2d44cd1d813a1a2e55789}

\begin{DoxyCompactList}\small\item\em Check if edge selection property is available. \end{DoxyCompactList}\item 
\hypertarget{a00381_a0e752a12339bcf935924227db0a69437}{unsigned char \& {\bfseries controlpoint\+\_\+selection} (unsigned int \+\_\+i, unsigned int \+\_\+j)}\label{a00381_a0e752a12339bcf935924227db0a69437}

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

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

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

\item 
\hypertarget{a00381_a37042d344ec1bde5f10ba11dac2169c5}{void {\bfseries select\+\_\+controlpoint} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx)}\label{a00381_a37042d344ec1bde5f10ba11dac2169c5}

\item 
\hypertarget{a00381_a53204463ec0ed03519dabd8b0f42cd8a}{void {\bfseries deselect\+\_\+controlpoint} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx)}\label{a00381_a53204463ec0ed03519dabd8b0f42cd8a}

\item 
\hypertarget{a00381_abd642a9006d8f9597be1b3027fbd5a67}{bool {\bfseries controlpoint\+\_\+selected} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx) const }\label{a00381_abd642a9006d8f9597be1b3027fbd5a67}

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

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

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00381_aeb729bd7fa4a19b7e6df3b3073bbd0c3}{unsigned int \hyperlink{a00381_aeb729bd7fa4a19b7e6df3b3073bbd0c3}{dimm\+\_\+}}\label{a00381_aeb729bd7fa4a19b7e6df3b3073bbd0c3}

\begin{DoxyCompactList}\small\item\em number of control points in m direction \end{DoxyCompactList}\item 
\hypertarget{a00381_a4a406a34e1ac5d45858ad75363d34bbb}{unsigned int \hyperlink{a00381_a4a406a34e1ac5d45858ad75363d34bbb}{dimn\+\_\+}}\label{a00381_a4a406a34e1ac5d45858ad75363d34bbb}

\begin{DoxyCompactList}\small\item\em number of control points in n direction \end{DoxyCompactList}\item 
\hypertarget{a00381_aa5505cbd204a0d191a1fd9802acceadd}{unsigned int \hyperlink{a00381_aa5505cbd204a0d191a1fd9802acceadd}{degree\+\_\+m\+\_\+}}\label{a00381_aa5505cbd204a0d191a1fd9802acceadd}

\begin{DoxyCompactList}\small\item\em Spline degree in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a95498179541dddde059b1c50f24bcfee}{unsigned int \hyperlink{a00381_a95498179541dddde059b1c50f24bcfee}{degree\+\_\+n\+\_\+}}\label{a00381_a95498179541dddde059b1c50f24bcfee}

\begin{DoxyCompactList}\small\item\em Spline degree in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_ab68a54aeb741a49342be6aef7bca3b2c}{\hyperlink{a00759}{Knotvector} \hyperlink{a00381_ab68a54aeb741a49342be6aef7bca3b2c}{knotvector\+\_\+m\+\_\+}}\label{a00381_ab68a54aeb741a49342be6aef7bca3b2c}

\begin{DoxyCompactList}\small\item\em Knotvector in m direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}{\hyperlink{a00759}{Knotvector} \hyperlink{a00381_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}{knotvector\+\_\+n\+\_\+}}\label{a00381_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}

\begin{DoxyCompactList}\small\item\em Knotvector in n direction. \end{DoxyCompactList}\item 
\hypertarget{a00381_a5cb3a781829b60a5b4b422cf0301f99e}{Control\+Net {\bfseries control\+\_\+net\+\_\+}}\label{a00381_a5cb3a781829b60a5b4b422cf0301f99e}

\item 
\hypertarget{a00381_a3742582adc622651e717412af27e41cb}{Property\+Net \hyperlink{a00381_a3742582adc622651e717412af27e41cb}{cpselections\+\_\+}}\label{a00381_a3742582adc622651e717412af27e41cb}

\begin{DoxyCompactList}\small\item\em list of control point properties \end{DoxyCompactList}\item 
\hypertarget{a00381_a0cbddd51aa773390eecb4b428e7c3025}{Property\+Net \hyperlink{a00381_a0cbddd51aa773390eecb4b428e7c3025}{eselections\+\_\+}}\label{a00381_a0cbddd51aa773390eecb4b428e7c3025}

\begin{DoxyCompactList}\small\item\em list of edge properties \end{DoxyCompactList}\item 
\hypertarget{a00381_ac39b3c40f3a38681fff487c74e872bbb}{unsigned int {\bfseries ref\+\_\+count\+\_\+cpselections\+\_\+}}\label{a00381_ac39b3c40f3a38681fff487c74e872bbb}

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

\end{DoxyCompactItemize}


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

Brief Description.

A more elaborate description follows. 

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



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00381_aff63f3b2876c395c64943c7b7e8c44fe}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!B\+Spline\+Surface\+T@{B\+Spline\+Surface\+T}}
\index{B\+Spline\+Surface\+T@{B\+Spline\+Surface\+T}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{B\+Spline\+Surface\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::{\bf B\+Spline\+Surface\+T} (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+degm = {\ttfamily 3}, }
\item[{unsigned int}]{\+\_\+degn = {\ttfamily 3}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [explicit]}}}\label{a00381_aff63f3b2876c395c64943c7b7e8c44fe}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+degm} & Degree in m direction \\
\hline
{\em \+\_\+degn} & Degree in n direction \\
\hline
\end{DoxyParams}


Definition at line 81 of file B\+Spline\+Surface\+T.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00381_a7f78c283bb9af9a40176d666de6aecc2}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!add\+\_\+vector\+\_\+m@{add\+\_\+vector\+\_\+m}}
\index{add\+\_\+vector\+\_\+m@{add\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{add\+\_\+vector\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::add\+\_\+vector\+\_\+m (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon}
\end{DoxyParamCaption}
)}}\label{a00381_a7f78c283bb9af9a40176d666de6aecc2}


Adds a control point n-\/vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+control\+\_\+polygon} & Additional control point vector \\
\hline
\end{DoxyParams}


Definition at line 193 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a6668647820cb300c9cd0ec1de388af90}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!add\+\_\+vector\+\_\+n@{add\+\_\+vector\+\_\+n}}
\index{add\+\_\+vector\+\_\+n@{add\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{add\+\_\+vector\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::add\+\_\+vector\+\_\+n (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon}
\end{DoxyParamCaption}
)}}\label{a00381_a6668647820cb300c9cd0ec1de388af90}


Adds a control point m-\/vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+control\+\_\+polygon} & Additional control point vector \\
\hline
\end{DoxyParams}


Definition at line 203 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_afc2b20542a6844f3e6cdd48afc3db638}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!basis\+Function@{basis\+Function}}
\index{basis\+Function@{basis\+Function}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{basis\+Function}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::Scalar {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::basis\+Function (
\begin{DoxyParamCaption}
\item[{{\bf Knotvector} \&}]{\+\_\+knotvector, }
\item[{int}]{\+\_\+i, }
\item[{int}]{\+\_\+n, }
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_afc2b20542a6844f3e6cdd48afc3db638}


A Spline Basis Function. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+knotvector} & the knotvector \\
\hline
{\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 610 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_ad94d3b14fb32aa378859a249d1746afe}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!delete\+\_\+vector\+\_\+m@{delete\+\_\+vector\+\_\+m}}
\index{delete\+\_\+vector\+\_\+m@{delete\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{delete\+\_\+vector\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::delete\+\_\+vector\+\_\+m (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+m}
\end{DoxyParamCaption}
)}}\label{a00381_ad94d3b14fb32aa378859a249d1746afe}


Deletes an n control point vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m} & the m'th pointvector \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a03409__todo000057}{Todo}]Improve deletion routine for control points and knots! \end{DoxyRefDesc}


Definition at line 281 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a6368fb720d36fbdaf2e534baa8de7da5}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!delete\+\_\+vector\+\_\+n@{delete\+\_\+vector\+\_\+n}}
\index{delete\+\_\+vector\+\_\+n@{delete\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{delete\+\_\+vector\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::delete\+\_\+vector\+\_\+n (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)}}\label{a00381_a6368fb720d36fbdaf2e534baa8de7da5}


Deletes an m control point vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+n} & the n'th pointvector \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a03409__todo000058}{Todo}]\+: Improve deletion routine for control points and knots! \end{DoxyRefDesc}


Definition at line 308 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_ab438f5d46360669ad5aa83f4a3854200}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!derivative\+Basis\+Function@{derivative\+Basis\+Function}}
\index{derivative\+Basis\+Function@{derivative\+Basis\+Function}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{derivative\+Basis\+Function}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::Scalar {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::derivative\+Basis\+Function (
\begin{DoxyParamCaption}
\item[{{\bf Knotvector} \&}]{\+\_\+knotvector, }
\item[{int}]{\+\_\+i, }
\item[{int}]{\+\_\+n, }
\item[{double}]{\+\_\+t, }
\item[{int}]{\+\_\+der}
\end{DoxyParamCaption}
)}}\label{a00381_ab438f5d46360669ad5aa83f4a3854200}


Derivative of a Spline Basis Function. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+knotvector} & the knotvector \\
\hline
{\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 698 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a39c44f1469c7b8311e83a13fe7efc147}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!derivative\+Surface\+Point@{derivative\+Surface\+Point}}
\index{derivative\+Surface\+Point@{derivative\+Surface\+Point}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{derivative\+Surface\+Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::derivative\+Surface\+Point (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+u, }
\item[{double}]{\+\_\+v, }
\item[{int}]{\+\_\+derm, }
\item[{int}]{\+\_\+dern}
\end{DoxyParamCaption}
)}}\label{a00381_a39c44f1469c7b8311e83a13fe7efc147}


Returns the \+\_\+derm'th derivative of a spline surface. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter in u direction \\
\hline
{\em \+\_\+v} & the parameter in v direction \\
\hline
{\em \+\_\+derm} & the \+\_\+derm'th derivative in m \\
\hline
{\em \+\_\+dern} & the \+\_\+dern'th derivative in n \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the derivative 
\end{DoxyReturn}


Definition at line 648 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a6db6988e91a605c280f752baab150435}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!get\+\_\+control\+\_\+point@{get\+\_\+control\+\_\+point}}
\index{get\+\_\+control\+\_\+point@{get\+\_\+control\+\_\+point}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{get\+\_\+control\+\_\+point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ Point\& {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::get\+\_\+control\+\_\+point (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+m, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_a6db6988e91a605c280f752baab150435}


Returns a reference to the control point (m, n) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m,\+\_\+n} & the control point index \\
\hline
\end{DoxyParams}


Definition at line 199 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_a420728368a9610ca4a0b4b890ec8a6dd}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!get\+\_\+knot\+\_\+m@{get\+\_\+knot\+\_\+m}}
\index{get\+\_\+knot\+\_\+m@{get\+\_\+knot\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{get\+\_\+knot\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ Scalar {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::get\+\_\+knot\+\_\+m (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+i}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_a420728368a9610ca4a0b4b890ec8a6dd}


Get knot i in m direction. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Knot index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Knot i 
\end{DoxyReturn}


Definition at line 133 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_ad64d4dc9ae7cf7e2898e08b251381f9d}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!get\+\_\+knot\+\_\+n@{get\+\_\+knot\+\_\+n}}
\index{get\+\_\+knot\+\_\+n@{get\+\_\+knot\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{get\+\_\+knot\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ Scalar {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::get\+\_\+knot\+\_\+n (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+i}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_ad64d4dc9ae7cf7e2898e08b251381f9d}


Get knot i in n direction. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Knot index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Knot i 
\end{DoxyReturn}


Definition at line 140 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_a0015977154d89fbb994e27f9c6768328}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!get\+\_\+vector\+\_\+m@{get\+\_\+vector\+\_\+m}}
\index{get\+\_\+vector\+\_\+m@{get\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{get\+\_\+vector\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::get\+\_\+vector\+\_\+m (
\begin{DoxyParamCaption}
\item[{std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon, }
\item[{unsigned int}]{\+\_\+m}
\end{DoxyParamCaption}
)}}\label{a00381_a0015977154d89fbb994e27f9c6768328}


Returns an n control point vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m} & the m'th pointvector \\
\hline
{\em \+\_\+control\+\_\+polygon} & the returned pointvector \\
\hline
\end{DoxyParams}


Definition at line 339 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a5cd5020c907dac916a446ae827828bac}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!get\+\_\+vector\+\_\+n@{get\+\_\+vector\+\_\+n}}
\index{get\+\_\+vector\+\_\+n@{get\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{get\+\_\+vector\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::get\+\_\+vector\+\_\+n (
\begin{DoxyParamCaption}
\item[{std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)}}\label{a00381_a5cd5020c907dac916a446ae827828bac}


Returns an m ctr\+Point\+Vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+n} & the n'th pointvector \\
\hline
{\em \+\_\+control\+\_\+polygon} & the returned pointvector \\
\hline
\end{DoxyParams}


Definition at line 350 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_ab82fb6e19a005f3f771026a7a4259b26}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!insert\+\_\+knot\+\_\+m@{insert\+\_\+knot\+\_\+m}}
\index{insert\+\_\+knot\+\_\+m@{insert\+\_\+knot\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{insert\+\_\+knot\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::insert\+\_\+knot\+\_\+m (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_ab82fb6e19a005f3f771026a7a4259b26}


Insert a knot i in m direction without changing the surface. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & Parameter value \\
\hline
\end{DoxyParams}


Definition at line 386 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a23dfaf34b2da00b7102f8f41eaf47750}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!insert\+\_\+knot\+\_\+n@{insert\+\_\+knot\+\_\+n}}
\index{insert\+\_\+knot\+\_\+n@{insert\+\_\+knot\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{insert\+\_\+knot\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::insert\+\_\+knot\+\_\+n (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_a23dfaf34b2da00b7102f8f41eaf47750}


Insert a knot i in n direction without changing the surface. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & Parameter value \\
\hline
\end{DoxyParams}


Definition at line 430 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a15ffea83e6b4d1a5e6673be346c4011c}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!insert\+\_\+vector\+\_\+m@{insert\+\_\+vector\+\_\+m}}
\index{insert\+\_\+vector\+\_\+m@{insert\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{insert\+\_\+vector\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::insert\+\_\+vector\+\_\+m (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon, }
\item[{unsigned int}]{\+\_\+m}
\end{DoxyParamCaption}
)}}\label{a00381_a15ffea83e6b4d1a5e6673be346c4011c}


Inserts an n control point vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m} & the position in m direction \\
\hline
{\em \+\_\+control\+\_\+polygon} & the pointvector to be inserted \\
\hline
\end{DoxyParams}


Definition at line 213 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a76bfbdc5a2205d0c152f3103e4427f45}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!insert\+\_\+vector\+\_\+n@{insert\+\_\+vector\+\_\+n}}
\index{insert\+\_\+vector\+\_\+n@{insert\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{insert\+\_\+vector\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::insert\+\_\+vector\+\_\+n (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)}}\label{a00381_a76bfbdc5a2205d0c152f3103e4427f45}


Inserts an m control point vector. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+n} & the position in n direction \\
\hline
{\em \+\_\+control\+\_\+polygon} & the pointvector to be inserted \\
\hline
\end{DoxyParams}


Definition at line 246 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a64a67d5c241e41c544e53360d33c867a}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!interval\+\_\+m@{interval\+\_\+m}}
\index{interval\+\_\+m@{interval\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{interval\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::interval\+\_\+m (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_a64a67d5c241e41c544e53360d33c867a}


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 783 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a94fa85376f22eea33f92da8f6caafcd2}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!interval\+\_\+n@{interval\+\_\+n}}
\index{interval\+\_\+n@{interval\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{interval\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::interval\+\_\+n (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_a94fa85376f22eea33f92da8f6caafcd2}


Returns the index of the knots v and v+1 such that t in \mbox{[}v, v+1) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & the parameter \\
\hline
\end{DoxyParams}


Definition at line 803 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a84d66cc334a67916ff52332d9b88c934}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!normal\+Surface\+Point@{normal\+Surface\+Point}}
\index{normal\+Surface\+Point@{normal\+Surface\+Point}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{normal\+Surface\+Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::normal\+Surface\+Point (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+u, }
\item[{double}]{\+\_\+v}
\end{DoxyParamCaption}
)}}\label{a00381_a84d66cc334a67916ff52332d9b88c934}


Returns the normal of a spline surface. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter in u direction \\
\hline
{\em \+\_\+v} & the parameter in v direction \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the normal 
\end{DoxyReturn}


Definition at line 680 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_af9d1e11b525e19075cc8bd629b86dfa7}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ Point\& {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+m, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_af9d1e11b525e19075cc8bd629b86dfa7}


Returns a reference to the control point (m, n) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m,\+\_\+n} & the control point index \\
\hline
\end{DoxyParams}


Definition at line 209 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_add9734b5bbe4e5c323a7d94e139782ad}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ const Point\& {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+m, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_add9734b5bbe4e5c323a7d94e139782ad}


Returns a const reference to the control point (m, n) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+m,\+\_\+n} & the control point index \\
\hline
\end{DoxyParams}


Definition at line 219 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_a5b23e2682b8860a04cf4ee64ae84f51b}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ Point\& {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{{\bf Vec2i}}]{\+\_\+param}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_a5b23e2682b8860a04cf4ee64ae84f51b}


Returns a reference to the control point (m, n) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+param} & the control point index \\
\hline
\end{DoxyParams}


Definition at line 229 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_ae7715a45e4c0208eab55c5b1a8f5c4ed}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T$>$ const Point\& {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{{\bf Vec2i}}]{\+\_\+param}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00381_ae7715a45e4c0208eab55c5b1a8f5c4ed}


Returns a const reference to the control point (m, n) 


\begin{DoxyParams}{Parameters}
{\em \+\_\+param} & the control point index \\
\hline
\end{DoxyParams}


Definition at line 239 of file B\+Spline\+Surface\+T.\+hh.

\hypertarget{a00381_a822de0809d38ea95c27e57d0870995c5}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!resize@{resize}}
\index{resize@{resize}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{resize}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::resize (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+m, }
\item[{unsigned int}]{\+\_\+n}
\end{DoxyParamCaption}
)}}\label{a00381_a822de0809d38ea95c27e57d0870995c5}


Resizes the spline struct. 

You usually shoudn't have to care about this I will probably make it private... 
\begin{DoxyParams}{Parameters}
{\em \+\_\+m} & size in m direction \\
\hline
{\em \+\_\+n} & size in n direction \\
\hline
\end{DoxyParams}


Definition at line 131 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a990251a252214d5d29fd82f64b39ac89}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!set\+\_\+degree@{set\+\_\+degree}}
\index{set\+\_\+degree@{set\+\_\+degree}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{set\+\_\+degree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::set\+\_\+degree (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+degm, }
\item[{unsigned int}]{\+\_\+degn}
\end{DoxyParamCaption}
)}}\label{a00381_a990251a252214d5d29fd82f64b39ac89}


Sets the degree of the spline surface. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+degm} & Degree in m direction \\
\hline
{\em \+\_\+degn} & Degree in n direction \\
\hline
\end{DoxyParams}


Definition at line 182 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a1223633f34f777f1db4ab2ffa90c3d04}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!set\+\_\+knots\+\_\+m@{set\+\_\+knots\+\_\+m}}
\index{set\+\_\+knots\+\_\+m@{set\+\_\+knots\+\_\+m}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{set\+\_\+knots\+\_\+m}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::set\+\_\+knots\+\_\+m (
\begin{DoxyParamCaption}
\item[{std\+::vector$<$ Scalar $>$}]{\+\_\+knots}
\end{DoxyParamCaption}
)}}\label{a00381_a1223633f34f777f1db4ab2ffa90c3d04}


Set the knotvector of the bspline surface in m direction. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+knots} & The new knots \\
\hline
\end{DoxyParams}


Definition at line 364 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a79f1ccbed850d90d49e7029270348e17}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!set\+\_\+knots\+\_\+n@{set\+\_\+knots\+\_\+n}}
\index{set\+\_\+knots\+\_\+n@{set\+\_\+knots\+\_\+n}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{set\+\_\+knots\+\_\+n}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::set\+\_\+knots\+\_\+n (
\begin{DoxyParamCaption}
\item[{std\+::vector$<$ Scalar $>$}]{\+\_\+knots}
\end{DoxyParamCaption}
)}}\label{a00381_a79f1ccbed850d90d49e7029270348e17}


Set the knotvector of the bspline surface in n direction. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+knots} & The new knots \\
\hline
\end{DoxyParams}


Definition at line 375 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a94ae2470192f482b67fa376f281fe199}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!spanm@{spanm}}
\index{spanm@{spanm}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{spanm}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::spanm (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_a94ae2470192f482b67fa376f281fe199}


Returns the basis functions which are unequal to zero at parameter u. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & the parameter \\
\hline
\end{DoxyParams}


Definition at line 763 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_abf1812c2ba90ba3603bc02753b637d28}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!spann@{spann}}
\index{spann@{spann}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{spann}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ {\bf A\+C\+G\+::\+Vec2i} {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::spann (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+t}
\end{DoxyParamCaption}
)}}\label{a00381_abf1812c2ba90ba3603bc02753b637d28}


Returns the basis functions which are unequal to zero at parameter v. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & the parameter \\
\hline
\end{DoxyParams}


Definition at line 773 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_af6f99dac3584113d4c5b5cfa2a18382f}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!surface\+Point@{surface\+Point}}
\index{surface\+Point@{surface\+Point}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{surface\+Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::surface\+Point (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+u, }
\item[{double}]{\+\_\+v}
\end{DoxyParamCaption}
)}}\label{a00381_af6f99dac3584113d4c5b5cfa2a18382f}


Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter in u direction \\
\hline
{\em \+\_\+v} & the parameter in v direction \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the surface point 
\end{DoxyReturn}


Definition at line 476 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_aa249b6225e9b6717450a16bc4b0f87b0}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!surface\+Point\+\_\+rec@{surface\+Point\+\_\+rec}}
\index{surface\+Point\+\_\+rec@{surface\+Point\+\_\+rec}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{surface\+Point\+\_\+rec}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ Point\+T {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::surface\+Point\+\_\+rec (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+u, }
\item[{double}]{\+\_\+v}
\end{DoxyParamCaption}
)}}\label{a00381_aa249b6225e9b6717450a16bc4b0f87b0}


Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. 

Slower version of \hyperlink{a00381_af6f99dac3584113d4c5b5cfa2a18382f}{surface\+Point()}, which evaluates the basis functions recursively.


\begin{DoxyParams}{Parameters}
{\em \+\_\+u} & the parameter in u direction \\
\hline
{\em \+\_\+v} & the parameter in v direction \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the surface point 
\end{DoxyReturn}


Definition at line 577 of file B\+Spline\+Surface\+T.\+cc.

\hypertarget{a00381_a998e3099546cd6f4320ac3e84d45935c}{\index{A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}!surface\+Point\+Normal@{surface\+Point\+Normal}}
\index{surface\+Point\+Normal@{surface\+Point\+Normal}!A\+C\+G\+::\+B\+Spline\+Surface\+T@{A\+C\+G\+::\+B\+Spline\+Surface\+T}}
\subsubsection[{surface\+Point\+Normal}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Point\+T $>$ void {\bf A\+C\+G\+::\+B\+Spline\+Surface\+T}$<$ Point\+T $>$\+::surface\+Point\+Normal (
\begin{DoxyParamCaption}
\item[{Point \&}]{\+\_\+pt, }
\item[{Point \&}]{\+\_\+normal, }
\item[{double}]{\+\_\+u, }
\item[{double}]{\+\_\+v}
\end{DoxyParamCaption}
)}}\label{a00381_a998e3099546cd6f4320ac3e84d45935c}


Evaluates a spline surface at parameters \+\_\+u and \+\_\+v. 

Computes surface point and normal at the same time (optimized).


\begin{DoxyParams}{Parameters}
{\em \+\_\+point} & point output \\
\hline
{\em \+\_\+normal} & normal output \\
\hline
{\em \+\_\+u} & the parameter in u direction \\
\hline
{\em \+\_\+v} & the parameter in v direction \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the surface point 
\end{DoxyReturn}


Definition at line 519 of file B\+Spline\+Surface\+T.\+cc.



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