\hypertarget{classACG_1_1BSplineSurfaceT}{}\section{A\+CG\+:\+:B\+Spline\+SurfaceT$<$ PointT $>$ Class Template Reference}
\label{classACG_1_1BSplineSurfaceT}\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 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ac51f2a5a41b0815942e0f989f877a58b}\label{classACG_1_1BSplineSurfaceT_ac51f2a5a41b0815942e0f989f877a58b}} 
typedef PointT {\bfseries Point}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_adecc54133b3ee0e31431a95b7b4f847c}\label{classACG_1_1BSplineSurfaceT_adecc54133b3ee0e31431a95b7b4f847c}} 
typedef Point\+::value\+\_\+type {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a239ed616e963d259c7b4d11f3307ed25}\label{classACG_1_1BSplineSurfaceT_a239ed616e963d259c7b4d11f3307ed25}} 
typedef std\+::vector$<$ std\+::vector$<$ Point $>$ $>$ {\bfseries Control\+Net}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a4785dd7be37c8cb0151be89fe34b22c8}\label{classACG_1_1BSplineSurfaceT_a4785dd7be37c8cb0151be89fe34b22c8}} 
typedef std\+::vector$<$ std\+::vector$<$ unsigned char $>$ $>$ {\bfseries Property\+Net}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classACG_1_1BSplineSurfaceT_aff63f3b2876c395c64943c7b7e8c44fe}{B\+Spline\+SurfaceT} (unsigned int \+\_\+degm=3, unsigned int \+\_\+degn=3)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1BSplineSurfaceT_a822de0809d38ea95c27e57d0870995c5}{resize} (unsigned int \+\_\+m, unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Resizes the spline struct. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a38ddcfd9281556f61323eaebb354ab0d}\label{classACG_1_1BSplineSurfaceT_a38ddcfd9281556f61323eaebb354ab0d}} 
std\+::vector$<$ Scalar $>$ \& \hyperlink{classACG_1_1BSplineSurfaceT_a38ddcfd9281556f61323eaebb354ab0d}{get\+\_\+knots\+\_\+m} ()
\begin{DoxyCompactList}\small\item\em get the knotvector in m direction of the bspline surface \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a0164cb66271407b3db3636ce9db71fab}\label{classACG_1_1BSplineSurfaceT_a0164cb66271407b3db3636ce9db71fab}} 
std\+::vector$<$ Scalar $>$ \& \hyperlink{classACG_1_1BSplineSurfaceT_a0164cb66271407b3db3636ce9db71fab}{get\+\_\+knots\+\_\+n} ()
\begin{DoxyCompactList}\small\item\em get the knotvector in m direction of the bspline surface \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a31f06852c96582f003a9b3e87cd8bed1}\label{classACG_1_1BSplineSurfaceT_a31f06852c96582f003a9b3e87cd8bed1}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \hyperlink{classACG_1_1BSplineSurfaceT_a31f06852c96582f003a9b3e87cd8bed1}{get\+\_\+knotvector\+\_\+m} ()
\begin{DoxyCompactList}\small\item\em Get the knotvector in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a1410d485c7b47c465e928a2d2eb6b021}\label{classACG_1_1BSplineSurfaceT_a1410d485c7b47c465e928a2d2eb6b021}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \hyperlink{classACG_1_1BSplineSurfaceT_a1410d485c7b47c465e928a2d2eb6b021}{get\+\_\+knotvector\+\_\+n} ()
\begin{DoxyCompactList}\small\item\em Get the knotvector in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a671c9d736fa98a66c314417176f8ad6a}\label{classACG_1_1BSplineSurfaceT_a671c9d736fa98a66c314417176f8ad6a}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} $\ast$ \hyperlink{classACG_1_1BSplineSurfaceT_a671c9d736fa98a66c314417176f8ad6a}{get\+\_\+knotvector\+\_\+m\+\_\+ref} ()
\begin{DoxyCompactList}\small\item\em Get a reference to the knotvector in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aaa94235ecd9e20adcd5c92ebe594ca05}\label{classACG_1_1BSplineSurfaceT_aaa94235ecd9e20adcd5c92ebe594ca05}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} $\ast$ \hyperlink{classACG_1_1BSplineSurfaceT_aaa94235ecd9e20adcd5c92ebe594ca05}{get\+\_\+knotvector\+\_\+n\+\_\+ref} ()
\begin{DoxyCompactList}\small\item\em Get a reference to the knotvector in n direction. \end{DoxyCompactList}\item 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_a420728368a9610ca4a0b4b890ec8a6dd}{get\+\_\+knot\+\_\+m} (int \+\_\+i)
\begin{DoxyCompactList}\small\item\em Get knot i in m direction. \end{DoxyCompactList}\item 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_ad64d4dc9ae7cf7e2898e08b251381f9d}{get\+\_\+knot\+\_\+n} (int \+\_\+i)
\begin{DoxyCompactList}\small\item\em Get knot i in n direction. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_abd186aa21ccbbe4e590dda94def4f435}\label{classACG_1_1BSplineSurfaceT_abd186aa21ccbbe4e590dda94def4f435}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_abd186aa21ccbbe4e590dda94def4f435}{create\+Knots} ()
\begin{DoxyCompactList}\small\item\em Creates interpolating knotvectors 0...0, 1, 2, ..., n...n. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1BSplineSurfaceT_a990251a252214d5d29fd82f64b39ac89}{set\+\_\+degree} (unsigned int \+\_\+degm, unsigned int \+\_\+degn)
\begin{DoxyCompactList}\small\item\em Sets the degree of the spline surface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aea58349e70af4c77a3809aabed15357f}\label{classACG_1_1BSplineSurfaceT_aea58349e70af4c77a3809aabed15357f}} 
int \hyperlink{classACG_1_1BSplineSurfaceT_aea58349e70af4c77a3809aabed15357f}{degree\+\_\+m} () const
\begin{DoxyCompactList}\small\item\em Returns the spline degree in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a7846607f9d8e9933dda566627f41d64c}\label{classACG_1_1BSplineSurfaceT_a7846607f9d8e9933dda566627f41d64c}} 
int \hyperlink{classACG_1_1BSplineSurfaceT_a7846607f9d8e9933dda566627f41d64c}{degree\+\_\+n} () const
\begin{DoxyCompactList}\small\item\em Returns the spline degree in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_adc21cddbb50023d22acd48fa70cfe542}\label{classACG_1_1BSplineSurfaceT_adc21cddbb50023d22acd48fa70cfe542}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_adc21cddbb50023d22acd48fa70cfe542}{n\+\_\+control\+\_\+points\+\_\+m} () const
\begin{DoxyCompactList}\small\item\em Returns the number of controlpoints in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a12f15406b5412f12434023c3cf57b9d3}\label{classACG_1_1BSplineSurfaceT_a12f15406b5412f12434023c3cf57b9d3}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_a12f15406b5412f12434023c3cf57b9d3}{n\+\_\+control\+\_\+points\+\_\+n} () const
\begin{DoxyCompactList}\small\item\em Returns the number of controlpoints in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a1d9cb15140e98b55d37425b649073496}\label{classACG_1_1BSplineSurfaceT_a1d9cb15140e98b55d37425b649073496}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_a1d9cb15140e98b55d37425b649073496}{n\+\_\+knots\+\_\+m} ()
\begin{DoxyCompactList}\small\item\em Returns the number of knots in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a37653d78d84dbde9ae036c6e5c3d2fce}\label{classACG_1_1BSplineSurfaceT_a37653d78d84dbde9ae036c6e5c3d2fce}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_a37653d78d84dbde9ae036c6e5c3d2fce}{n\+\_\+knots\+\_\+n} ()
\begin{DoxyCompactList}\small\item\em Returns the number of knots in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ad9645294255d6ca228831a0571b07d8b}\label{classACG_1_1BSplineSurfaceT_ad9645294255d6ca228831a0571b07d8b}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_ad9645294255d6ca228831a0571b07d8b}{reset\+\_\+control\+\_\+net} ()
\begin{DoxyCompactList}\small\item\em Clears the control net. \end{DoxyCompactList}\item 
Point \& \hyperlink{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_a555edf8783a4d08b65feb169ef2178d8}{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{classACG_1_1BSplineSurfaceT_a5b23e2682b8860a04cf4ee64ae84f51b}{operator()} (\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \+\_\+param)
\begin{DoxyCompactList}\small\item\em Returns a reference to the control point (m, n) \end{DoxyCompactList}\item 
const Point \& \hyperlink{classACG_1_1BSplineSurfaceT_a4f4ac5b9589be0537587834a4070dd3a}{operator()} (\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \+\_\+param) const
\begin{DoxyCompactList}\small\item\em Returns a const reference to the control point (m, n) \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_ad94d3b14fb32aa378859a249d1746afe}{delete\+\_\+vector\+\_\+m} (unsigned int \+\_\+m)
\begin{DoxyCompactList}\small\item\em Deletes an n control point vector. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1BSplineSurfaceT_a6368fb720d36fbdaf2e534baa8de7da5}{delete\+\_\+vector\+\_\+n} (unsigned int \+\_\+n)
\begin{DoxyCompactList}\small\item\em Deletes an m control point vector. \end{DoxyCompactList}\item 
Point \hyperlink{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_a39c44f1469c7b8311e83a13fe7efc147}{derivative\+Surface\+Point} (double \+\_\+u, double \+\_\+v, int \+\_\+derm, int \+\_\+dern)
\begin{DoxyCompactList}\small\item\em Returns the \+\_\+derm\textquotesingle{}th derivative of a spline surface. \end{DoxyCompactList}\item 
Point \hyperlink{classACG_1_1BSplineSurfaceT_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{classACG_1_1BSplineSurfaceT_afc2b20542a6844f3e6cdd48afc3db638}{basis\+Function} (\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \&\+\_\+knotvector, int \+\_\+i, int \+\_\+n, double \+\_\+t)
\begin{DoxyCompactList}\small\item\em A Spline Basis Function. \end{DoxyCompactList}\item 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_ab438f5d46360669ad5aa83f4a3854200}{derivative\+Basis\+Function} (\hyperlink{classACG_1_1KnotvectorT}{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{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT_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{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT_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{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT_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{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT_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 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aa263d92b9d83386b6438c8a849d65e00}\label{classACG_1_1BSplineSurfaceT_aa263d92b9d83386b6438c8a849d65e00}} 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_aa263d92b9d83386b6438c8a849d65e00}{loweru} ()
\begin{DoxyCompactList}\small\item\em Returns the lower u parameter. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a72fd35120bf8a1dcf46aa389ca085591}\label{classACG_1_1BSplineSurfaceT_a72fd35120bf8a1dcf46aa389ca085591}} 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_a72fd35120bf8a1dcf46aa389ca085591}{upperu} ()
\begin{DoxyCompactList}\small\item\em Returns the upper u parameter. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a680223671a5064bd38884e5cc445e572}\label{classACG_1_1BSplineSurfaceT_a680223671a5064bd38884e5cc445e572}} 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_a680223671a5064bd38884e5cc445e572}{lowerv} ()
\begin{DoxyCompactList}\small\item\em Returns the lower v parameter. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a68ac7d915646e0d6600810d85ed266cc}\label{classACG_1_1BSplineSurfaceT_a68ac7d915646e0d6600810d85ed266cc}} 
Scalar \hyperlink{classACG_1_1BSplineSurfaceT_a68ac7d915646e0d6600810d85ed266cc}{upperv} ()
\begin{DoxyCompactList}\small\item\em Returns the upper v parameter. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a20374c94134e78a194d01f19cce0f488}\label{classACG_1_1BSplineSurfaceT_a20374c94134e78a194d01f19cce0f488}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_a20374c94134e78a194d01f19cce0f488}{request\+\_\+controlpoint\+\_\+selections} ()
\begin{DoxyCompactList}\small\item\em request control point selection property \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_afda1512ef720950f4816dc426b566f7f}\label{classACG_1_1BSplineSurfaceT_afda1512ef720950f4816dc426b566f7f}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_afda1512ef720950f4816dc426b566f7f}{request\+\_\+edge\+\_\+selections} ()
\begin{DoxyCompactList}\small\item\em request edge selection property \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a7b635f376850a2dc9ec20a2b75077f0e}\label{classACG_1_1BSplineSurfaceT_a7b635f376850a2dc9ec20a2b75077f0e}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_a7b635f376850a2dc9ec20a2b75077f0e}{release\+\_\+controlpoint\+\_\+selections} ()
\begin{DoxyCompactList}\small\item\em release control point selection property \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a2aacadc04d1515f7fd04ff15383a941b}\label{classACG_1_1BSplineSurfaceT_a2aacadc04d1515f7fd04ff15383a941b}} 
void \hyperlink{classACG_1_1BSplineSurfaceT_a2aacadc04d1515f7fd04ff15383a941b}{release\+\_\+edge\+\_\+selections} ()
\begin{DoxyCompactList}\small\item\em release edge selection property \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ae3104fc0e405e24bda4567280ecc4c6d}\label{classACG_1_1BSplineSurfaceT_ae3104fc0e405e24bda4567280ecc4c6d}} 
bool \hyperlink{classACG_1_1BSplineSurfaceT_ae3104fc0e405e24bda4567280ecc4c6d}{controlpoint\+\_\+selections\+\_\+available} () const
\begin{DoxyCompactList}\small\item\em Check if control point selection property is available. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_af6cbb39cfd8416874d400bbc03d03701}\label{classACG_1_1BSplineSurfaceT_af6cbb39cfd8416874d400bbc03d03701}} 
bool \hyperlink{classACG_1_1BSplineSurfaceT_af6cbb39cfd8416874d400bbc03d03701}{edge\+\_\+selections\+\_\+available} () const
\begin{DoxyCompactList}\small\item\em Check if edge selection property is available. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a0e752a12339bcf935924227db0a69437}\label{classACG_1_1BSplineSurfaceT_a0e752a12339bcf935924227db0a69437}} 
unsigned char \& {\bfseries controlpoint\+\_\+selection} (unsigned int \+\_\+i, unsigned int \+\_\+j)
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aa8dc52a133e9a4b5bea4363aa5c7f6b4}\label{classACG_1_1BSplineSurfaceT_aa8dc52a133e9a4b5bea4363aa5c7f6b4}} 
const unsigned char \& {\bfseries controlpoint\+\_\+selection} (unsigned int \+\_\+i, unsigned int \+\_\+j) const
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a337b6e6db94208753872c89daa49c72b}\label{classACG_1_1BSplineSurfaceT_a337b6e6db94208753872c89daa49c72b}} 
unsigned char \& {\bfseries edge\+\_\+selection} (unsigned int \+\_\+i, unsigned int \+\_\+j)
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a098e9ac2904c4d402d1ebdcff4fd439d}\label{classACG_1_1BSplineSurfaceT_a098e9ac2904c4d402d1ebdcff4fd439d}} 
const unsigned char \& {\bfseries edge\+\_\+selection} (unsigned int \+\_\+i, unsigned int \+\_\+j) const
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a37042d344ec1bde5f10ba11dac2169c5}\label{classACG_1_1BSplineSurfaceT_a37042d344ec1bde5f10ba11dac2169c5}} 
void {\bfseries select\+\_\+controlpoint} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx)
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a53204463ec0ed03519dabd8b0f42cd8a}\label{classACG_1_1BSplineSurfaceT_a53204463ec0ed03519dabd8b0f42cd8a}} 
void {\bfseries deselect\+\_\+controlpoint} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx)
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_abb950d4120031ded13da9ef7ba3e35d8}\label{classACG_1_1BSplineSurfaceT_abb950d4120031ded13da9ef7ba3e35d8}} 
bool {\bfseries controlpoint\+\_\+selected} (unsigned int \+\_\+i\+Idx, unsigned int \+\_\+j\+Idx) const
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a8592dd79eaea04573f625feac414be2f}\label{classACG_1_1BSplineSurfaceT_a8592dd79eaea04573f625feac414be2f}} 
{\footnotesize template$<$class PropT $>$ }\\void {\bfseries request\+\_\+prop} (unsigned int \&\+\_\+ref\+\_\+count, PropT \&\+\_\+prop)
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a70b34f7301f2f10d11bb36dd18fffda4}\label{classACG_1_1BSplineSurfaceT_a70b34f7301f2f10d11bb36dd18fffda4}} 
{\footnotesize template$<$class PropT $>$ }\\void {\bfseries release\+\_\+prop} (unsigned int \&\+\_\+ref\+\_\+count, PropT \&\+\_\+prop)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aeb729bd7fa4a19b7e6df3b3073bbd0c3}\label{classACG_1_1BSplineSurfaceT_aeb729bd7fa4a19b7e6df3b3073bbd0c3}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_aeb729bd7fa4a19b7e6df3b3073bbd0c3}{dimm\+\_\+}
\begin{DoxyCompactList}\small\item\em number of control points in m direction \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a4a406a34e1ac5d45858ad75363d34bbb}\label{classACG_1_1BSplineSurfaceT_a4a406a34e1ac5d45858ad75363d34bbb}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_a4a406a34e1ac5d45858ad75363d34bbb}{dimn\+\_\+}
\begin{DoxyCompactList}\small\item\em number of control points in n direction \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aa5505cbd204a0d191a1fd9802acceadd}\label{classACG_1_1BSplineSurfaceT_aa5505cbd204a0d191a1fd9802acceadd}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_aa5505cbd204a0d191a1fd9802acceadd}{degree\+\_\+m\+\_\+}
\begin{DoxyCompactList}\small\item\em Spline degree in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a95498179541dddde059b1c50f24bcfee}\label{classACG_1_1BSplineSurfaceT_a95498179541dddde059b1c50f24bcfee}} 
unsigned int \hyperlink{classACG_1_1BSplineSurfaceT_a95498179541dddde059b1c50f24bcfee}{degree\+\_\+n\+\_\+}
\begin{DoxyCompactList}\small\item\em Spline degree in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ab68a54aeb741a49342be6aef7bca3b2c}\label{classACG_1_1BSplineSurfaceT_ab68a54aeb741a49342be6aef7bca3b2c}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \hyperlink{classACG_1_1BSplineSurfaceT_ab68a54aeb741a49342be6aef7bca3b2c}{knotvector\+\_\+m\+\_\+}
\begin{DoxyCompactList}\small\item\em Knotvector in m direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}\label{classACG_1_1BSplineSurfaceT_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}} 
\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \hyperlink{classACG_1_1BSplineSurfaceT_a8a9c8ac3a2f9bdcd2736b4f3109fbfb9}{knotvector\+\_\+n\+\_\+}
\begin{DoxyCompactList}\small\item\em Knotvector in n direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a5cb3a781829b60a5b4b422cf0301f99e}\label{classACG_1_1BSplineSurfaceT_a5cb3a781829b60a5b4b422cf0301f99e}} 
Control\+Net {\bfseries control\+\_\+net\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a3742582adc622651e717412af27e41cb}\label{classACG_1_1BSplineSurfaceT_a3742582adc622651e717412af27e41cb}} 
Property\+Net \hyperlink{classACG_1_1BSplineSurfaceT_a3742582adc622651e717412af27e41cb}{cpselections\+\_\+}
\begin{DoxyCompactList}\small\item\em list of control point properties \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a0cbddd51aa773390eecb4b428e7c3025}\label{classACG_1_1BSplineSurfaceT_a0cbddd51aa773390eecb4b428e7c3025}} 
Property\+Net \hyperlink{classACG_1_1BSplineSurfaceT_a0cbddd51aa773390eecb4b428e7c3025}{eselections\+\_\+}
\begin{DoxyCompactList}\small\item\em list of edge properties \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ac39b3c40f3a38681fff487c74e872bbb}\label{classACG_1_1BSplineSurfaceT_ac39b3c40f3a38681fff487c74e872bbb}} 
unsigned int {\bfseries ref\+\_\+count\+\_\+cpselections\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ad432af9483e5715fdd96f116471ba247}\label{classACG_1_1BSplineSurfaceT_ad432af9483e5715fdd96f116471ba247}} 
unsigned int {\bfseries ref\+\_\+count\+\_\+eselections\+\_\+}
\end{DoxyCompactItemize}


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

Brief Description.

A more elaborate description follows. 

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



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aff63f3b2876c395c64943c7b7e8c44fe}\label{classACG_1_1BSplineSurfaceT_aff63f3b2876c395c64943c7b7e8c44fe}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!B\+Spline\+SurfaceT@{B\+Spline\+SurfaceT}}
\index{B\+Spline\+SurfaceT@{B\+Spline\+SurfaceT}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{B\+Spline\+Surface\+T()}{BSplineSurfaceT()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::\hyperlink{classACG_1_1BSplineSurfaceT}{B\+Spline\+SurfaceT} (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+degm = {\ttfamily 3},  }\item[{unsigned int}]{\+\_\+degn = {\ttfamily 3} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



Constructor. 


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


Definition at line 75 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a7f78c283bb9af9a40176d666de6aecc2}\label{classACG_1_1BSplineSurfaceT_a7f78c283bb9af9a40176d666de6aecc2}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!add\+\_\+vector\+\_\+m@{add\+\_\+vector\+\_\+m}}
\index{add\+\_\+vector\+\_\+m@{add\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{add\+\_\+vector\+\_\+m()}{add\_vector\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::add\+\_\+vector\+\_\+m (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon }\end{DoxyParamCaption})}



Adds a control point n-\/vector. 


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


Definition at line 187 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a6668647820cb300c9cd0ec1de388af90}\label{classACG_1_1BSplineSurfaceT_a6668647820cb300c9cd0ec1de388af90}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!add\+\_\+vector\+\_\+n@{add\+\_\+vector\+\_\+n}}
\index{add\+\_\+vector\+\_\+n@{add\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{add\+\_\+vector\+\_\+n()}{add\_vector\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::add\+\_\+vector\+\_\+n (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon }\end{DoxyParamCaption})}



Adds a control point m-\/vector. 


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


Definition at line 197 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_afc2b20542a6844f3e6cdd48afc3db638}\label{classACG_1_1BSplineSurfaceT_afc2b20542a6844f3e6cdd48afc3db638}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!basis\+Function@{basis\+Function}}
\index{basis\+Function@{basis\+Function}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{basis\+Function()}{basisFunction()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classACG_1_1BSplineSurfaceT}{B\+Spline\+SurfaceT}$<$ PointT $>$\+::Scalar \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::basis\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \&}]{\+\_\+knotvector,  }\item[{int}]{\+\_\+i,  }\item[{int}]{\+\_\+n,  }\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



A Spline Basis Function. 


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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ad94d3b14fb32aa378859a249d1746afe}\label{classACG_1_1BSplineSurfaceT_ad94d3b14fb32aa378859a249d1746afe}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!delete\+\_\+vector\+\_\+m@{delete\+\_\+vector\+\_\+m}}
\index{delete\+\_\+vector\+\_\+m@{delete\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{delete\+\_\+vector\+\_\+m()}{delete\_vector\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::delete\+\_\+vector\+\_\+m (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+m }\end{DoxyParamCaption})}



Deletes an n control point vector. 


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


Definition at line 275 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a6368fb720d36fbdaf2e534baa8de7da5}\label{classACG_1_1BSplineSurfaceT_a6368fb720d36fbdaf2e534baa8de7da5}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!delete\+\_\+vector\+\_\+n@{delete\+\_\+vector\+\_\+n}}
\index{delete\+\_\+vector\+\_\+n@{delete\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{delete\+\_\+vector\+\_\+n()}{delete\_vector\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::delete\+\_\+vector\+\_\+n (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})}



Deletes an m control point vector. 


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


Definition at line 302 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ab438f5d46360669ad5aa83f4a3854200}\label{classACG_1_1BSplineSurfaceT_ab438f5d46360669ad5aa83f4a3854200}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!derivative\+Basis\+Function@{derivative\+Basis\+Function}}
\index{derivative\+Basis\+Function@{derivative\+Basis\+Function}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{derivative\+Basis\+Function()}{derivativeBasisFunction()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{classACG_1_1BSplineSurfaceT}{B\+Spline\+SurfaceT}$<$ PointT $>$\+::Scalar \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::derivative\+Basis\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1KnotvectorT}{Knotvector} \&}]{\+\_\+knotvector,  }\item[{int}]{\+\_\+i,  }\item[{int}]{\+\_\+n,  }\item[{double}]{\+\_\+t,  }\item[{int}]{\+\_\+der }\end{DoxyParamCaption})}



Derivative of a Spline Basis Function. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+knotvector} & the knotvector \\
\hline
{\em \+\_\+i} & the i\textquotesingle{}th basis function \\
\hline
{\em \+\_\+n} & the spline degree \\
\hline
{\em \+\_\+t} & the parameter \\
\hline
{\em \+\_\+der} & the \+\_\+der\textquotesingle{}th derivative \\
\hline
\end{DoxyParams}


Definition at line 692 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a39c44f1469c7b8311e83a13fe7efc147}\label{classACG_1_1BSplineSurfaceT_a39c44f1469c7b8311e83a13fe7efc147}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!derivative\+Surface\+Point@{derivative\+Surface\+Point}}
\index{derivative\+Surface\+Point@{derivative\+Surface\+Point}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{derivative\+Surface\+Point()}{derivativeSurfacePoint()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
PointT \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::derivative\+Surface\+Point (\begin{DoxyParamCaption}\item[{double}]{\+\_\+u,  }\item[{double}]{\+\_\+v,  }\item[{int}]{\+\_\+derm,  }\item[{int}]{\+\_\+dern }\end{DoxyParamCaption})}



Returns the \+\_\+derm\textquotesingle{}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\textquotesingle{}th derivative in m \\
\hline
{\em \+\_\+dern} & the \+\_\+dern\textquotesingle{}th derivative in n \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the derivative 
\end{DoxyReturn}


Definition at line 642 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a6db6988e91a605c280f752baab150435}\label{classACG_1_1BSplineSurfaceT_a6db6988e91a605c280f752baab150435}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!get\+\_\+control\+\_\+point@{get\+\_\+control\+\_\+point}}
\index{get\+\_\+control\+\_\+point@{get\+\_\+control\+\_\+point}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{get\+\_\+control\+\_\+point()}{get\_control\_point()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
Point\& \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::get\+\_\+control\+\_\+point (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+m,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a420728368a9610ca4a0b4b890ec8a6dd}\label{classACG_1_1BSplineSurfaceT_a420728368a9610ca4a0b4b890ec8a6dd}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!get\+\_\+knot\+\_\+m@{get\+\_\+knot\+\_\+m}}
\index{get\+\_\+knot\+\_\+m@{get\+\_\+knot\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{get\+\_\+knot\+\_\+m()}{get\_knot\_m()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
Scalar \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::get\+\_\+knot\+\_\+m (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ad64d4dc9ae7cf7e2898e08b251381f9d}\label{classACG_1_1BSplineSurfaceT_ad64d4dc9ae7cf7e2898e08b251381f9d}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!get\+\_\+knot\+\_\+n@{get\+\_\+knot\+\_\+n}}
\index{get\+\_\+knot\+\_\+n@{get\+\_\+knot\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{get\+\_\+knot\+\_\+n()}{get\_knot\_n()}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
Scalar \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::get\+\_\+knot\+\_\+n (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a0015977154d89fbb994e27f9c6768328}\label{classACG_1_1BSplineSurfaceT_a0015977154d89fbb994e27f9c6768328}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!get\+\_\+vector\+\_\+m@{get\+\_\+vector\+\_\+m}}
\index{get\+\_\+vector\+\_\+m@{get\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{get\+\_\+vector\+\_\+m()}{get\_vector\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::get\+\_\+vector\+\_\+m (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon,  }\item[{unsigned int}]{\+\_\+m }\end{DoxyParamCaption})}



Returns an n control point vector. 


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


Definition at line 333 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a5cd5020c907dac916a446ae827828bac}\label{classACG_1_1BSplineSurfaceT_a5cd5020c907dac916a446ae827828bac}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!get\+\_\+vector\+\_\+n@{get\+\_\+vector\+\_\+n}}
\index{get\+\_\+vector\+\_\+n@{get\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{get\+\_\+vector\+\_\+n()}{get\_vector\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::get\+\_\+vector\+\_\+n (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})}



Returns an m ctr\+Point\+Vector. 


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


Definition at line 344 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_ab82fb6e19a005f3f771026a7a4259b26}\label{classACG_1_1BSplineSurfaceT_ab82fb6e19a005f3f771026a7a4259b26}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!insert\+\_\+knot\+\_\+m@{insert\+\_\+knot\+\_\+m}}
\index{insert\+\_\+knot\+\_\+m@{insert\+\_\+knot\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{insert\+\_\+knot\+\_\+m()}{insert\_knot\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::insert\+\_\+knot\+\_\+m (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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


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


Definition at line 380 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a23dfaf34b2da00b7102f8f41eaf47750}\label{classACG_1_1BSplineSurfaceT_a23dfaf34b2da00b7102f8f41eaf47750}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!insert\+\_\+knot\+\_\+n@{insert\+\_\+knot\+\_\+n}}
\index{insert\+\_\+knot\+\_\+n@{insert\+\_\+knot\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{insert\+\_\+knot\+\_\+n()}{insert\_knot\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::insert\+\_\+knot\+\_\+n (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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


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


Definition at line 424 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a15ffea83e6b4d1a5e6673be346c4011c}\label{classACG_1_1BSplineSurfaceT_a15ffea83e6b4d1a5e6673be346c4011c}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!insert\+\_\+vector\+\_\+m@{insert\+\_\+vector\+\_\+m}}
\index{insert\+\_\+vector\+\_\+m@{insert\+\_\+vector\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{insert\+\_\+vector\+\_\+m()}{insert\_vector\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::insert\+\_\+vector\+\_\+m (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon,  }\item[{unsigned int}]{\+\_\+m }\end{DoxyParamCaption})}



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 207 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a76bfbdc5a2205d0c152f3103e4427f45}\label{classACG_1_1BSplineSurfaceT_a76bfbdc5a2205d0c152f3103e4427f45}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!insert\+\_\+vector\+\_\+n@{insert\+\_\+vector\+\_\+n}}
\index{insert\+\_\+vector\+\_\+n@{insert\+\_\+vector\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{insert\+\_\+vector\+\_\+n()}{insert\_vector\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::insert\+\_\+vector\+\_\+n (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ Point $>$ \&}]{\+\_\+control\+\_\+polygon,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})}



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 240 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a64a67d5c241e41c544e53360d33c867a}\label{classACG_1_1BSplineSurfaceT_a64a67d5c241e41c544e53360d33c867a}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!interval\+\_\+m@{interval\+\_\+m}}
\index{interval\+\_\+m@{interval\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{interval\+\_\+m()}{interval\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::interval\+\_\+m (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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 777 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a94fa85376f22eea33f92da8f6caafcd2}\label{classACG_1_1BSplineSurfaceT_a94fa85376f22eea33f92da8f6caafcd2}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!interval\+\_\+n@{interval\+\_\+n}}
\index{interval\+\_\+n@{interval\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{interval\+\_\+n()}{interval\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::interval\+\_\+n (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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 797 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a84d66cc334a67916ff52332d9b88c934}\label{classACG_1_1BSplineSurfaceT_a84d66cc334a67916ff52332d9b88c934}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!normal\+Surface\+Point@{normal\+Surface\+Point}}
\index{normal\+Surface\+Point@{normal\+Surface\+Point}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{normal\+Surface\+Point()}{normalSurfacePoint()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
PointT \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::normal\+Surface\+Point (\begin{DoxyParamCaption}\item[{double}]{\+\_\+u,  }\item[{double}]{\+\_\+v }\end{DoxyParamCaption})}



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 674 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_af9d1e11b525e19075cc8bd629b86dfa7}\label{classACG_1_1BSplineSurfaceT_af9d1e11b525e19075cc8bd629b86dfa7}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
Point\& \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::operator() (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+m,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a555edf8783a4d08b65feb169ef2178d8}\label{classACG_1_1BSplineSurfaceT_a555edf8783a4d08b65feb169ef2178d8}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
const Point\& \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::operator() (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+m,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a5b23e2682b8860a04cf4ee64ae84f51b}\label{classACG_1_1BSplineSurfaceT_a5b23e2682b8860a04cf4ee64ae84f51b}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
Point\& \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::operator() (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i}}]{\+\_\+param }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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


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


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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a4f4ac5b9589be0537587834a4070dd3a}\label{classACG_1_1BSplineSurfaceT_a4f4ac5b9589be0537587834a4070dd3a}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!operator()@{operator()}}
\index{operator()@{operator()}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$class PointT$>$ \\
const Point\& \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::operator() (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i}}]{\+\_\+param }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



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

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a822de0809d38ea95c27e57d0870995c5}\label{classACG_1_1BSplineSurfaceT_a822de0809d38ea95c27e57d0870995c5}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!resize@{resize}}
\index{resize@{resize}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{resize()}{resize()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::resize (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+m,  }\item[{unsigned int}]{\+\_\+n }\end{DoxyParamCaption})}



Resizes the spline struct. 

You usually shoudn\textquotesingle{}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 125 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a990251a252214d5d29fd82f64b39ac89}\label{classACG_1_1BSplineSurfaceT_a990251a252214d5d29fd82f64b39ac89}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!set\+\_\+degree@{set\+\_\+degree}}
\index{set\+\_\+degree@{set\+\_\+degree}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{set\+\_\+degree()}{set\_degree()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::set\+\_\+degree (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+degm,  }\item[{unsigned int}]{\+\_\+degn }\end{DoxyParamCaption})}



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 176 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a1223633f34f777f1db4ab2ffa90c3d04}\label{classACG_1_1BSplineSurfaceT_a1223633f34f777f1db4ab2ffa90c3d04}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!set\+\_\+knots\+\_\+m@{set\+\_\+knots\+\_\+m}}
\index{set\+\_\+knots\+\_\+m@{set\+\_\+knots\+\_\+m}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{set\+\_\+knots\+\_\+m()}{set\_knots\_m()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::set\+\_\+knots\+\_\+m (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Scalar $>$}]{\+\_\+knots }\end{DoxyParamCaption})}



Set the knotvector of the bspline surface in m direction. 


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


Definition at line 358 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a79f1ccbed850d90d49e7029270348e17}\label{classACG_1_1BSplineSurfaceT_a79f1ccbed850d90d49e7029270348e17}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!set\+\_\+knots\+\_\+n@{set\+\_\+knots\+\_\+n}}
\index{set\+\_\+knots\+\_\+n@{set\+\_\+knots\+\_\+n}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{set\+\_\+knots\+\_\+n()}{set\_knots\_n()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::set\+\_\+knots\+\_\+n (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Scalar $>$}]{\+\_\+knots }\end{DoxyParamCaption})}



Set the knotvector of the bspline surface in n direction. 


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


Definition at line 369 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a94ae2470192f482b67fa376f281fe199}\label{classACG_1_1BSplineSurfaceT_a94ae2470192f482b67fa376f281fe199}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!spanm@{spanm}}
\index{spanm@{spanm}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{spanm()}{spanm()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::spanm (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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 757 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_abf1812c2ba90ba3603bc02753b637d28}\label{classACG_1_1BSplineSurfaceT_abf1812c2ba90ba3603bc02753b637d28}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!spann@{spann}}
\index{spann@{spann}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{spann()}{spann()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::spann (\begin{DoxyParamCaption}\item[{double}]{\+\_\+t }\end{DoxyParamCaption})}



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 767 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_af6f99dac3584113d4c5b5cfa2a18382f}\label{classACG_1_1BSplineSurfaceT_af6f99dac3584113d4c5b5cfa2a18382f}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!surface\+Point@{surface\+Point}}
\index{surface\+Point@{surface\+Point}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{surface\+Point()}{surfacePoint()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
PointT \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::surface\+Point (\begin{DoxyParamCaption}\item[{double}]{\+\_\+u,  }\item[{double}]{\+\_\+v }\end{DoxyParamCaption})}



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 470 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_aa249b6225e9b6717450a16bc4b0f87b0}\label{classACG_1_1BSplineSurfaceT_aa249b6225e9b6717450a16bc4b0f87b0}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!surface\+Point\+\_\+rec@{surface\+Point\+\_\+rec}}
\index{surface\+Point\+\_\+rec@{surface\+Point\+\_\+rec}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{surface\+Point\+\_\+rec()}{surfacePoint\_rec()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
PointT \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::surface\+Point\+\_\+rec (\begin{DoxyParamCaption}\item[{double}]{\+\_\+u,  }\item[{double}]{\+\_\+v }\end{DoxyParamCaption})}



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

Slower version of \hyperlink{classACG_1_1BSplineSurfaceT_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 571 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1BSplineSurfaceT_a998e3099546cd6f4320ac3e84d45935c}\label{classACG_1_1BSplineSurfaceT_a998e3099546cd6f4320ac3e84d45935c}} 
\index{A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}!surface\+Point\+Normal@{surface\+Point\+Normal}}
\index{surface\+Point\+Normal@{surface\+Point\+Normal}!A\+C\+G\+::\+B\+Spline\+SurfaceT@{A\+C\+G\+::\+B\+Spline\+SurfaceT}}
\subsubsection{\texorpdfstring{surface\+Point\+Normal()}{surfacePointNormal()}}
{\footnotesize\ttfamily template$<$class PointT $>$ \\
void \hyperlink{classACG_1_1BSplineSurfaceT}{A\+C\+G\+::\+B\+Spline\+SurfaceT}$<$ PointT $>$\+::surface\+Point\+Normal (\begin{DoxyParamCaption}\item[{Point \&}]{\+\_\+pt,  }\item[{Point \&}]{\+\_\+normal,  }\item[{double}]{\+\_\+u,  }\item[{double}]{\+\_\+v }\end{DoxyParamCaption})}



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 513 of file B\+Spline\+Surface\+T\+\_\+impl.\+hh.



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