mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
@@ -1,3 +1,63 @@
|
||||
GeomInt.cxx
|
||||
GeomInt.hxx
|
||||
GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_IntSS.cxx
|
||||
GeomInt_IntSS.hxx
|
||||
GeomInt_IntSS.lxx
|
||||
GeomInt_IntSS_1.cxx
|
||||
GeomInt_VectorOfReal.hxx
|
||||
GeomInt_LineConstructor.cxx
|
||||
GeomInt_LineConstructor.hxx
|
||||
GeomInt_LineConstructor.lxx
|
||||
GeomInt_LineTool.cxx
|
||||
GeomInt_LineTool.hxx
|
||||
GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_ParameterAndOrientation.cxx
|
||||
GeomInt_ParameterAndOrientation.hxx
|
||||
GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx
|
||||
GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_SequenceOfParameterAndOrientation.hxx
|
||||
GeomInt_TheComputeLineBezierOfWLApprox.hxx
|
||||
GeomInt_TheComputeLineBezierOfWLApprox_0.cxx
|
||||
GeomInt_TheComputeLineOfWLApprox.hxx
|
||||
GeomInt_TheComputeLineOfWLApprox_0.cxx
|
||||
GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx
|
||||
GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
||||
GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx
|
||||
GeomInt_TheImpPrmSvSurfacesOfWLApprox_0.cxx
|
||||
GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx
|
||||
GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
||||
GeomInt_TheMultiLineOfWLApprox.hxx
|
||||
GeomInt_TheMultiLineOfWLApprox_0.cxx
|
||||
GeomInt_TheMultiLineToolOfWLApprox.hxx
|
||||
GeomInt_TheMultiLineToolOfWLApprox_0.cxx
|
||||
GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx
|
||||
GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
||||
GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx
|
||||
GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_0.cxx
|
||||
GeomInt_VectorOfReal.hxx
|
||||
GeomInt_WLApprox.hxx
|
||||
GeomInt_WLApprox_0.cxx
|
||||
|
@@ -1,71 +0,0 @@
|
||||
-- Created on: 1995-01-27
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
package GeomInt
|
||||
|
||||
---Purpose: Provides intersections on between two surfaces of Geom.
|
||||
-- The result are curves from Geom.
|
||||
|
||||
|
||||
uses StdFail,
|
||||
TCollection,
|
||||
TColStd,
|
||||
TopAbs,
|
||||
|
||||
gp,
|
||||
Geom,
|
||||
Geom2d,
|
||||
TColGeom,
|
||||
TColGeom2d,
|
||||
Adaptor3d,
|
||||
GeomAdaptor,
|
||||
|
||||
IntSurf,
|
||||
IntPatch,
|
||||
ApproxInt,
|
||||
Bnd
|
||||
|
||||
is
|
||||
|
||||
class IntSS;
|
||||
imported VectorOfReal;
|
||||
|
||||
class LineConstructor;
|
||||
|
||||
class LineTool;
|
||||
|
||||
class WLApprox instantiates Approx from ApproxInt
|
||||
(HSurface from Adaptor3d,
|
||||
HSurfaceTool from Adaptor3d,
|
||||
Quadric from IntSurf,
|
||||
QuadricTool from IntSurf,
|
||||
WLine from IntPatch);
|
||||
|
||||
private class ParameterAndOrientation;
|
||||
|
||||
imported SequenceOfParameterAndOrientation;
|
||||
|
||||
AdjustPeriodic(thePar : Real from Standard;
|
||||
theParMin : Real from Standard;
|
||||
theParMax : Real from Standard;
|
||||
thePeriod : Real from Standard;
|
||||
theNewPar : out Real from Standard;
|
||||
theOffset : out Real from Standard;
|
||||
theEps : Real from Standard = 0.0)
|
||||
returns Boolean from Standard;
|
||||
---Purpose: Adjusts the parameter <thePar> to the range [theParMin, theParMax]
|
||||
|
||||
end GeomInt;
|
119
src/GeomInt/GeomInt.hxx
Normal file
119
src/GeomInt/GeomInt.hxx
Normal file
@@ -0,0 +1,119 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_HeaderFile
|
||||
#define _GeomInt_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class GeomInt_IntSS;
|
||||
class GeomInt_LineConstructor;
|
||||
class GeomInt_LineTool;
|
||||
class GeomInt_WLApprox;
|
||||
class GeomInt_ParameterAndOrientation;
|
||||
class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_ThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheImpPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_TheComputeLineOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_TheComputeLineBezierOfWLApprox;
|
||||
|
||||
|
||||
//! Provides intersections on between two surfaces of Geom.
|
||||
//! The result are curves from Geom.
|
||||
class GeomInt
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Adjusts the parameter <thePar> to the range [theParMin, theParMax]
|
||||
Standard_EXPORT static Standard_Boolean AdjustPeriodic (const Standard_Real thePar, const Standard_Real theParMin, const Standard_Real theParMax, const Standard_Real thePeriod, Standard_Real& theNewPar, Standard_Real& theOffset, const Standard_Real theEps = 0.0);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
friend class GeomInt_IntSS;
|
||||
friend class GeomInt_LineConstructor;
|
||||
friend class GeomInt_LineTool;
|
||||
friend class GeomInt_WLApprox;
|
||||
friend class GeomInt_ParameterAndOrientation;
|
||||
friend class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
friend class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
friend class GeomInt_ThePrmPrmSvSurfacesOfWLApprox;
|
||||
friend class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox;
|
||||
friend class GeomInt_TheImpPrmSvSurfacesOfWLApprox;
|
||||
friend class GeomInt_TheMultiLineOfWLApprox;
|
||||
friend class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
friend class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox;
|
||||
friend class GeomInt_TheComputeLineOfWLApprox;
|
||||
friend class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
friend class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
friend class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
friend class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
friend class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
friend class GeomInt_TheComputeLineBezierOfWLApprox;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_HeaderFile
|
@@ -0,0 +1,74 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,40 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpParLeastSquare GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpParLeastSquare_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpParFunction GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpParFunction_hxx <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpGradient_BFGS GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpGradient_BFGS_hxx <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpGradient GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpGradient_hxx <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_BSpGradient_BFGS.gxx>
|
||||
|
@@ -0,0 +1,140 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex);
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& Index() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void SetFirstLambda (const Standard_Real l1);
|
||||
|
||||
Standard_EXPORT void SetLastLambda (const Standard_Real l2);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
GeomInt_TheMultiLineOfWLApprox MyMultiLine;
|
||||
AppParCurves_MultiBSpCurve MyMultiBSpCurve;
|
||||
Standard_Integer nbpoles;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,35 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define Squares GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Squares_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpFunction GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpFunction_hxx <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_BSpFunction.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const GeomInt_TheMultiLineOfWLApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_LeastSquare GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_LeastSquare_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -0,0 +1,75 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
@@ -0,0 +1,43 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_ResConstraint GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ResConstraint_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_ParFunction GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ParFunction_hxx <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_Gradient_hxx <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_Gradient_BFGS.gxx>
|
||||
|
@@ -0,0 +1,75 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,43 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_ResConstraint GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ResConstraint_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_ParFunction GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ParFunction_hxx <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_Gradient_hxx <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_Gradient_BFGS.gxx>
|
||||
|
@@ -1,251 +0,0 @@
|
||||
-- Created on: 1995-01-27
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class IntSS from GeomInt
|
||||
|
||||
---Purpose:
|
||||
|
||||
|
||||
uses Intersection from IntPatch,
|
||||
LineConstructor from GeomInt,
|
||||
SequenceOfCurve from TColGeom,
|
||||
SequenceOfCurve from TColGeom2d,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Curve from Geom,
|
||||
Curve from Geom2d,
|
||||
Surface from Geom,
|
||||
HSurface from GeomAdaptor,
|
||||
TopolTool from Adaptor3d,
|
||||
Line from IntPatch,
|
||||
RLine from IntPatch,
|
||||
Box2d from Bnd,
|
||||
VectorOfReal from GeomInt
|
||||
|
||||
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
returns IntSS from GeomInt;
|
||||
---C++: inline
|
||||
|
||||
Create(S1,S2: Surface from Geom; Tol: Real from Standard;
|
||||
Approx : Boolean from Standard = Standard_True;
|
||||
ApproxS1 : Boolean from Standard = Standard_False;
|
||||
ApproxS2 : Boolean from Standard = Standard_False)
|
||||
---Purpose: performs general intersection of two surfaces just now
|
||||
returns IntSS from GeomInt;
|
||||
---C++: inline
|
||||
|
||||
Perform(me: in out;S1,S2 : Surface from Geom; Tol: Real from Standard;
|
||||
Approx : Boolean from Standard = Standard_True;
|
||||
ApproxS1 : Boolean from Standard = Standard_False;
|
||||
ApproxS2 : Boolean from Standard = Standard_False)
|
||||
---Purpose: general intersection of two surfaces
|
||||
is static;
|
||||
|
||||
Perform(me: in out;HS1,HS2: HSurface from GeomAdaptor; Tol: Real from Standard;
|
||||
Approx : Boolean from Standard = Standard_True;
|
||||
ApproxS1 : Boolean from Standard = Standard_False;
|
||||
ApproxS2 : Boolean from Standard = Standard_False)
|
||||
---Purpose: intersection of adapted surfaces
|
||||
is static;
|
||||
---C++: inline
|
||||
|
||||
Perform(me: in out;S1,S2: Surface from Geom; Tol: Real from Standard;
|
||||
U1,V1,U2,V2: Real from Standard;
|
||||
Approx : Boolean from Standard = Standard_True;
|
||||
ApproxS1 : Boolean from Standard = Standard_False;
|
||||
ApproxS2 : Boolean from Standard = Standard_False)
|
||||
---Purpose: general intersection using a starting point
|
||||
is static;
|
||||
|
||||
Perform(me: in out;HS1,HS2: HSurface from GeomAdaptor; Tol: Real from Standard;
|
||||
U1,V1,U2,V2: Real from Standard;
|
||||
Approx : Boolean from Standard = Standard_True;
|
||||
ApproxS1 : Boolean from Standard = Standard_False;
|
||||
ApproxS2 : Boolean from Standard = Standard_False)
|
||||
---Purpose: intersection of adapted surfaces using a starting point
|
||||
is static;
|
||||
---C++: inline
|
||||
|
||||
IsDone(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
---C++: inline
|
||||
|
||||
TolReached3d(me) returns Real from Standard
|
||||
is static;
|
||||
---C++: inline
|
||||
|
||||
TolReached2d(me) returns Real from Standard
|
||||
is static;
|
||||
---C++: inline
|
||||
|
||||
NbLines(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
Line(me; Index: Integer from Standard)
|
||||
|
||||
returns any Curve from Geom
|
||||
---C++: return const&
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
HasLineOnS1(me; Index: Integer from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
LineOnS1(me; Index: Integer from Standard)
|
||||
|
||||
returns any Curve from Geom2d
|
||||
---C++: return const&
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is static;
|
||||
|
||||
HasLineOnS2(me; Index: Integer from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
LineOnS2(me; Index: Integer from Standard)
|
||||
|
||||
returns any Curve from Geom2d
|
||||
---C++: return const&
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
NbBoundaries(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
Boundary(me; Index: Integer from Standard)
|
||||
|
||||
returns any Curve from Geom
|
||||
---C++: return const&
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
NbPoints(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
Point(me; Index: Integer from Standard)
|
||||
|
||||
returns Pnt from gp
|
||||
---C++: inline
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Pnt2d(me; Index: Integer from Standard;
|
||||
OnFirst: Boolean from Standard)
|
||||
|
||||
returns Pnt2d from gp
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
SetTolFixTangents(me:out;
|
||||
aTolCheck:Real from Standard;
|
||||
aTolAngCheck:Real from Standard);
|
||||
|
||||
TolFixTangents(me:out;
|
||||
aTolCheck:out Real from Standard;
|
||||
aTolAngCheck:out Real from Standard);
|
||||
|
||||
TreatRLine(myclass; theRL: RLine from IntPatch;
|
||||
theHS1, theHS2: HSurface from GeomAdaptor;
|
||||
theC3d: out Curve from Geom;
|
||||
theC2d1, theC2d2: out Curve from Geom2d;
|
||||
theTolReached: out Real from Standard);
|
||||
---Purpose: converts RLine to Geom(2d)_Curve.
|
||||
|
||||
BuildPCurves(myclass; f, l : Real from Standard;
|
||||
Tol: out Real from Standard;
|
||||
S: Surface from Geom;
|
||||
C: Curve from Geom;
|
||||
C2d: out Curve from Geom2d);
|
||||
---Purpose: creates 2D-curve on given surface from given 3D-curve
|
||||
|
||||
TrimILineOnSurfBoundaries(myclass; theC2d1, theC2d2: Curve from Geom2d;
|
||||
theBound1, theBound2: Box2d from Bnd;
|
||||
theArrayOfParameters: out VectorOfReal from GeomInt);
|
||||
---Purpose: puts into theArrayOfParameters the parameters of intersection
|
||||
-- points of given theC2d1 and theC2d2 curves with the boundaries
|
||||
-- of the source surface.
|
||||
|
||||
--- Private methods
|
||||
--
|
||||
--
|
||||
InternalPerform(me: in out; Tol: Real from Standard;
|
||||
Approx,ApproxS1,ApproxS2 : Boolean from Standard;
|
||||
useStart : Boolean from Standard;
|
||||
U1,V1,U2,V2: Real from Standard)
|
||||
is static protected;
|
||||
|
||||
MakeCurve(me: in out; Ind : Integer from Standard;
|
||||
D1,D2 : TopolTool from Adaptor3d;
|
||||
Tol : Real from Standard;
|
||||
Approx : Boolean from Standard;
|
||||
Approx1 : Boolean from Standard;
|
||||
Approx2 : Boolean from Standard)
|
||||
is protected;
|
||||
|
||||
fields
|
||||
|
||||
myIntersector : Intersection from IntPatch;
|
||||
myLConstruct : LineConstructor from GeomInt;
|
||||
myHS1 : HSurface from GeomAdaptor;
|
||||
myHS2 : HSurface from GeomAdaptor;
|
||||
myNbrestr : Integer from Standard;
|
||||
sline : SequenceOfCurve from TColGeom;
|
||||
slineS1 : SequenceOfCurve from TColGeom2d;
|
||||
slineS2 : SequenceOfCurve from TColGeom2d;
|
||||
myTolReached2d : Real from Standard;
|
||||
myTolReached3d : Real from Standard;
|
||||
--
|
||||
myTolCheck : Real from Standard;
|
||||
myTolAngCheck : Real from Standard;
|
||||
--
|
||||
end IntSS;
|
@@ -14,14 +14,20 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_IntSS.ixx>
|
||||
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <Bnd_Box2d.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <GeomInt_IntSS.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
|
153
src/GeomInt/GeomInt_IntSS.hxx
Normal file
153
src/GeomInt/GeomInt_IntSS.hxx
Normal file
@@ -0,0 +1,153 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_IntSS_HeaderFile
|
||||
#define _GeomInt_IntSS_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntPatch_Intersection.hxx>
|
||||
#include <GeomInt_LineConstructor.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColGeom_SequenceOfCurve.hxx>
|
||||
#include <TColGeom2d_SequenceOfCurve.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <GeomInt_VectorOfReal.hxx>
|
||||
class GeomAdaptor_HSurface;
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Geom_Surface;
|
||||
class Geom_Curve;
|
||||
class Geom2d_Curve;
|
||||
class gp_Pnt2d;
|
||||
class IntPatch_RLine;
|
||||
class Bnd_Box2d;
|
||||
class Adaptor3d_TopolTool;
|
||||
|
||||
|
||||
|
||||
class GeomInt_IntSS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
GeomInt_IntSS();
|
||||
|
||||
//! performs general intersection of two surfaces just now
|
||||
GeomInt_IntSS(const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const Standard_Real Tol, const Standard_Boolean Approx = Standard_True, const Standard_Boolean ApproxS1 = Standard_False, const Standard_Boolean ApproxS2 = Standard_False);
|
||||
|
||||
//! general intersection of two surfaces
|
||||
Standard_EXPORT void Perform (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const Standard_Real Tol, const Standard_Boolean Approx = Standard_True, const Standard_Boolean ApproxS1 = Standard_False, const Standard_Boolean ApproxS2 = Standard_False);
|
||||
|
||||
//! intersection of adapted surfaces
|
||||
void Perform (const Handle(GeomAdaptor_HSurface)& HS1, const Handle(GeomAdaptor_HSurface)& HS2, const Standard_Real Tol, const Standard_Boolean Approx = Standard_True, const Standard_Boolean ApproxS1 = Standard_False, const Standard_Boolean ApproxS2 = Standard_False);
|
||||
|
||||
//! general intersection using a starting point
|
||||
Standard_EXPORT void Perform (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const Standard_Real Tol, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Boolean Approx = Standard_True, const Standard_Boolean ApproxS1 = Standard_False, const Standard_Boolean ApproxS2 = Standard_False);
|
||||
|
||||
//! intersection of adapted surfaces using a starting point
|
||||
void Perform (const Handle(GeomAdaptor_HSurface)& HS1, const Handle(GeomAdaptor_HSurface)& HS2, const Standard_Real Tol, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Boolean Approx = Standard_True, const Standard_Boolean ApproxS1 = Standard_False, const Standard_Boolean ApproxS2 = Standard_False);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_Real TolReached3d() const;
|
||||
|
||||
Standard_Real TolReached2d() const;
|
||||
|
||||
Standard_Integer NbLines() const;
|
||||
|
||||
Standard_EXPORT const Handle(Geom_Curve)& Line (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasLineOnS1 (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT const Handle(Geom2d_Curve)& LineOnS1 (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasLineOnS2 (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT const Handle(Geom2d_Curve)& LineOnS2 (const Standard_Integer Index) const;
|
||||
|
||||
Standard_Integer NbBoundaries() const;
|
||||
|
||||
Standard_EXPORT const Handle(Geom_Curve)& Boundary (const Standard_Integer Index) const;
|
||||
|
||||
Standard_Integer NbPoints() const;
|
||||
|
||||
gp_Pnt Point (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT gp_Pnt2d Pnt2d (const Standard_Integer Index, const Standard_Boolean OnFirst) const;
|
||||
|
||||
Standard_EXPORT void SetTolFixTangents (const Standard_Real aTolCheck, const Standard_Real aTolAngCheck);
|
||||
|
||||
Standard_EXPORT void TolFixTangents (Standard_Real& aTolCheck, Standard_Real& aTolAngCheck);
|
||||
|
||||
//! converts RLine to Geom(2d)_Curve.
|
||||
Standard_EXPORT static void TreatRLine (const Handle(IntPatch_RLine)& theRL, const Handle(GeomAdaptor_HSurface)& theHS1, const Handle(GeomAdaptor_HSurface)& theHS2, Handle(Geom_Curve)& theC3d, Handle(Geom2d_Curve)& theC2d1, Handle(Geom2d_Curve)& theC2d2, Standard_Real& theTolReached);
|
||||
|
||||
//! creates 2D-curve on given surface from given 3D-curve
|
||||
Standard_EXPORT static void BuildPCurves (const Standard_Real f, const Standard_Real l, Standard_Real& Tol, const Handle(Geom_Surface)& S, const Handle(Geom_Curve)& C, Handle(Geom2d_Curve)& C2d);
|
||||
|
||||
//! puts into theArrayOfParameters the parameters of intersection
|
||||
//! points of given theC2d1 and theC2d2 curves with the boundaries
|
||||
//! of the source surface.
|
||||
Standard_EXPORT static void TrimILineOnSurfBoundaries (const Handle(Geom2d_Curve)& theC2d1, const Handle(Geom2d_Curve)& theC2d2, const Bnd_Box2d& theBound1, const Bnd_Box2d& theBound2, GeomInt_VectorOfReal& theArrayOfParameters);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (const Standard_Real Tol, const Standard_Boolean Approx, const Standard_Boolean ApproxS1, const Standard_Boolean ApproxS2, const Standard_Boolean useStart, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void MakeCurve (const Standard_Integer Ind, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real Tol, const Standard_Boolean Approx, const Standard_Boolean Approx1, const Standard_Boolean Approx2);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
IntPatch_Intersection myIntersector;
|
||||
GeomInt_LineConstructor myLConstruct;
|
||||
Handle(GeomAdaptor_HSurface) myHS1;
|
||||
Handle(GeomAdaptor_HSurface) myHS2;
|
||||
Standard_Integer myNbrestr;
|
||||
TColGeom_SequenceOfCurve sline;
|
||||
TColGeom2d_SequenceOfCurve slineS1;
|
||||
TColGeom2d_SequenceOfCurve slineS2;
|
||||
Standard_Real myTolReached2d;
|
||||
Standard_Real myTolReached3d;
|
||||
Standard_Real myTolCheck;
|
||||
Standard_Real myTolAngCheck;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <GeomInt_IntSS.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_IntSS_HeaderFile
|
@@ -14,90 +14,71 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include <GeomInt_IntSS.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Approx_CurveOnSurface.hxx>
|
||||
#include <Bnd_Box2d.hxx>
|
||||
#include <ElSLib.hxx>
|
||||
#include <Extrema_ExtPS.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
#include <Geom2d_Line.hxx>
|
||||
#include <Geom2d_TrimmedCurve.hxx>
|
||||
#include <Geom2dAdaptor.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <Geom2dInt_GInter.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
#include <Geom_Circle.hxx>
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <Geom_Ellipse.hxx>
|
||||
#include <Geom_Hyperbola.hxx>
|
||||
#include <Geom_Line.hxx>
|
||||
#include <Geom_Parabola.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
#include <Geom_TrimmedCurve.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <GeomAdaptor.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <GeomInt.hxx>
|
||||
|
||||
#include <Precision.hxx>
|
||||
#include <GeomInt_IntSS.hxx>
|
||||
#include <GeomInt_WLApprox.hxx>
|
||||
#include <GeomLib_Check2dBSplineCurve.hxx>
|
||||
#include <GeomLib_CheckBSplineCurve.hxx>
|
||||
#include <GeomProjLib.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColStd_Array1OfListOfInteger.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <IntPatch_Line.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <IntPatch_GLine.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <IntPatch_ALineToWLine.hxx>
|
||||
#include <IntPatch_GLine.hxx>
|
||||
#include <IntPatch_IType.hxx>
|
||||
#include <IntPatch_Line.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <IntRes2d_IntersectionPoint.hxx>
|
||||
#include <IntRes2d_IntersectionSegment.hxx>
|
||||
#include <NCollection_IncAllocator.hxx>
|
||||
#include <NCollection_List.hxx>
|
||||
#include <NCollection_LocalArray.hxx>
|
||||
#include <NCollection_StdAllocator.hxx>
|
||||
#include <vector>
|
||||
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
|
||||
#include <GeomAdaptor.hxx>
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <Geom_Line.hxx>
|
||||
#include <Geom_Parabola.hxx>
|
||||
#include <Geom_Hyperbola.hxx>
|
||||
#include <Geom_TrimmedCurve.hxx>
|
||||
#include <Geom_Circle.hxx>
|
||||
#include <Geom_Ellipse.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
|
||||
#include <Geom2dAdaptor.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom2d_TrimmedCurve.hxx>
|
||||
|
||||
#include <GeomLib_CheckBSplineCurve.hxx>
|
||||
#include <GeomLib_Check2dBSplineCurve.hxx>
|
||||
#include <GeomProjLib.hxx>
|
||||
#include <Approx_CurveOnSurface.hxx>
|
||||
|
||||
#include <ElSLib.hxx>
|
||||
|
||||
#include <GeomInt_WLApprox.hxx>
|
||||
#include <Extrema_ExtPS.hxx>
|
||||
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <Geom2d_Line.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <Geom2dAdaptor.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Approx_CurveOnSurface.hxx>
|
||||
#include <GeomAdaptor.hxx>
|
||||
#include <GeomProjLib.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <IntRes2d_IntersectionPoint.hxx>
|
||||
#include <IntRes2d_IntersectionSegment.hxx>
|
||||
#include <Geom2dInt_GInter.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <TColStd_Array1OfListOfInteger.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
static
|
||||
void Parameters(const Handle(GeomAdaptor_HSurface)& HS1,
|
||||
const Handle(GeomAdaptor_HSurface)& HS2,
|
||||
|
@@ -1,98 +0,0 @@
|
||||
-- Created on: 1995-02-07
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class LineConstructor from GeomInt
|
||||
|
||||
---Purpose: Splits given Line.
|
||||
|
||||
uses Line from IntPatch,
|
||||
TopolTool from Adaptor3d,
|
||||
HSurface from GeomAdaptor,
|
||||
SequenceOfReal from TColStd
|
||||
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
returns LineConstructor from GeomInt;
|
||||
---C++: inline
|
||||
---Purpose:
|
||||
--- Empty constructor
|
||||
---
|
||||
|
||||
Load(me: in out; D1,D2: TopolTool from Adaptor3d;
|
||||
S1,S2: HSurface from GeomAdaptor)
|
||||
is static;
|
||||
---C++: inline
|
||||
---Purpose:
|
||||
--- Initializes me by two surfaces and corresponding
|
||||
--- tools which represent boundaries of surfaces
|
||||
---
|
||||
|
||||
Perform(me: in out; L: Line from IntPatch)
|
||||
is static;
|
||||
---Purpose:
|
||||
--- Splits line
|
||||
---
|
||||
|
||||
IsDone(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
---C++: inline
|
||||
---Purpose:
|
||||
--- Returns True if splitting was successful
|
||||
---
|
||||
|
||||
NbParts(me)
|
||||
returns Integer from Standard
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
---C++: inline
|
||||
---Purpose:
|
||||
--- Returns number of splits
|
||||
---
|
||||
|
||||
Part(me; I: Integer from Standard; WFirst,WLast: out Real from Standard)
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
is static;
|
||||
---C++: inline
|
||||
---Purpose:
|
||||
--- Return first and last parameters
|
||||
--- for given index of split
|
||||
---
|
||||
|
||||
TreatCircle(me:out;
|
||||
aLine : Line from IntPatch;
|
||||
aTol: Real from Standard)
|
||||
is protected;
|
||||
|
||||
|
||||
--PeriodicLine(me; L: Line from IntPatch)
|
||||
--is static private;
|
||||
|
||||
fields
|
||||
|
||||
done : Boolean from Standard;
|
||||
seqp : SequenceOfReal from TColStd;
|
||||
myDom1: TopolTool from Adaptor3d;
|
||||
myDom2: TopolTool from Adaptor3d;
|
||||
myHS1 : HSurface from GeomAdaptor;
|
||||
myHS2 : HSurface from GeomAdaptor;
|
||||
|
||||
end LineConstructor;
|
@@ -14,33 +14,32 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_LineConstructor.ixx>
|
||||
|
||||
#include <GeomInt_LineTool.hxx>
|
||||
#include <GeomInt_SequenceOfParameterAndOrientation.hxx>
|
||||
#include <GeomInt_ParameterAndOrientation.hxx>
|
||||
|
||||
#include <IntPatch_Point.hxx>
|
||||
#include <IntPatch_GLine.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <TopAbs_Orientation.hxx>
|
||||
|
||||
#include <Precision.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <GeomInt.hxx>
|
||||
|
||||
#include <GeomInt_LineConstructor.hxx>
|
||||
#include <GeomInt_LineTool.hxx>
|
||||
#include <GeomInt_ParameterAndOrientation.hxx>
|
||||
#include <GeomInt_SequenceOfParameterAndOrientation.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <IntPatch_GLine.hxx>
|
||||
#include <IntPatch_Line.hxx>
|
||||
#include <IntPatch_Point.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopAbs_Orientation.hxx>
|
||||
|
||||
static
|
||||
void Parameters(const Handle(GeomAdaptor_HSurface)& myHS1,
|
||||
|
101
src/GeomInt/GeomInt_LineConstructor.hxx
Normal file
101
src/GeomInt/GeomInt_LineConstructor.hxx
Normal file
@@ -0,0 +1,101 @@
|
||||
// Created on: 1995-02-07
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_LineConstructor_HeaderFile
|
||||
#define _GeomInt_LineConstructor_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_TopolTool;
|
||||
class GeomAdaptor_HSurface;
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class IntPatch_Line;
|
||||
|
||||
|
||||
//! Splits given Line.
|
||||
class GeomInt_LineConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
|
||||
//! Empty constructor
|
||||
GeomInt_LineConstructor();
|
||||
|
||||
|
||||
//! Initializes me by two surfaces and corresponding
|
||||
//! tools which represent boundaries of surfaces
|
||||
void Load (const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_TopolTool)& D2, const Handle(GeomAdaptor_HSurface)& S1, const Handle(GeomAdaptor_HSurface)& S2);
|
||||
|
||||
|
||||
//! Splits line
|
||||
Standard_EXPORT void Perform (const Handle(IntPatch_Line)& L);
|
||||
|
||||
|
||||
//! Returns True if splitting was successful
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
|
||||
//! Returns number of splits
|
||||
Standard_Integer NbParts() const;
|
||||
|
||||
|
||||
//! Return first and last parameters
|
||||
//! for given index of split
|
||||
void Part (const Standard_Integer I, Standard_Real& WFirst, Standard_Real& WLast) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void TreatCircle (const Handle(IntPatch_Line)& aLine, const Standard_Real aTol);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
TColStd_SequenceOfReal seqp;
|
||||
Handle(Adaptor3d_TopolTool) myDom1;
|
||||
Handle(Adaptor3d_TopolTool) myDom2;
|
||||
Handle(GeomAdaptor_HSurface) myHS1;
|
||||
Handle(GeomAdaptor_HSurface) myHS2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <GeomInt_LineConstructor.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_LineConstructor_HeaderFile
|
@@ -1,48 +0,0 @@
|
||||
-- Created on: 1995-02-08
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class LineTool from GeomInt
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses Line from IntPatch,
|
||||
Point from IntPatch,
|
||||
Pnt2d from gp
|
||||
|
||||
is
|
||||
|
||||
|
||||
NbVertex(myclass; L: Line from IntPatch)
|
||||
|
||||
returns Integer from Standard;
|
||||
|
||||
|
||||
Vertex(myclass; L:Line from IntPatch; I: Integer from Standard)
|
||||
|
||||
returns Point from IntPatch;
|
||||
---C++: return const&
|
||||
|
||||
FirstParameter(myclass; L: Line from IntPatch)
|
||||
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
LastParameter(myclass; L: Line from IntPatch)
|
||||
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
end LineTool;
|
@@ -14,15 +14,16 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_LineTool.ixx>
|
||||
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <GeomInt_LineTool.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <IntPatch_GLine.hxx>
|
||||
#include <IntPatch_Line.hxx>
|
||||
#include <IntPatch_Point.hxx>
|
||||
#include <IntPatch_RLine.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : NbVertex
|
||||
//purpose :
|
||||
|
69
src/GeomInt/GeomInt_LineTool.hxx
Normal file
69
src/GeomInt/GeomInt_LineTool.hxx
Normal file
@@ -0,0 +1,69 @@
|
||||
// Created on: 1995-02-08
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_LineTool_HeaderFile
|
||||
#define _GeomInt_LineTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class IntPatch_Line;
|
||||
class IntPatch_Point;
|
||||
|
||||
|
||||
|
||||
class GeomInt_LineTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbVertex (const Handle(IntPatch_Line)& L);
|
||||
|
||||
Standard_EXPORT static const IntPatch_Point& Vertex (const Handle(IntPatch_Line)& L, const Standard_Integer I);
|
||||
|
||||
Standard_EXPORT static Standard_Real FirstParameter (const Handle(IntPatch_Line)& L);
|
||||
|
||||
Standard_EXPORT static Standard_Real LastParameter (const Handle(IntPatch_Line)& L);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_LineTool_HeaderFile
|
100
src/GeomInt/GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx
Normal file
100
src/GeomInt/GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx
Normal file
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 1);
|
||||
|
||||
Standard_EXPORT GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations, const Standard_Real lambda1, const Standard_Real lambda2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
Standard_Boolean myIsLambdaDefined;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,42 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpParLeastSquare GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpParLeastSquare_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpParFunction GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpParFunction_hxx <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpGradient_BFGS GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpGradient_BFGS_hxx <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_BSpGradient GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_BSpGradient_hxx <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_BSpGradient.gxx>
|
||||
|
@@ -0,0 +1,92 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_ResConstraint GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ResConstraint_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_ParFunction GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ParFunction_hxx <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_Gradient_hxx <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_Gradient.gxx>
|
||||
|
@@ -0,0 +1,92 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_MyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_ResConstraint GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ResConstraint_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_ParFunction GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ParFunction_hxx <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_Gradient GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_Gradient_hxx <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_Gradient.gxx>
|
||||
|
@@ -0,0 +1,125 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
GeomInt_TheMultiLineOfWLApprox MyMultiLine;
|
||||
AppParCurves_MultiCurve MyMultiCurve;
|
||||
Standard_Integer Degre;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define Squares GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Squares_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define ResolCons GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define ResolCons_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define AppParCurves_Function GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_Function_hxx <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_Function.gxx>
|
||||
|
@@ -0,0 +1,125 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
GeomInt_TheMultiLineOfWLApprox MyMultiLine;
|
||||
AppParCurves_MultiCurve MyMultiCurve;
|
||||
Standard_Integer Degre;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define Squares GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Squares_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define ResolCons GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define ResolCons_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define AppParCurves_Function GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_Function_hxx <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_Function.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const GeomInt_TheMultiLineOfWLApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_LeastSquare GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_LeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const GeomInt_TheMultiLineOfWLApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_LeastSquare GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_LeastSquare_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -1,69 +0,0 @@
|
||||
-- Created on: 1995-02-08
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
private class ParameterAndOrientation from GeomInt
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses Orientation from TopAbs
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
|
||||
returns ParameterAndOrientation from GeomInt;
|
||||
|
||||
|
||||
Create(P: Real from Standard; Or1,Or2: Orientation from TopAbs)
|
||||
|
||||
returns ParameterAndOrientation from GeomInt;
|
||||
|
||||
|
||||
SetOrientation1(me: in out; Or: Orientation from TopAbs)
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
SetOrientation2(me: in out; Or: Orientation from TopAbs)
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Parameter(me)
|
||||
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Orientation1(me)
|
||||
|
||||
returns Orientation from TopAbs
|
||||
is static;
|
||||
|
||||
|
||||
Orientation2(me)
|
||||
|
||||
returns Orientation from TopAbs
|
||||
is static;
|
||||
|
||||
|
||||
fields
|
||||
|
||||
prm : Real from Standard;
|
||||
or1 : Orientation from TopAbs;
|
||||
or2 : Orientation from TopAbs;
|
||||
|
||||
end ParameterAndOrientation;
|
@@ -14,8 +14,8 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ParameterAndOrientation.ixx>
|
||||
|
||||
#include <GeomInt_ParameterAndOrientation.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : GeomInt_ParameterAndOrientation
|
||||
|
76
src/GeomInt/GeomInt_ParameterAndOrientation.hxx
Normal file
76
src/GeomInt/GeomInt_ParameterAndOrientation.hxx
Normal file
@@ -0,0 +1,76 @@
|
||||
// Created on: 1995-02-08
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ParameterAndOrientation_HeaderFile
|
||||
#define _GeomInt_ParameterAndOrientation_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TopAbs_Orientation.hxx>
|
||||
|
||||
|
||||
|
||||
class GeomInt_ParameterAndOrientation
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ParameterAndOrientation();
|
||||
|
||||
Standard_EXPORT GeomInt_ParameterAndOrientation(const Standard_Real P, const TopAbs_Orientation Or1, const TopAbs_Orientation Or2);
|
||||
|
||||
Standard_EXPORT void SetOrientation1 (const TopAbs_Orientation Or);
|
||||
|
||||
Standard_EXPORT void SetOrientation2 (const TopAbs_Orientation Or);
|
||||
|
||||
Standard_EXPORT Standard_Real Parameter() const;
|
||||
|
||||
Standard_EXPORT TopAbs_Orientation Orientation1() const;
|
||||
|
||||
Standard_EXPORT TopAbs_Orientation Orientation2() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real prm;
|
||||
TopAbs_Orientation or1;
|
||||
TopAbs_Orientation or2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ParameterAndOrientation_HeaderFile
|
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Vector& Duale() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintDerivative (const GeomInt_TheMultiLineOfWLApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA);
|
||||
|
||||
Standard_EXPORT const math_Matrix& InverseMatrix() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer NbConstraints (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbColumns (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer Deg) const;
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
Standard_Real Err;
|
||||
math_Matrix Cont;
|
||||
math_Matrix DeCont;
|
||||
math_Vector Secont;
|
||||
math_Matrix CTCinv;
|
||||
math_Vector Vardua;
|
||||
Standard_Integer IncPass;
|
||||
Standard_Integer IncTan;
|
||||
Standard_Integer IncCurv;
|
||||
TColStd_Array1OfInteger IPas;
|
||||
TColStd_Array1OfInteger ITan;
|
||||
TColStd_Array1OfInteger ICurv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ResolConstraint GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define AppParCurves_ResolConstraint_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_ResolConstraint.gxx>
|
||||
|
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Vector& Duale() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintDerivative (const GeomInt_TheMultiLineOfWLApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA);
|
||||
|
||||
Standard_EXPORT const math_Matrix& InverseMatrix() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer NbConstraints (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbColumns (const GeomInt_TheMultiLineOfWLApprox& SSP, const Standard_Integer Deg) const;
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
Standard_Real Err;
|
||||
math_Matrix Cont;
|
||||
math_Matrix DeCont;
|
||||
math_Vector Secont;
|
||||
math_Matrix CTCinv;
|
||||
math_Vector Vardua;
|
||||
Standard_Integer IncPass;
|
||||
Standard_Integer IncTan;
|
||||
Standard_Integer IncCurv;
|
||||
TColStd_Array1OfInteger IPas;
|
||||
TColStd_Array1OfInteger ITan;
|
||||
TColStd_Array1OfInteger ICurv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ToolLine GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ToolLine_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define AppParCurves_ResolConstraint GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define AppParCurves_ResolConstraint_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_ResolConstraint.gxx>
|
||||
|
155
src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox.hxx
Normal file
155
src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox.hxx
Normal file
@@ -0,0 +1,155 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheComputeLineBezierOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheComputeLineBezierOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_SequenceOfMultiCurve.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <Approx_SequenceOfHArray1OfReal.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheComputeLineBezierOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineBezierOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineBezierOfWLApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineBezierOfWLApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Perform (const GeomInt_TheMultiLineOfWLApprox& Line);
|
||||
|
||||
Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax);
|
||||
|
||||
Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d);
|
||||
|
||||
Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsAllApproximated() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsToleranceReached() const;
|
||||
|
||||
Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbMultiCurves() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& Value (const Standard_Integer Index = 1) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve& ChangeValue (const Standard_Integer Index = 1);
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& SplineValue();
|
||||
|
||||
Standard_EXPORT void Parametrization (Approx_ParametrizationType& partype) const;
|
||||
|
||||
Standard_EXPORT const TColStd_Array1OfReal& Parameters (const Standard_Integer Index = 1) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, Standard_Real& TheTol3d, Standard_Real& TheTol2d);
|
||||
|
||||
Standard_EXPORT Standard_Boolean ComputeCurve (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt);
|
||||
|
||||
Standard_EXPORT void Parameters (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchFirstLambda (const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchLastLambda (const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT void FirstTangencyVector (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void LastTangencyVector (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
|
||||
AppParCurves_SequenceOfMultiCurve myMultiCurves;
|
||||
AppParCurves_MultiCurve TheMultiCurve;
|
||||
AppParCurves_MultiBSpCurve myspline;
|
||||
Standard_Boolean alldone;
|
||||
Standard_Boolean tolreached;
|
||||
Approx_ParametrizationType Par;
|
||||
Handle(TColStd_HArray1OfReal) myParameters;
|
||||
Handle(TColStd_HArray1OfReal) myfirstParam;
|
||||
Approx_SequenceOfHArray1OfReal myPar;
|
||||
TColStd_SequenceOfReal Tolers3d;
|
||||
TColStd_SequenceOfReal Tolers2d;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Integer mydegremin;
|
||||
Standard_Integer mydegremax;
|
||||
Standard_Real mytol3d;
|
||||
Standard_Real mytol2d;
|
||||
Standard_Real currenttol3d;
|
||||
Standard_Real currenttol2d;
|
||||
Standard_Boolean mycut;
|
||||
Standard_Boolean mysquares;
|
||||
Standard_Integer myitermax;
|
||||
AppParCurves_Constraint myfirstC;
|
||||
AppParCurves_Constraint mylastC;
|
||||
Standard_Integer myMultiLineNb;
|
||||
Standard_Boolean myIsClear;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheComputeLineBezierOfWLApprox_HeaderFile
|
55
src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox_0.cxx
Normal file
55
src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,55 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheComputeLineBezierOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define LineTool GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define LineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define Approx_MyGradient GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_MyGradient_hxx <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradient GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ParLeastSquareOfMyGradient_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradient GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ResConstraintOfMyGradient_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradient GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ParFunctionOfMyGradient_hxx <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradient GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradient_hxx <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradient GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ParLeastSquareOfMyGradient_hxx <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradient GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ResConstraintOfMyGradient_hxx <GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradient GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_ParFunctionOfMyGradient_hxx <GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradient GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradient_hxx <GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define Approx_ComputeLine GeomInt_TheComputeLineBezierOfWLApprox
|
||||
#define Approx_ComputeLine_hxx <GeomInt_TheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <Approx_ComputeLine.gxx>
|
||||
|
167
src/GeomInt/GeomInt_TheComputeLineOfWLApprox.hxx
Normal file
167
src/GeomInt/GeomInt_TheComputeLineOfWLApprox.hxx
Normal file
@@ -0,0 +1,167 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheComputeLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheComputeLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheComputeLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineOfWLApprox(const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineOfWLApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT GeomInt_TheComputeLineOfWLApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Interpol (const GeomInt_TheMultiLineOfWLApprox& Line);
|
||||
|
||||
Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Perform (const GeomInt_TheMultiLineOfWLApprox& Line);
|
||||
|
||||
Standard_EXPORT void SetParameters (const math_Vector& ThePar);
|
||||
|
||||
Standard_EXPORT void SetKnots (const TColStd_Array1OfReal& Knots);
|
||||
|
||||
Standard_EXPORT void SetKnotsAndMultiplicities (const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults);
|
||||
|
||||
Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax);
|
||||
|
||||
Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d);
|
||||
|
||||
Standard_EXPORT void SetContinuity (const Standard_Integer C);
|
||||
|
||||
Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsAllApproximated() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsToleranceReached() const;
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& tol3d, Standard_Real& tol2d) const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& Value() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve& ChangeValue();
|
||||
|
||||
Standard_EXPORT const TColStd_Array1OfReal& Parameters() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, const TColStd_Array1OfReal& Knots, TColStd_Array1OfInteger& Mults);
|
||||
|
||||
Standard_EXPORT Standard_Boolean ComputeCurve (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt);
|
||||
|
||||
Standard_EXPORT void Parameters (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchFirstLambda (const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchLastLambda (const GeomInt_TheMultiLineOfWLApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT void TangencyVector (const GeomInt_TheMultiLineOfWLApprox& Line, const AppParCurves_MultiCurve& C, const Standard_Real U, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void FirstTangencyVector (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void LastTangencyVector (const GeomInt_TheMultiLineOfWLApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void FindRealConstraints (const GeomInt_TheMultiLineOfWLApprox& Line);
|
||||
|
||||
|
||||
AppParCurves_MultiBSpCurve TheMultiBSpCurve;
|
||||
Standard_Boolean alldone;
|
||||
Standard_Boolean tolreached;
|
||||
Approx_ParametrizationType Par;
|
||||
Handle(TColStd_HArray1OfReal) myParameters;
|
||||
Handle(TColStd_HArray1OfReal) myfirstParam;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
Standard_Boolean myhasknots;
|
||||
Standard_Boolean myhasmults;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Integer mydegremin;
|
||||
Standard_Integer mydegremax;
|
||||
Standard_Real mytol3d;
|
||||
Standard_Real mytol2d;
|
||||
Standard_Real currenttol3d;
|
||||
Standard_Real currenttol2d;
|
||||
Standard_Boolean mycut;
|
||||
Standard_Boolean mysquares;
|
||||
Standard_Integer myitermax;
|
||||
AppParCurves_Constraint myfirstC;
|
||||
AppParCurves_Constraint mylastC;
|
||||
AppParCurves_Constraint realfirstC;
|
||||
AppParCurves_Constraint reallastC;
|
||||
Standard_Integer mycont;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheComputeLineOfWLApprox_HeaderFile
|
73
src/GeomInt/GeomInt_TheComputeLineOfWLApprox_0.cxx
Normal file
73
src/GeomInt/GeomInt_TheComputeLineOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,73 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheComputeLineOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define LineTool GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define LineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define Approx_MyBSplGradient GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_MyBSplGradient_hxx <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient_hxx <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx <GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient_hxx <GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx <GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_MyGradientbis GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_MyGradientbis_hxx <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradientbis GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ParLeastSquareOfMyGradientbis_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradientbis GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ResConstraintOfMyGradientbis_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradientbis GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ParFunctionOfMyGradientbis_hxx <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis_hxx <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradientbis GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ParLeastSquareOfMyGradientbis_hxx <GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradientbis GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ResConstraintOfMyGradientbis_hxx <GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradientbis GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_ParFunctionOfMyGradientbis_hxx <GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis_hxx <GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define Approx_BSplComputeLine GeomInt_TheComputeLineOfWLApprox
|
||||
#define Approx_BSplComputeLine_hxx <GeomInt_TheComputeLineOfWLApprox.hxx>
|
||||
#include <Approx_BSplComputeLine.gxx>
|
||||
|
@@ -0,0 +1,142 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <IntImp_ConstIsoparametric.hxx>
|
||||
#include <math_FunctionSetWithDerivatives.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
class StdFail_UndefinedDerivative;
|
||||
class Standard_ConstructionError;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox : public math_FunctionSetWithDerivatives
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox();
|
||||
|
||||
Standard_EXPORT GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void ComputeParameters (const IntImp_ConstIsoparametric ChoixIso, const TColStd_Array1OfReal& Param, math_Vector& UVap, math_Vector& BornInf, math_Vector& BornSup, math_Vector& Tolerance);
|
||||
|
||||
Standard_Real Root() const;
|
||||
|
||||
gp_Pnt Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangent (const math_Vector& UVap, TColStd_Array1OfReal& Param, IntImp_ConstIsoparametric& BestChoix);
|
||||
|
||||
gp_Dir Direction() const;
|
||||
|
||||
gp_Dir2d DirectionOnS1() const;
|
||||
|
||||
gp_Dir2d DirectionOnS2() const;
|
||||
|
||||
const Handle(Adaptor3d_HSurface)& AuxillarSurface1() const;
|
||||
|
||||
const Handle(Adaptor3d_HSurface)& AuxillarSurface2() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address surf1;
|
||||
Standard_Address surf2;
|
||||
gp_Pnt pntsol1;
|
||||
gp_Pnt pntsol2;
|
||||
Standard_Real f[3];
|
||||
Standard_Boolean compute;
|
||||
Standard_Boolean tangent;
|
||||
Standard_Real tgduv[4];
|
||||
gp_Vec dpuv[4];
|
||||
IntImp_ConstIsoparametric chxIso;
|
||||
Standard_Real paramConst;
|
||||
Standard_Real ua0;
|
||||
Standard_Real va0;
|
||||
Standard_Real ua1;
|
||||
Standard_Real va1;
|
||||
Standard_Real ub0;
|
||||
Standard_Real vb0;
|
||||
Standard_Real ub1;
|
||||
Standard_Real vb1;
|
||||
Standard_Real ures1;
|
||||
Standard_Real ures2;
|
||||
Standard_Real vres1;
|
||||
Standard_Real vres2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntImp_ZerParFunc GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_ZerParFunc_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <IntImp_ZerParFunc.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef IntImp_ZerParFunc
|
||||
#undef IntImp_ZerParFunc_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntImp_ZerParFunc GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_ZerParFunc_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <IntImp_ZerParFunc.gxx>
|
||||
|
106
src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx
Normal file
106
src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx
Normal file
@@ -0,0 +1,106 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class IntPatch_WLine;
|
||||
class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheImpPrmSvSurfacesOfWLApprox : public ApproxInt_SvSurfaces
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheImpPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_HSurface)& Surf1, const IntSurf_Quadric& Surf2);
|
||||
|
||||
Standard_EXPORT GeomInt_TheImpPrmSvSurfacesOfWLApprox(const IntSurf_Quadric& Surf1, const Handle(Adaptor3d_HSurface)& Surf2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2);
|
||||
|
||||
Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
gp_Pnt2d MyParOnS1;
|
||||
gp_Pnt2d MyParOnS2;
|
||||
gp_Pnt MyPnt;
|
||||
gp_Vec2d MyTguv1;
|
||||
gp_Vec2d MyTguv2;
|
||||
gp_Vec MyTg;
|
||||
Standard_Boolean MyIsTangent;
|
||||
Standard_Boolean MyHasBeenComputed;
|
||||
gp_Pnt2d MyParOnS1bis;
|
||||
gp_Pnt2d MyParOnS2bis;
|
||||
gp_Pnt MyPntbis;
|
||||
gp_Vec2d MyTguv1bis;
|
||||
gp_Vec2d MyTguv2bis;
|
||||
gp_Vec MyTgbis;
|
||||
Standard_Boolean MyIsTangentbis;
|
||||
Standard_Boolean MyHasBeenComputedbis;
|
||||
Standard_Boolean MyImplicitFirst;
|
||||
GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox MyZerImpFunc;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
46
src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox_0.cxx
Normal file
46
src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,46 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define Handle_TheLine Handle(IntPatch_WLine)
|
||||
#define TheLine IntPatch_WLine
|
||||
#define TheLine_hxx <IntPatch_WLine.hxx>
|
||||
#define ApproxInt_TheZerImpFunc GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheZerImpFunc_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_ImpPrmSvSurfaces GeomInt_TheImpPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_ImpPrmSvSurfaces_hxx <GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <ApproxInt_ImpPrmSvSurfaces.gxx>
|
||||
|
142
src/GeomInt/GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx
Normal file
142
src/GeomInt/GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx
Normal file
@@ -0,0 +1,142 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <IntImp_ConstIsoparametric.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_DomainError;
|
||||
class Standard_ConstructionError;
|
||||
class StdFail_UndefinedDerivative;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class math_FunctionSetRoot;
|
||||
class IntSurf_PntOn2S;
|
||||
class gp_Dir;
|
||||
class gp_Dir2d;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox();
|
||||
|
||||
Standard_EXPORT GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox(const TColStd_Array1OfReal& Param, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Real TolTangency);
|
||||
|
||||
Standard_EXPORT GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Real TolTangency);
|
||||
|
||||
Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld);
|
||||
|
||||
Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld, const IntImp_ConstIsoparametric ChoixIso);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_Boolean IsEmpty() const;
|
||||
|
||||
const IntSurf_PntOn2S& Point() const;
|
||||
|
||||
Standard_Boolean IsTangent() const;
|
||||
|
||||
const gp_Dir& Direction() const;
|
||||
|
||||
const gp_Dir2d& DirectionOnS1() const;
|
||||
|
||||
const gp_Dir2d& DirectionOnS2() const;
|
||||
|
||||
GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox& Function();
|
||||
|
||||
IntSurf_PntOn2S& ChangePoint();
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean empty;
|
||||
IntSurf_PntOn2S pint;
|
||||
Standard_Boolean tangent;
|
||||
gp_Dir d3d;
|
||||
gp_Dir2d d2d1;
|
||||
gp_Dir2d d2d2;
|
||||
GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox myZerParFunc;
|
||||
Standard_Real tol;
|
||||
Standard_Real ua0;
|
||||
Standard_Real va0;
|
||||
Standard_Real ua1;
|
||||
Standard_Real va1;
|
||||
Standard_Real ub0;
|
||||
Standard_Real vb0;
|
||||
Standard_Real ub1;
|
||||
Standard_Real vb1;
|
||||
Standard_Real ures1;
|
||||
Standard_Real ures2;
|
||||
Standard_Real vres1;
|
||||
Standard_Real vres2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntImp_TheFunction GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_TheFunction_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define IntImp_Int2S GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_Int2S_hxx <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <IntImp_Int2S.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef IntImp_TheFunction
|
||||
#undef IntImp_TheFunction_hxx
|
||||
#undef IntImp_Int2S
|
||||
#undef IntImp_Int2S_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
@@ -0,0 +1,41 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntImp_TheFunction GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_TheFunction_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define IntImp_Int2S GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_Int2S_hxx <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <IntImp_Int2S.gxx>
|
||||
|
119
src/GeomInt/GeomInt_TheMultiLineOfWLApprox.hxx
Normal file
119
src/GeomInt/GeomInt_TheMultiLineOfWLApprox.hxx
Normal file
@@ -0,0 +1,119 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheMultiLineOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheMultiLineOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Approx_Status.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class IntPatch_WLine;
|
||||
class ApproxInt_SvSurfaces;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheMultiLineOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheMultiLineOfWLApprox(const Handle(IntPatch_WLine)& line, const Standard_Address PtrSvSurfaces, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0);
|
||||
|
||||
Standard_EXPORT GeomInt_TheMultiLineOfWLApprox(const Handle(IntPatch_WLine)& line, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0);
|
||||
|
||||
Standard_EXPORT Standard_Integer FirstPoint() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer LastPoint() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbP2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbP3d() const;
|
||||
|
||||
Standard_EXPORT Approx_Status WhatStatus() const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt) const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d) const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d) const;
|
||||
|
||||
Standard_EXPORT GeomInt_TheMultiLineOfWLApprox MakeMLBetween (const Standard_Integer Low, const Standard_Integer High, const Standard_Integer NbPointsToInsert) const;
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address PtrOnmySvSurfaces;
|
||||
Handle(IntPatch_WLine) myLine;
|
||||
Standard_Integer indicemin;
|
||||
Standard_Integer indicemax;
|
||||
Standard_Integer nbp3d;
|
||||
Standard_Integer nbp2d;
|
||||
Standard_Boolean p2donfirst;
|
||||
Standard_Real Xo;
|
||||
Standard_Real Ax;
|
||||
Standard_Real Yo;
|
||||
Standard_Real Ay;
|
||||
Standard_Real Zo;
|
||||
Standard_Real Az;
|
||||
Standard_Real U1o;
|
||||
Standard_Real A1u;
|
||||
Standard_Real V1o;
|
||||
Standard_Real A1v;
|
||||
Standard_Real U2o;
|
||||
Standard_Real A2u;
|
||||
Standard_Real V2o;
|
||||
Standard_Real A2v;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheMultiLineOfWLApprox_HeaderFile
|
31
src/GeomInt/GeomInt_TheMultiLineOfWLApprox_0.cxx
Normal file
31
src/GeomInt/GeomInt_TheMultiLineOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,31 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
|
||||
|
||||
#define Handle_TheLine Handle(IntPatch_WLine)
|
||||
#define TheLine IntPatch_WLine
|
||||
#define TheLine_hxx <IntPatch_WLine.hxx>
|
||||
#define TheSvSurfaces ApproxInt_SvSurfaces
|
||||
#define TheSvSurfaces_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define ApproxInt_MultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <ApproxInt_MultiLine.gxx>
|
||||
|
112
src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox.hxx
Normal file
112
src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox.hxx
Normal file
@@ -0,0 +1,112 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <Approx_Status.hxx>
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class ApproxInt_SvSurfaces;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheMultiLineToolOfWLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Integer FirstPoint (const GeomInt_TheMultiLineOfWLApprox& ML);
|
||||
|
||||
static Standard_Integer LastPoint (const GeomInt_TheMultiLineOfWLApprox& ML);
|
||||
|
||||
static Standard_Integer NbP2d (const GeomInt_TheMultiLineOfWLApprox& ML);
|
||||
|
||||
static Standard_Integer NbP3d (const GeomInt_TheMultiLineOfWLApprox& ML);
|
||||
|
||||
static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt);
|
||||
|
||||
static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d);
|
||||
|
||||
static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d);
|
||||
|
||||
static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
|
||||
|
||||
static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
|
||||
|
||||
static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static GeomInt_TheMultiLineOfWLApprox MakeMLBetween (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer I1, const Standard_Integer I2, const Standard_Integer NbPMin);
|
||||
|
||||
static Approx_Status WhatStatus (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer I1, const Standard_Integer I2);
|
||||
|
||||
Standard_EXPORT static void Dump (const GeomInt_TheMultiLineOfWLApprox& ML);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheMultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define TheMultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define TheMultiMPoint ApproxInt_SvSurfaces
|
||||
#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLineTool GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ApproxInt_MultiLineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
|
||||
#include <ApproxInt_MultiLineTool.lxx>
|
||||
|
||||
#undef TheMultiLine
|
||||
#undef TheMultiLine_hxx
|
||||
#undef TheMultiMPoint
|
||||
#undef TheMultiMPoint_hxx
|
||||
#undef ApproxInt_MultiLineTool
|
||||
#undef ApproxInt_MultiLineTool_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile
|
30
src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox_0.cxx
Normal file
30
src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,30 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
|
||||
|
||||
#define TheMultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define TheMultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define TheMultiMPoint ApproxInt_SvSurfaces
|
||||
#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLineTool GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ApproxInt_MultiLineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <ApproxInt_MultiLineTool.gxx>
|
||||
|
102
src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx
Normal file
102
src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx
Normal file
@@ -0,0 +1,102 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_ThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
#define _GeomInt_ThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntPatch_WLine;
|
||||
class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
|
||||
class GeomInt_ThePrmPrmSvSurfacesOfWLApprox : public ApproxInt_SvSurfaces
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_ThePrmPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_HSurface)& Surf2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2);
|
||||
|
||||
Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
gp_Pnt2d MyParOnS1;
|
||||
gp_Pnt2d MyParOnS2;
|
||||
gp_Pnt MyPnt;
|
||||
gp_Vec2d MyTguv1;
|
||||
gp_Vec2d MyTguv2;
|
||||
gp_Vec MyTg;
|
||||
Standard_Boolean MyIsTangent;
|
||||
Standard_Boolean MyHasBeenComputed;
|
||||
gp_Pnt2d MyParOnS1bis;
|
||||
gp_Pnt2d MyParOnS2bis;
|
||||
gp_Pnt MyPntbis;
|
||||
gp_Vec2d MyTguv1bis;
|
||||
gp_Vec2d MyTguv2bis;
|
||||
gp_Vec MyTgbis;
|
||||
Standard_Boolean MyIsTangentbis;
|
||||
Standard_Boolean MyHasBeenComputedbis;
|
||||
GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox MyIntersectionOn2S;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_ThePrmPrmSvSurfacesOfWLApprox_HeaderFile
|
45
src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx
Normal file
45
src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx
Normal file
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define Handle_TheLine Handle(IntPatch_WLine)
|
||||
#define TheLine IntPatch_WLine
|
||||
#define TheLine_hxx <IntPatch_WLine.hxx>
|
||||
#define ApproxInt_TheInt2S GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheInt2S_hxx <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheFunctionOfTheInt2S GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheFunctionOfTheInt2S_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheFunctionOfTheInt2S GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheFunctionOfTheInt2S_hxx <GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_PrmPrmSvSurfaces GeomInt_ThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_PrmPrmSvSurfaces_hxx <GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <ApproxInt_PrmPrmSvSurfaces.gxx>
|
||||
|
@@ -0,0 +1,151 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
#define _GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <math_FunctionSetWithDerivatives.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class StdFail_UndefinedDerivative;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Dir2d;
|
||||
|
||||
|
||||
|
||||
class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox : public math_FunctionSetWithDerivatives
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox();
|
||||
|
||||
Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_HSurface)& PS, const IntSurf_Quadric& IS);
|
||||
|
||||
Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(const IntSurf_Quadric& IS);
|
||||
|
||||
void Set (const Handle(Adaptor3d_HSurface)& PS);
|
||||
|
||||
void SetImplicitSurface (const IntSurf_Quadric& IS);
|
||||
|
||||
void Set (const Standard_Real Tolerance);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_Real Root() const;
|
||||
|
||||
Standard_Real Tolerance() const;
|
||||
|
||||
const gp_Pnt& Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangent();
|
||||
|
||||
const gp_Vec& Direction3d();
|
||||
|
||||
const gp_Dir2d& Direction2d();
|
||||
|
||||
const Handle(Adaptor3d_HSurface)& PSurface() const;
|
||||
|
||||
const IntSurf_Quadric& ISurface() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address surf;
|
||||
Standard_Address func;
|
||||
Standard_Real u;
|
||||
Standard_Real v;
|
||||
Standard_Real tol;
|
||||
gp_Pnt pntsol;
|
||||
Standard_Real valf;
|
||||
Standard_Boolean computed;
|
||||
Standard_Boolean tangent;
|
||||
Standard_Real tgdu;
|
||||
Standard_Real tgdv;
|
||||
gp_Vec gradient;
|
||||
Standard_Boolean derived;
|
||||
gp_Vec d1u;
|
||||
gp_Vec d1v;
|
||||
gp_Vec d3d;
|
||||
gp_Dir2d d2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define IntImp_ZerImpFunc GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_ZerImpFunc_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <IntImp_ZerImpFunc.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef TheISurface
|
||||
#undef TheISurface_hxx
|
||||
#undef TheISurfaceTool
|
||||
#undef TheISurfaceTool_hxx
|
||||
#undef IntImp_ZerImpFunc
|
||||
#undef IntImp_ZerImpFunc_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_HeaderFile
|
@@ -0,0 +1,41 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define IntImp_ZerImpFunc GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
|
||||
#define IntImp_ZerImpFunc_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <IntImp_ZerImpFunc.gxx>
|
||||
|
128
src/GeomInt/GeomInt_WLApprox.hxx
Normal file
128
src/GeomInt/GeomInt_WLApprox.hxx
Normal file
@@ -0,0 +1,128 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _GeomInt_WLApprox_HeaderFile
|
||||
#define _GeomInt_WLApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <GeomInt_TheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <Approx_MCurvesToBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class IntPatch_WLine;
|
||||
class GeomInt_ThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheImpPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox;
|
||||
class GeomInt_TheMultiLineOfWLApprox;
|
||||
class GeomInt_TheMultiLineToolOfWLApprox;
|
||||
class GeomInt_TheComputeLineOfWLApprox;
|
||||
class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox;
|
||||
class GeomInt_TheComputeLineBezierOfWLApprox;
|
||||
class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class GeomInt_WLApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT GeomInt_WLApprox();
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(IntPatch_WLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(IntPatch_WLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0);
|
||||
|
||||
Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength);
|
||||
|
||||
Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Boolean RelativeTol, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Integer NbPntMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength);
|
||||
|
||||
Standard_EXPORT void Perform();
|
||||
|
||||
Standard_EXPORT Standard_Real TolReached3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real TolReached2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbMultiCurves() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& Value (const Standard_Integer Index) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Surf1, const IntSurf_Quadric& Surf2, const Handle(IntPatch_WLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax);
|
||||
|
||||
Standard_EXPORT void Perform (const IntSurf_Quadric& Surf1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(IntPatch_WLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax);
|
||||
|
||||
Standard_EXPORT void UpdateTolReached();
|
||||
|
||||
|
||||
GeomInt_TheComputeLineOfWLApprox myComputeLine;
|
||||
GeomInt_TheComputeLineBezierOfWLApprox myComputeLineBezier;
|
||||
Approx_MCurvesToBSpCurve myBezToBSpl;
|
||||
Standard_Boolean myTolReached;
|
||||
Standard_Boolean myApproxBez;
|
||||
Standard_Boolean myWithTangency;
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
Standard_Boolean myRelativeTol;
|
||||
Standard_Integer myDegMin;
|
||||
Standard_Integer myDegMax;
|
||||
Standard_Integer myNbPntMax;
|
||||
Standard_Integer myNbIterMax;
|
||||
Standard_Real myMinFactorXYZ;
|
||||
Standard_Real myMinFactorUV;
|
||||
Standard_Real myTolReached3d;
|
||||
Standard_Real myTolReached2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _GeomInt_WLApprox_HeaderFile
|
86
src/GeomInt/GeomInt_WLApprox_0.cxx
Normal file
86
src/GeomInt/GeomInt_WLApprox_0.cxx
Normal file
@@ -0,0 +1,86 @@
|
||||
// Created on: 1995-01-27
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <GeomInt_WLApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <IntPatch_WLine.hxx>
|
||||
#include <GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#include <GeomInt_TheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#include <GeomInt_TheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define Handle_TheWLine Handle(IntPatch_WLine)
|
||||
#define TheWLine IntPatch_WLine
|
||||
#define TheWLine_hxx <IntPatch_WLine.hxx>
|
||||
#define ApproxInt_ThePrmPrmSvSurfaces GeomInt_ThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_ThePrmPrmSvSurfaces_hxx <GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx <GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheImpPrmSvSurfaces GeomInt_TheImpPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheImpPrmSvSurfaces_hxx <GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
|
||||
#define ApproxInt_TheMultiLine GeomInt_TheMultiLineOfWLApprox
|
||||
#define ApproxInt_TheMultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
||||
#define ApproxInt_TheMultiLineTool GeomInt_TheMultiLineToolOfWLApprox
|
||||
#define ApproxInt_TheMultiLineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
||||
#define ApproxInt_TheComputeLine GeomInt_TheComputeLineOfWLApprox
|
||||
#define ApproxInt_TheComputeLine_hxx <GeomInt_TheComputeLineOfWLApprox.hxx>
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine_hxx <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx <GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx>
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine GeomInt_MyGradientbisOfTheComputeLineOfWLApprox
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine_hxx <GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx>
|
||||
#define ApproxInt_TheComputeLineBezier GeomInt_TheComputeLineBezierOfWLApprox
|
||||
#define ApproxInt_TheComputeLineBezier_hxx <GeomInt_TheComputeLineBezierOfWLApprox.hxx>
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx <GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx>
|
||||
#define ApproxInt_Approx GeomInt_WLApprox
|
||||
#define ApproxInt_Approx_hxx <GeomInt_WLApprox.hxx>
|
||||
#include <ApproxInt_Approx.gxx>
|
||||
|
Reference in New Issue
Block a user