|
||||
File indexing completed on 2025-01-18 10:04:10
0001 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0002 // 0003 // This file is part of Open CASCADE Technology software library. 0004 // 0005 // This library is free software; you can redistribute it and/or modify it under 0006 // the terms of the GNU Lesser General Public License version 2.1 as published 0007 // by the Free Software Foundation, with special exception defined in the file 0008 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0009 // distribution for complete text of the license and disclaimer of any warranty. 0010 // 0011 // Alternatively, this file may be used under the terms of Open CASCADE 0012 // commercial license or contractual agreement. 0013 0014 #ifndef _IntPatch_WLineTool_HeaderFile 0015 #define _IntPatch_WLineTool_HeaderFile 0016 0017 #include <IntPatch_SequenceOfLine.hxx> 0018 #include <IntPatch_WLine.hxx> 0019 #include <NCollection_List.hxx> 0020 0021 class Adaptor3d_TopolTool; 0022 0023 //! IntPatch_WLineTool provides set of static methods related to walking lines. 0024 class IntPatch_WLineTool 0025 { 0026 public: 0027 0028 DEFINE_STANDARD_ALLOC 0029 0030 //! I 0031 //! Removes equal points (leave one of equal points) from theWLine 0032 //! and recompute vertex parameters. 0033 //! 0034 //! II 0035 //! Removes point out of borders in case of non periodic surfaces. 0036 //! 0037 //! III 0038 //! Removes exceed points using tube criteria: 0039 //! delete 7D point if it lies near to expected lines in 2d and 3d. 0040 //! Each task (2d, 2d, 3d) have its own tolerance and checked separately. 0041 //! 0042 //! Returns new WLine or null WLine if the number 0043 //! of the points is less than 2. 0044 Standard_EXPORT static 0045 Handle(IntPatch_WLine) ComputePurgedWLine(const Handle(IntPatch_WLine) &theWLine, 0046 const Handle(Adaptor3d_Surface) &theS1, 0047 const Handle(Adaptor3d_Surface) &theS2, 0048 const Handle(Adaptor3d_TopolTool) &theDom1, 0049 const Handle(Adaptor3d_TopolTool) &theDom2); 0050 0051 //! Joins all WLines from theSlin to one if it is possible and records 0052 //! the result into theSlin again. Lines will be kept to be split if: 0053 //! a) they are separated (has no common points); 0054 //! b) resulted line (after joining) go through seam-edges or surface boundaries. 0055 //! 0056 //! In addition, if points in theSPnt lies at least in one of the line in theSlin, 0057 //! this point will be deleted. 0058 Standard_EXPORT static void JoinWLines(IntPatch_SequenceOfLine& theSlin, 0059 IntPatch_SequenceOfPoint& theSPnt, 0060 Handle(Adaptor3d_Surface) theS1, 0061 Handle(Adaptor3d_Surface) theS2, 0062 const Standard_Real theTol3D); 0063 0064 //! Extends every line from theSlin (if it is possible) to be started/finished 0065 //! in strictly determined point (in the place of joint of two lines). 0066 //! As result, some gaps between two lines will vanish. 0067 //! The Walking lines are supposed (algorithm will do nothing for not-Walking line) 0068 //! to be computed as a result of intersection. Both theS1 and theS2 0069 //! must be quadrics. Other cases are not supported. 0070 //! theArrPeriods must be filled as follows (every value must not be negative; 0071 //! if the surface is not periodic the period must be equal to 0.0 strictly): 0072 //! {<U-period of 1st surface>, <V-period of 1st surface>, 0073 //! <U-period of 2nd surface>, <V-period of 2nd surface>}. 0074 //! theListOfCriticalPoints must contain 3D-points where joining is disabled. 0075 Standard_EXPORT static void 0076 ExtendTwoWLines(IntPatch_SequenceOfLine& theSlin, 0077 const Handle(Adaptor3d_Surface)& theS1, 0078 const Handle(Adaptor3d_Surface)& theS2, 0079 const Standard_Real theToler3D, 0080 const Standard_Real* const theArrPeriods, 0081 const Bnd_Box2d& theBoxS1, 0082 const Bnd_Box2d& theBoxS2, 0083 const NCollection_List<gp_Pnt>& theListOfCriticalPoints); 0084 0085 //! Max angle to concatenate two WLines to avoid result with C0-continuity 0086 static const Standard_Real myMaxConcatAngle; 0087 }; 0088 0089 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |