Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // Created on: 1993-02-05
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 _Contap_TheSearch_HeaderFile
0018 #define _Contap_TheSearch_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <Standard_Boolean.hxx>
0025 #include <Contap_SequenceOfSegmentOfTheSearch.hxx>
0026 #include <Contap_SequenceOfPathPointOfTheSearch.hxx>
0027 #include <Standard_Real.hxx>
0028 #include <Standard_Integer.hxx>
0029 class StdFail_NotDone;
0030 class Standard_OutOfRange;
0031 class Standard_ConstructionError;
0032 class Adaptor3d_HVertex;
0033 class Contap_HCurve2dTool;
0034 class Contap_HContTool;
0035 class Adaptor3d_TopolTool;
0036 class Contap_ArcFunction;
0037 class Contap_ThePathPointOfTheSearch;
0038 class Contap_TheSegmentOfTheSearch;
0039 
0040 class Contap_TheSearch 
0041 {
0042 public:
0043 
0044   DEFINE_STANDARD_ALLOC
0045 
0046   
0047   //! Empty constructor.
0048   Standard_EXPORT Contap_TheSearch();
0049   
0050   //! Algorithm to find the points and parts of curves of Domain
0051   //! (domain of of restriction of a surface) which verify
0052   //! F = 0.
0053   //! TolBoundary defines if a curve is on Q.
0054   //! TolTangency defines if a point is on Q.
0055   Standard_EXPORT void Perform (Contap_ArcFunction& F, const Handle(Adaptor3d_TopolTool)& Domain, const Standard_Real TolBoundary, const Standard_Real TolTangency, const Standard_Boolean RecheckOnRegularity = Standard_False);
0056   
0057   //! Returns True if the calculus was successful.
0058     Standard_Boolean IsDone() const;
0059   
0060   //! Returns true if all arc of the Arcs are solution (inside
0061   //! the surface).
0062   //! An exception is raised if IsDone returns False.
0063     Standard_Boolean AllArcSolution() const;
0064   
0065   //! Returns the number of resulting points.
0066   //! An exception is raised if IsDone returns False (NotDone).
0067     Standard_Integer NbPoints() const;
0068   
0069   //! Returns the resulting point of range Index.
0070   //! The exception NotDone is raised if IsDone() returns
0071   //! False.
0072   //! The exception OutOfRange is raised if
0073   //! Index <= 0 or Index > NbPoints.
0074     const Contap_ThePathPointOfTheSearch& Point (const Standard_Integer Index) const;
0075   
0076   //! Returns the number of the resulting segments.
0077   //! An exception is raised if IsDone returns False (NotDone).
0078     Standard_Integer NbSegments() const;
0079   
0080   //! Returns the resulting segment of range Index.
0081   //! The exception NotDone is raised if IsDone() returns
0082   //! False.
0083   //! The exception OutOfRange is raised if
0084   //! Index <= 0 or Index > NbPoints.
0085     const Contap_TheSegmentOfTheSearch& Segment (const Standard_Integer Index) const;
0086 
0087 
0088 
0089 
0090 protected:
0091 
0092 
0093 
0094 
0095 
0096 private:
0097 
0098 
0099 
0100   Standard_Boolean done;
0101   Standard_Boolean all;
0102   Contap_SequenceOfSegmentOfTheSearch sseg;
0103   Contap_SequenceOfPathPointOfTheSearch spnt;
0104 
0105 
0106 };
0107 
0108 #define TheVertex Handle(Adaptor3d_HVertex)
0109 #define TheVertex_hxx <Adaptor3d_HVertex.hxx>
0110 #define TheArc Handle(Adaptor2d_Curve2d)
0111 #define TheArc_hxx <Adaptor2d_Curve2d.hxx>
0112 #define TheArcTool Contap_HCurve2dTool
0113 #define TheArcTool_hxx <Contap_HCurve2dTool.hxx>
0114 #define TheSOBTool Contap_HContTool
0115 #define TheSOBTool_hxx <Contap_HContTool.hxx>
0116 #define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
0117 #define TheTopolTool Adaptor3d_TopolTool
0118 #define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
0119 #define TheFunction Contap_ArcFunction
0120 #define TheFunction_hxx <Contap_ArcFunction.hxx>
0121 #define IntStart_ThePathPoint Contap_ThePathPointOfTheSearch
0122 #define IntStart_ThePathPoint_hxx <Contap_ThePathPointOfTheSearch.hxx>
0123 #define IntStart_SequenceOfPathPoint Contap_SequenceOfPathPointOfTheSearch
0124 #define IntStart_SequenceOfPathPoint_hxx <Contap_SequenceOfPathPointOfTheSearch.hxx>
0125 #define IntStart_TheSegment Contap_TheSegmentOfTheSearch
0126 #define IntStart_TheSegment_hxx <Contap_TheSegmentOfTheSearch.hxx>
0127 #define IntStart_SequenceOfSegment Contap_SequenceOfSegmentOfTheSearch
0128 #define IntStart_SequenceOfSegment_hxx <Contap_SequenceOfSegmentOfTheSearch.hxx>
0129 #define IntStart_SearchOnBoundaries Contap_TheSearch
0130 #define IntStart_SearchOnBoundaries_hxx <Contap_TheSearch.hxx>
0131 
0132 #include <IntStart_SearchOnBoundaries.lxx>
0133 
0134 #undef TheVertex
0135 #undef TheVertex_hxx
0136 #undef TheArc
0137 #undef TheArc_hxx
0138 #undef TheArcTool
0139 #undef TheArcTool_hxx
0140 #undef TheSOBTool
0141 #undef TheSOBTool_hxx
0142 #undef Handle_TheTopolTool
0143 #undef TheTopolTool
0144 #undef TheTopolTool_hxx
0145 #undef TheFunction
0146 #undef TheFunction_hxx
0147 #undef IntStart_ThePathPoint
0148 #undef IntStart_ThePathPoint_hxx
0149 #undef IntStart_SequenceOfPathPoint
0150 #undef IntStart_SequenceOfPathPoint_hxx
0151 #undef IntStart_TheSegment
0152 #undef IntStart_TheSegment_hxx
0153 #undef IntStart_SequenceOfSegment
0154 #undef IntStart_SequenceOfSegment_hxx
0155 #undef IntStart_SearchOnBoundaries
0156 #undef IntStart_SearchOnBoundaries_hxx
0157 
0158 
0159 
0160 
0161 #endif // _Contap_TheSearch_HeaderFile