Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:03:08

0001 // Created on: 1993-12-06
0002 // Created by: Jacques GOUSSARD
0003 // Copyright (c) 1993-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _BRepBlend_CSWalking_HeaderFile
0018 #define _BRepBlend_CSWalking_HeaderFile
0019 
0020 #include <Adaptor3d_Curve.hxx>
0021 #include <Adaptor3d_Surface.hxx>
0022 #include <TColStd_HArray1OfReal.hxx>
0023 #include <Blend_Point.hxx>
0024 #include <BRepBlend_SequenceOfPointOnRst.hxx>
0025 #include <math_Vector.hxx>
0026 #include <Blend_Status.hxx>
0027 
0028 class BRepBlend_Line;
0029 class Adaptor3d_TopolTool;
0030 class StdFail_NotDone;
0031 class Adaptor3d_HVertex;
0032 class BRepBlend_HCurve2dTool;
0033 class Adaptor3d_HSurfaceTool;
0034 class BRepBlend_HCurveTool;
0035 class BRepBlend_BlendTool;
0036 class BRepBlend_PointOnRst;
0037 class BRepBlend_Extremity;
0038 class Blend_CSFunction;
0039 class IntSurf_Transition;
0040 class gp_Pnt;
0041 class gp_Pnt2d;
0042 class gp_Vec;
0043 class gp_Vec2d;
0044 
0045 class BRepBlend_CSWalking 
0046 {
0047 public:
0048 
0049   DEFINE_STANDARD_ALLOC
0050 
0051   
0052   Standard_EXPORT BRepBlend_CSWalking(const Handle(Adaptor3d_Curve)& Curv, const Handle(Adaptor3d_Surface)& Surf, const Handle(Adaptor3d_TopolTool)& Domain);
0053   
0054   Standard_EXPORT void Perform (Blend_CSFunction& F, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real Tol3d, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False);
0055   
0056   Standard_EXPORT Standard_Boolean Complete (Blend_CSFunction& F, const Standard_Real Pmin);
0057   
0058     Standard_Boolean IsDone() const;
0059   
0060     const Handle(BRepBlend_Line)& Line() const;
0061 
0062 private:
0063 
0064   
0065   Standard_EXPORT void InternalPerform (Blend_CSFunction& F, math_Vector& Sol, const Standard_Real Bound);
0066   
0067   Standard_EXPORT void Transition (const Handle(Adaptor2d_Curve2d)& A, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc);
0068   
0069   Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Integer Index, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx);
0070   
0071   Standard_EXPORT Blend_Status CheckDeflectionOnSurf (const gp_Pnt& Psurf, const gp_Pnt2d& Ponsurf, const gp_Vec& Tgsurf, const gp_Vec2d& Tgonsurf);
0072   
0073   Standard_EXPORT Blend_Status CheckDeflectionOnCurv (const gp_Pnt& Pcurv, const Standard_Real Poncurv, const gp_Vec& Tgcurv);
0074   
0075   Standard_EXPORT Blend_Status TestArret (Blend_CSFunction& F, const math_Vector& Sol, const Standard_Boolean TestDeflection, const Blend_Status State);
0076 
0077 
0078   Standard_Boolean done;
0079   Handle(BRepBlend_Line) line;
0080   Handle(Adaptor3d_Surface) surf;
0081   Handle(Adaptor3d_Curve) curv;
0082   Handle(Adaptor3d_TopolTool) domain;
0083   Standard_Real tolpoint3d;
0084   Standard_Real tolgui;
0085   Standard_Real pasmax;
0086   Standard_Real fleche;
0087   Standard_Real param;
0088   Standard_Real firstparam;
0089   Handle(TColStd_HArray1OfReal) firstsol;
0090   Blend_Point previousP;
0091   Standard_Boolean rebrou;
0092   Standard_Boolean iscomplete;
0093   Standard_Boolean comptra;
0094   Standard_Real sens;
0095 
0096 
0097 };
0098 
0099 #define TheVertex Handle(Adaptor3d_HVertex)
0100 #define TheVertex_hxx <Adaptor3d_HVertex.hxx>
0101 #define TheArc Handle(Adaptor2d_Curve2d)
0102 #define TheArc_hxx <Adaptor2d_Curve2d.hxx>
0103 #define TheSurface Handle(Adaptor3d_Surface)
0104 #define TheSurface_hxx <Adaptor3d_Surface.hxx>
0105 #define TheCurve Handle(Adaptor3d_Curve)
0106 #define TheCurve_hxx <Adaptor3d_Curve.hxx>
0107 #define TheVertexTool Standard_Integer
0108 #define TheVertexTool_hxx <Standard_Integer.hxx>
0109 #define TheArcTool BRepBlend_HCurve2dTool
0110 #define TheArcTool_hxx <BRepBlend_HCurve2dTool.hxx>
0111 #define TheSurfaceTool Adaptor3d_HSurfaceTool
0112 #define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
0113 #define TheCurveTool BRepBlend_HCurveTool
0114 #define TheCurveTool_hxx <BRepBlend_HCurveTool.hxx>
0115 #define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
0116 #define TheTopolTool Adaptor3d_TopolTool
0117 #define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
0118 #define TheBlendTool BRepBlend_BlendTool
0119 #define TheBlendTool_hxx <BRepBlend_BlendTool.hxx>
0120 #define ThePointOnRst BRepBlend_PointOnRst
0121 #define ThePointOnRst_hxx <BRepBlend_PointOnRst.hxx>
0122 #define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst
0123 #define TheSeqPointOnRst_hxx <BRepBlend_SequenceOfPointOnRst.hxx>
0124 #define TheExtremity BRepBlend_Extremity
0125 #define TheExtremity_hxx <BRepBlend_Extremity.hxx>
0126 #define Handle_TheLine Handle(BRepBlend_Line)
0127 #define TheLine BRepBlend_Line
0128 #define TheLine_hxx <BRepBlend_Line.hxx>
0129 #define Blend_CSWalking BRepBlend_CSWalking
0130 #define Blend_CSWalking_hxx <BRepBlend_CSWalking.hxx>
0131 
0132 #undef TheVertex
0133 #undef TheVertex_hxx
0134 #undef TheArc
0135 #undef TheArc_hxx
0136 #undef TheSurface
0137 #undef TheSurface_hxx
0138 #undef TheCurve
0139 #undef TheCurve_hxx
0140 #undef TheVertexTool
0141 #undef TheVertexTool_hxx
0142 #undef TheArcTool
0143 #undef TheArcTool_hxx
0144 #undef TheSurfaceTool
0145 #undef TheSurfaceTool_hxx
0146 #undef TheCurveTool
0147 #undef TheCurveTool_hxx
0148 #undef Handle_TheTopolTool
0149 #undef TheTopolTool
0150 #undef TheTopolTool_hxx
0151 #undef TheBlendTool
0152 #undef TheBlendTool_hxx
0153 #undef ThePointOnRst
0154 #undef ThePointOnRst_hxx
0155 #undef TheSeqPointOnRst
0156 #undef TheSeqPointOnRst_hxx
0157 #undef TheExtremity
0158 #undef TheExtremity_hxx
0159 #undef Handle_TheLine
0160 #undef TheLine
0161 #undef TheLine_hxx
0162 #undef Blend_CSWalking
0163 #undef Blend_CSWalking_hxx
0164 
0165 
0166 
0167 
0168 #endif // _BRepBlend_CSWalking_HeaderFile