00001 /* LIBGUL - Geometry Utility Library 00002 * Copyright (C) 1998-1999 Norbert Irmer 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Library General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public 00015 * License along with this library; if not, write to the 00016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef GUNU_GLOBAL_APPROXIMATE_H 00021 #define GUNU_GLOBAL_APPROXIMATE_H 00022 00023 namespace gunu { 00024 00025 /*---------------------------------------------------------------------- 00026 Least squares approximation of a set of data points with a curve of a 00027 certain degree, number of knots and number of control points 00028 (knot vector of the curve and parameter values of the data points have 00029 to be provided by the caller; also the maximum number of data points per 00030 knot span must be given) 00031 -----------------------------------------------------------------------*/ 00032 template< class T, class EP > 00033 GULAPI bool DoGlobalCurveApproximation( 00034 int nQ, 00035 const Ptr<EP>& Q, const 00036 Ptr<T>& QU, 00037 int n, 00038 int p, 00039 const Ptr<T>& U, 00040 int max_pts_span, 00041 Ptr<EP>& P ); 00042 00043 00044 /*---------------------------------------------------------------------- 00045 Least squares approximation of a set of data points with a curve of a 00046 certain degree, number of knots and number of control points 00047 -----------------------------------------------------------------------*/ 00048 template< class T, class EP > 00049 GULAPI bool GlobalCurveApproximation(int nQ, const Ptr<EP>& Q, 00050 int n, int p, Ptr<T>& U, Ptr<EP>& P ); 00051 00052 /*---------------------------------------------------------------------- 00053 Least squares approximation of a set of data points with a surface 00054 -----------------------------------------------------------------------*/ 00055 template< class T, class EP > 00056 GULAPI bool GlobalSurfaceApproximation( 00057 int nRows, int nCols, const Ptr< Ptr<EP> >& Q, 00058 int nu, int pu, Ptr<T>& U, int nv, int pv, Ptr<T>& V, 00059 Ptr< Ptr<EP> > &P ); 00060 00061 } 00062 00063 #endif