//=========================================================================== // GoTools Core - SINTEF Geometry Tools Core library, version 2.0.1 // // Copyright (C) 2000-2007, 2010 SINTEF ICT, Applied Mathematics, Norway. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., // 59 Temple Place - Suite 330, // Boston, MA 02111-1307, USA. // // Contact information: E-mail: tor.dokken@sintef.no // SINTEF ICT, Department of Applied Mathematics, // P.O. Box 124 Blindern, // 0314 Oslo, Norway. // // Other licenses are also available for this software, notably licenses // for: // - Building commercial software. // - Building software whose source code you wish to keep private. //=========================================================================== 00015 #ifndef _CURVECREATORS_H 00016 #define _CURVECREATORS_H 00017 00018 #include "GoTools/geometry/ParamCurve.h" 00019 #include "GoTools/geometry/CurveOnSurface.h" 00020 #include "GoTools/geometry/SplineSurface.h" 00021 00022 00023 namespace Go 00024 { 00025 00026 00027 class SplineCurve; 00028 00031 namespace CurveCreators 00032 { 00033 00037 00048 SplineCurve GO_API *multCurveWithFunction(const SplineCurve& alpha, 00049 const SplineCurve& f); 00050 00064 SplineCurve GO_API *blend(const SplineCurve& alpha_1, 00065 const SplineCurve& f_1, 00066 const SplineCurve& alpha_2, 00067 const SplineCurve& f_2); 00068 00071 00098 SplineCurve GO_API *approxCurves(boost::shared_ptr<SplineCurve>* first_crv, 00099 boost::shared_ptr<SplineCurve>* last_crv, 00100 const std::vector<Point>& start_pt, 00101 const std::vector<Point>& end_pt, 00102 double approxtol, 00103 double& maxdist, 00104 int max_iter = 5); 00105 00106 /* SplineCurve GO_API * */ 00107 /* projectSpaceCurve(boost::shared_ptr<ParamCurve>& space_cv, */ 00108 /* boost::shared_ptr<ParamSurface>& surf, */ 00109 /* boost::shared_ptr<Point>& start_par_pt, */ 00110 /* boost::shared_ptr<Point>& end_par_pt, */ 00111 /* double epsge, */ 00112 /* const RectDomain* domain_of_interest = NULL); */ 00113 00114 void 00115 projectCurve(boost::shared_ptr<ParamCurve>& space_cv, 00116 boost::shared_ptr<ParamSurface>& surf, 00117 double epsge, 00118 boost::shared_ptr<SplineCurve>& proj_cv, 00119 boost::shared_ptr<SplineCurve>& par_cv); 00120 00123 00147 SplineCurve GO_API * 00148 projectSpaceCurve(boost::shared_ptr<ParamCurve>& space_cv, 00149 boost::shared_ptr<ParamSurface>& surf, 00150 boost::shared_ptr<Point>& start_par_pt, 00151 boost::shared_ptr<Point>& end_par_pt, 00152 double epsge, 00153 const RectDomain* domain_of_interest = NULL); 00154 00156 00166 SplineCurve GO_API * 00167 liftParameterCurve(boost::shared_ptr<ParamCurve>& parameter_cv, 00168 boost::shared_ptr<ParamSurface>& surf, 00169 double epsge); 00170 00171 // Assuming dim = 3 (or 2?) 00172 // Axis defines the start-/end-point of the curve. 00174 00183 SplineCurve GO_API *createCircle(Point center, Point axis, Point normal, 00184 double radius); 00185 00187 boost::shared_ptr<Go::SplineCurve> GO_API 00188 insertParamDomain(const Go::SplineCurve& cv_1d, double knot_tol = 1e-08); 00189 00190 } 00191 00192 00193 } // namespace go 00194 00195 00196 #endif // _CURVECREATORS_H 00197
Generated on Tue Sep 21 15:44:16 2010 for GoTools Core by  doxygen 1.6.3