Commit | Line | Data |
---|---|---|

b311480e | 1 | -- Created on: 1993-07-22 |

2 | -- Created by: Isabelle GRIGNON | |

3 | -- Copyright (c) 1993-1999 Matra Datavision | |

973c2be1 | 4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |

b311480e | 5 | -- |

973c2be1 | 6 | -- This file is part of Open CASCADE Technology software library. |

b311480e | 7 | -- |

973c2be1 | 8 | -- This library is free software; you can redistribute it and / or modify it |

9 | -- under the terms of the GNU Lesser General Public version 2.1 as published | |

10 | -- by the Free Software Foundation, with special exception defined in the file | |

11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |

12 | -- distribution for complete text of the license and disclaimer of any warranty. | |

b311480e | 13 | -- |

973c2be1 | 14 | -- Alternatively, this file may be used under the terms of Open CASCADE |

15 | -- commercial license or contractual agreement. | |

7fd59977 | 16 | |

17 | package BRepBndLib | |

18 | ||

19 | ---Purpose: This package provides the bounding boxes for curves | |

20 | -- and surfaces from BRepAdaptor. | |

21 | -- Functions to add a topological shape to a bounding box | |

22 | uses BRepAdaptor, | |

23 | Bnd, | |

24 | TopoDS, | |

25 | Geom, | |

26 | GeomAbs, | |

27 | TColgp, | |

28 | gp | |

29 | ||

30 | is | |

31 | ||

32 | -- | |

33 | -- Package methods for shapes | |

34 | -- | |

35 | ||

3c34883c O |
36 | Add(S : Shape from TopoDS; |

37 | B : in out Box from Bnd; | |

38 | useTriangulation: Boolean from Standard = Standard_True); | |

7fd59977 | 39 | ---Purpose:Adds the shape S to the bounding box B. |

40 | -- More precisely are successively added to B: | |

41 | -- - each face of S; the triangulation of the face is used if it exists, | |

42 | -- - then each edge of S which does not belong to a face, | |

43 | -- the polygon of the edge is used if it exists | |

44 | -- - and last each vertex of S which does not belong to an edge. | |

45 | -- After each elementary operation, the bounding box B is | |

46 | -- enlarged by the tolerance value of the relative sub-shape. | |

47 | -- When working with the triangulation of a face this value of | |

48 | -- enlargement is the sum of the triangulation deflection and | |

49 | -- the face tolerance. When working with the | |

50 | -- polygon of an edge this value of enlargement is | |

51 | -- the sum of the polygon deflection and the edge tolerance. | |

52 | -- Warning | |

53 | -- - This algorithm is time consuming if triangulation has not | |

54 | -- been inserted inside the data structure of the shape S. | |

55 | -- - The resulting bounding box may be somewhat larger than the object. | |

56 | ||

57 | ||

58 | AddClose(S : Shape from TopoDS; B : in out Box from Bnd); | |

59 | ---Purpose: Adds the shape S to the bounding box B. | |

60 | -- This is a quick algorithm but only works if the shape S is | |

61 | -- composed of polygonal planar faces, as is the case if S is | |

62 | -- an approached polyhedral representation of an exact | |

63 | -- shape. Pay particular attention to this because this | |

64 | -- condition is not checked and, if it not respected, an error | |

65 | -- may occur in the algorithm for which the bounding box is built. | |

66 | -- Note that the resulting bounding box is not enlarged by the | |

67 | -- tolerance value of the sub-shapes as is the case with the | |

68 | -- Add function. So the added part of the resulting bounding | |

69 | -- box is closer to the shape S. | |

70 | ||

71 | ||

72 | end BRepBndLib; | |

73 | ||

74 | ||

75 | ||

76 |