Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // Created on: 2003-10-21
0002 // Created by: Mikhail KLOKOV
0003 // Copyright (c) 2003-2014 OPEN CASCADE SAS
0004 //
0005 // This file is part of Open CASCADE Technology software library.
0006 //
0007 // This library is free software; you can redistribute it and/or modify it under
0008 // the terms of the GNU Lesser General Public License version 2.1 as published
0009 // by the Free Software Foundation, with special exception defined in the file
0010 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0011 // distribution for complete text of the license and disclaimer of any warranty.
0012 //
0013 // Alternatively, this file may be used under the terms of Open CASCADE
0014 // commercial license or contractual agreement.
0015 
0016 #ifndef _BRepFill_TrimShellCorner_HeaderFile
0017 #define _BRepFill_TrimShellCorner_HeaderFile
0018 
0019 #include <Standard.hxx>
0020 #include <Standard_DefineAlloc.hxx>
0021 #include <Standard_Handle.hxx>
0022 
0023 #include <BRepFill_TransitionStyle.hxx>
0024 #include <gp_Ax2.hxx>
0025 #include <TopoDS_Shape.hxx>
0026 #include <TopTools_HArray2OfShape.hxx>
0027 #include <TopTools_HArray1OfShape.hxx>
0028 #include <TopTools_DataMapOfShapeListOfShape.hxx>
0029 #include <TopTools_ListOfShape.hxx>
0030 #include <BOPDS_PDS.hxx>
0031 
0032 
0033 //! Trims sets of faces in the corner to make proper parts of pipe
0034 class BRepFill_TrimShellCorner 
0035 {
0036 public:
0037 
0038   DEFINE_STANDARD_ALLOC
0039 
0040   
0041   //! Constructor: takes faces to intersect,
0042   //! type of transition (it can be RightCorner or RoundCorner)
0043   //! and axis of bisector plane
0044   //! theIntersectPointCrossDirection : prev path direction at the origin point of theAxeOfBisPlane
0045   //! cross next path direction at the origin point of theAxeOfBisPlane. used when EE has more than one vertices
0046   Standard_EXPORT BRepFill_TrimShellCorner(const Handle(TopTools_HArray2OfShape)& theFaces,
0047                                            const BRepFill_TransitionStyle         theTransition,
0048                                            const gp_Ax2&                          theAxeOfBisPlane,
0049                                            const gp_Vec&                          theIntPointCrossDir);
0050 
0051   Standard_EXPORT void AddBounds (const Handle(TopTools_HArray2OfShape)& Bounds);
0052   
0053   Standard_EXPORT void AddUEdges (const Handle(TopTools_HArray2OfShape)& theUEdges);
0054   
0055   Standard_EXPORT void AddVEdges (const Handle(TopTools_HArray2OfShape)& theVEdges,
0056                                   const Standard_Integer theIndex);
0057   
0058   Standard_EXPORT void Perform();
0059   
0060   Standard_EXPORT Standard_Boolean IsDone() const;
0061   
0062   Standard_EXPORT Standard_Boolean HasSection() const;
0063   
0064   Standard_EXPORT void Modified (const TopoDS_Shape& S, TopTools_ListOfShape& theModified);
0065 
0066 
0067 
0068 
0069 protected:
0070 
0071 
0072 
0073 
0074 
0075 private:
0076 
0077   Standard_Boolean MakeFacesSec(const Standard_Integer                     theIndex,
0078                                 const BOPDS_PDS&                           theDS,
0079                                 const Standard_Integer                     theFaceIndex1, 
0080                                 const Standard_Integer                     theFaceIndex2, 
0081                                 const Standard_Integer                     theSSInterfIndex);
0082   
0083   Standard_Boolean MakeFacesNonSec(const Standard_Integer                     theIndex,
0084                                    const BOPDS_PDS&                           theDS,
0085                                    const Standard_Integer                     theFaceIndex1, 
0086                                    const Standard_Integer                     theFaceIndex2);
0087   
0088   Standard_Boolean ChooseSection(const TopoDS_Shape& Comp,
0089                                  const TopoDS_Vertex& theFirstVertex,
0090                                  const TopoDS_Vertex& theLastVertex,
0091                                  TopoDS_Shape& resWire,
0092                                  gp_Pln& resPlane,
0093                                  Standard_Boolean& IsSingular);
0094 
0095 
0096   BRepFill_TransitionStyle myTransition;
0097   gp_Ax2 myAxeOfBisPlane;
0098   gp_Vec myIntPointCrossDir;
0099   TopoDS_Shape myShape1;
0100   TopoDS_Shape myShape2;
0101   Handle(TopTools_HArray2OfShape) myBounds;
0102   Handle(TopTools_HArray2OfShape) myUEdges;
0103   Handle(TopTools_HArray1OfShape) myVEdges;
0104   Handle(TopTools_HArray2OfShape) myFaces;
0105   Standard_Boolean myDone;
0106   Standard_Boolean myHasSection;
0107   TopTools_DataMapOfShapeListOfShape myHistMap;
0108 
0109 
0110 };
0111 
0112 
0113 
0114 
0115 
0116 
0117 
0118 #endif // _BRepFill_TrimShellCorner_HeaderFile