Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:05:36

0001 // Created on: 2000-01-19
0002 // Created by: data exchange team
0003 // Copyright (c) 2000-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 _XSAlgo_AlgoContainer_HeaderFile
0017 #define _XSAlgo_AlgoContainer_HeaderFile
0018 
0019 #include <Standard.hxx>
0020 #include <Standard_Type.hxx>
0021 
0022 #include <Message_ProgressRange.hxx>
0023 #include <Standard_Integer.hxx>
0024 #include <Standard_Transient.hxx>
0025 #include <TopAbs_ShapeEnum.hxx>
0026 
0027 class ShapeBuild_ReShape;
0028 class XSAlgo_ToolContainer;
0029 class TopoDS_Shape;
0030 class TopoDS_Edge;
0031 class TopoDS_Face;
0032 class Transfer_TransientProcess;
0033 class Transfer_FinderProcess;
0034 
0035 class XSAlgo_AlgoContainer;
0036 DEFINE_STANDARD_HANDLE(XSAlgo_AlgoContainer, Standard_Transient)
0037 
0038 
0039 class XSAlgo_AlgoContainer : public Standard_Transient
0040 {
0041 
0042 public:
0043 
0044   
0045   //! Empty constructor
0046   Standard_EXPORT XSAlgo_AlgoContainer();
0047   
0048   //! Sets ToolContainer
0049     void SetToolContainer (const Handle(XSAlgo_ToolContainer)& TC);
0050   
0051   //! Returns ToolContainer
0052     Handle(XSAlgo_ToolContainer) ToolContainer() const;
0053   
0054   //! Performs actions necessary for preparing environment
0055   //! for transfer. Empty in Open version.
0056   Standard_EXPORT virtual void PrepareForTransfer() const;
0057   
0058   //! Does shape processing with specified tolerances
0059   //! @param[in] theShape shape to process
0060   //! @param[in] thePrec basic precision and tolerance
0061   //! @param[in] theMaxTol maximum allowed tolerance
0062   //! @param[in] thePrscfile name of the resource file
0063   //! @param[in] thePseq name of the sequence of operators defined in the resource file for Shape Processing
0064   //! @param[out] theInfo information to be recorded in the translation map
0065   //! @param[in] theProgress progress indicator
0066   //! @param[in] theNonManifold flag to proceed with non-manifold topology
0067   //! @return the processed shape
0068   Standard_EXPORT virtual TopoDS_Shape ProcessShape (const TopoDS_Shape&          theShape,
0069                                                      const Standard_Real          thePrec,
0070                                                      const Standard_Real          theMaxTol,
0071                                                      const Standard_CString       thePrscfile,
0072                                                      const Standard_CString       thePseq,
0073                                                      Handle(Standard_Transient)&  theInfo,
0074                                                      const Message_ProgressRange& theProgress = Message_ProgressRange(),
0075                                                      const Standard_Boolean       theNonManifold = Standard_False,
0076                                                      const TopAbs_ShapeEnum theDetalisationLevel = TopAbs_VERTEX) const;
0077 
0078   //! Does shape processing with specified tolerances
0079   //! @param[in] theShape shape to process
0080   //! @param[in] thePrec basic precision and tolerance
0081   //! @param[in] theMaxTol maximum allowed tolerance
0082   //! @param[in] thePrscfile name of the resource file
0083   //! @param[in] thePseq name of the sequence of operators defined in the resource file for Shape Processing
0084   //! @param[out] theInfo information to be recorded in the translation map
0085   //! @param[in] theReShape tool to record the modifications of input shape
0086   //! @param[in] theProgress progress indicator
0087   //! @param[in] theNonManifold flag to proceed with non-manifold topology
0088   //! @return the processed shape
0089   Standard_EXPORT virtual TopoDS_Shape ProcessShape(const TopoDS_Shape&               theShape,
0090                                                     const Standard_Real               thePrec,
0091                                                     const Standard_Real               theMaxTol,
0092                                                     const Standard_CString            thePrscfile,
0093                                                     const Standard_CString            thePseq,
0094                                                     Handle(Standard_Transient)&       theInfo,
0095                                                     const Handle(ShapeBuild_ReShape)& theReShape,
0096                                                     const Message_ProgressRange&      theProgress = Message_ProgressRange(),
0097                                                     const Standard_Boolean            theNonManifold = Standard_False,
0098                                                     const TopAbs_ShapeEnum theDetalisationLevel = TopAbs_VERTEX) const;
0099   
0100   //! Checks quality of pcurve of the edge on the given face,
0101   //! and corrects it if necessary.
0102   Standard_EXPORT virtual Standard_Boolean CheckPCurve (const TopoDS_Edge& edge, const TopoDS_Face& face, const Standard_Real preci, const Standard_Boolean isSeam) const;
0103   
0104   Standard_EXPORT virtual void MergeTransferInfo (const Handle(Transfer_TransientProcess)& TP, const Handle(Standard_Transient)& info, const Standard_Integer startTPitem = 1) const;
0105   
0106   //! Updates translation map (TP or FP) with information
0107   //! resulting from ShapeProcessing
0108   //! Parameter startTPitem can be used for optimisation, to
0109   //! restrict modifications to entities stored in TP starting
0110   //! from item startTPitem
0111   Standard_EXPORT virtual void MergeTransferInfo (const Handle(Transfer_FinderProcess)& FP, const Handle(Standard_Transient)& info) const;
0112 
0113 
0114 
0115 
0116   DEFINE_STANDARD_RTTIEXT(XSAlgo_AlgoContainer,Standard_Transient)
0117 
0118 protected:
0119 
0120 
0121 
0122 
0123 private:
0124 
0125 
0126   Handle(XSAlgo_ToolContainer) myTC;
0127 
0128 
0129 };
0130 
0131 
0132 #include <XSAlgo_AlgoContainer.lxx>
0133 
0134 
0135 
0136 
0137 
0138 #endif // _XSAlgo_AlgoContainer_HeaderFile