|
||||
File indexing completed on 2025-01-18 10:03:03
0001 // Created by: Peter Kurnev 0002 // Copyright (c) 2010-2014 OPEN CASCADE SAS 0003 // Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE 0004 // Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, 0005 // EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 0006 // 0007 // This file is part of Open CASCADE Technology software library. 0008 // 0009 // This library is free software; you can redistribute it and/or modify it under 0010 // the terms of the GNU Lesser General Public License version 2.1 as published 0011 // by the Free Software Foundation, with special exception defined in the file 0012 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0013 // distribution for complete text of the license and disclaimer of any warranty. 0014 // 0015 // Alternatively, this file may be used under the terms of Open CASCADE 0016 // commercial license or contractual agreement. 0017 0018 #ifndef _BOPAlgo_CheckerSI_HeaderFile 0019 #define _BOPAlgo_CheckerSI_HeaderFile 0020 0021 #include <Standard.hxx> 0022 #include <Standard_DefineAlloc.hxx> 0023 #include <Standard_Handle.hxx> 0024 0025 #include <BOPAlgo_PaveFiller.hxx> 0026 0027 0028 //! Checks the shape on self-interference. 0029 //! 0030 //! The algorithm can set the following errors: 0031 //! - *BOPAlgo_AlertMultipleArguments* - The number of the input arguments is not one; 0032 //! - *BOPALgo_ErrorIntersectionFailed* - The check has been aborted during intersection of sub-shapes. 0033 //! In case the error has occurred during intersection of sub-shapes, i.e. 0034 //! in BOPAlgo_PaveFiller::PerformInternal() method, the errors from this method 0035 //! directly will be returned. 0036 0037 class BOPAlgo_CheckerSI : public BOPAlgo_PaveFiller 0038 { 0039 public: 0040 0041 DEFINE_STANDARD_ALLOC 0042 0043 0044 Standard_EXPORT BOPAlgo_CheckerSI(); 0045 Standard_EXPORT virtual ~BOPAlgo_CheckerSI(); 0046 0047 Standard_EXPORT virtual void Perform(const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; 0048 0049 //! Sets the level of checking shape on self-interference.<br> 0050 //! It defines which interferences will be checked:<br> 0051 //! 0 - only V/V;<br> 0052 //! 1 - V/V and V/E;<br> 0053 //! 2 - V/V, V/E and E/E;<br> 0054 //! 3 - V/V, V/E, E/E and V/F;<br> 0055 //! 4 - V/V, V/E, E/E, V/F and E/F;<br> 0056 //! 5 - V/V, V/E, E/E, V/F, E/F and F/F;<br> 0057 //! 6 - V/V, V/E, E/E, V/F, E/F, F/F and V/S;<br> 0058 //! 7 - V/V, V/E, E/E, V/F, E/F, F/F, V/S and E/S;<br> 0059 //! 8 - V/V, V/E, E/E, V/F, E/F, F/F, V/S, E/S and F/S;<br> 0060 //! 9 - V/V, V/E, E/E, V/F, E/F, F/F, V/S, E/S, F/S and S/S - all interferences (Default value) 0061 Standard_EXPORT void SetLevelOfCheck (const Standard_Integer theLevel); 0062 0063 protected: 0064 0065 Standard_EXPORT virtual void Init(const Message_ProgressRange& theRange) Standard_OVERRIDE; 0066 0067 //! Treats the intersection results 0068 Standard_EXPORT void PostTreat(); 0069 0070 Standard_EXPORT void CheckFaceSelfIntersection(const Message_ProgressRange& theRange); 0071 0072 //! Methods for intersection with solids 0073 0074 //! Vertex/Solid intersection 0075 Standard_EXPORT virtual void PerformVZ(const Message_ProgressRange& theRange); 0076 0077 //! Edge/Solid intersection 0078 Standard_EXPORT virtual void PerformEZ(const Message_ProgressRange& theRange); 0079 0080 //! Face/Solid intersection 0081 Standard_EXPORT virtual void PerformFZ(const Message_ProgressRange& theRange); 0082 0083 //! Solid/Solid intersection 0084 Standard_EXPORT virtual void PerformZZ(const Message_ProgressRange& theRange); 0085 0086 //! Used for intersection of edges and faces with solids 0087 Standard_EXPORT virtual void PerformSZ(const TopAbs_ShapeEnum aTS, const Message_ProgressRange& theRange); 0088 0089 Standard_Integer myLevelOfCheck; 0090 0091 private: 0092 0093 }; 0094 0095 #endif // _BOPAlgo_CheckerSI_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |