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

b311480e | 1 | -- Created on: 1995-05-02 |

2 | -- Created by: Jing Cheng MEI | |

3 | -- Copyright (c) 1995-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 | -- |

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

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

973c2be1 | 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 | class FindContigousEdges from BRepOffsetAPI | |

18 | ||

19 | ---Purpose: Provides methods to identify contigous boundaries | |

20 | -- for continuity control (C0, C1, ...) | |

21 | -- | |

22 | -- Use this function as following: | |

23 | -- - create an object | |

24 | -- - default tolerance 1.E-06 | |

25 | -- - with analysis of degenerated faces on | |

26 | -- - define if necessary a new tolerance | |

27 | -- - set if necessary analysis of degenerated shapes off | |

28 | -- - add shapes to be controlled -> Add | |

29 | -- - compute -> Perfom | |

30 | -- - output couples of connected edges for control | |

31 | -- - output the problems if any | |

32 | ||

33 | uses | |

34 | Edge from TopoDS, | |

35 | Shape from TopoDS, | |

36 | ListOfShape from TopTools, | |

37 | Sewing from BRepBuilderAPI | |

38 | ||

39 | raises | |

40 | OutOfRange from Standard, | |

41 | NoSuchObject from Standard | |

42 | ||

43 | ||

44 | is | |

45 | Create(tolerance: Real = 1.0e-06; -- tolerance of connexity | |

46 | option: Boolean = Standard_True) -- option for analysis of degenerated shapes | |

47 | ---Purpose: Initializes an algorithm for identifying contiguous edges | |

48 | -- on shapes with tolerance as the tolerance of contiguity | |

49 | -- (defaulted to 1.0e-6). This tolerance value is used to | |

50 | -- determine whether two edges or sections of edges are coincident. | |

51 | -- Use the function Add to define the shapes to be checked. | |

52 | -- Set option to false. This argument (defaulted to true) will | |

53 | -- serve in subsequent software releases for performing an | |

54 | -- analysis of degenerated shapes. | |

55 | returns FindContigousEdges from BRepOffsetAPI; | |

56 | ||

57 | Init(me: in out; tolerance: Real; option: Boolean); | |

58 | ---Purpose: Initializes this algorithm for identifying contiguous edges | |

59 | -- on shapes using the tolerance of contiguity tolerance. | |

60 | -- This tolerance value is used to determine whether two | |

61 | -- edges or sections of edges are coincident. | |

62 | -- Use the function Add to define the shapes to be checked. | |

63 | -- Sets <option> to false. | |

64 | ||

65 | Add(me: in out; shape: Shape from TopoDS); | |

66 | ---Purpose: Adds the shape shape to the list of shapes to be | |

67 | -- checked by this algorithm. | |

68 | -- Once all the shapes to be checked have been added, | |

69 | -- use the function Perform to find the contiguous edges | |

70 | -- and the function ContigousEdge to return these edges. | |

71 | ||

72 | Perform(me: in out); | |

73 | ---Purpose: Finds coincident parts of edges of two or more shapes | |

74 | -- added to this algorithm and breaks down these edges | |

75 | -- into contiguous and non-contiguous sections on copies | |

76 | -- of the initial shapes. | |

77 | -- The function ContigousEdge returns contiguous | |

78 | -- edges. The function Modified can be used to return | |

79 | -- modified copies of the initial shapes where one or more | |

80 | -- edges were broken down into contiguous and non-contiguous sections. | |

81 | -- Warning | |

82 | -- This function must be used once all the shapes to be | |

83 | -- checked have been added. It is not possible to add | |

84 | -- further shapes subsequently and then to repeat the call to Perform. | |

85 | NbEdges(me) returns Integer; | |

86 | ---Purpose: Gives the number of edges (free edges + contigous | |

87 | -- edges + multiple edge) | |

88 | ||

89 | NbContigousEdges(me) returns Integer; | |

90 | ---Purpose: Returns the number of contiguous edges found by the | |

91 | -- function Perform on the shapes added to this algorithm. | |

92 | ||

93 | ContigousEdge(me; index: Integer) returns Edge from TopoDS | |

94 | ---Purpose: Returns the contiguous edge of index index found by | |

95 | -- the function Perform on the shapes added to this algorithm. | |

96 | -- Exceptions | |

97 | -- Standard_OutOfRange if: | |

98 | -- - index is less than 1, or | |

99 | -- - index is greater than the number of contiguous | |

100 | -- edges found by the function Perform on the shapes added to this algorithm. | |

101 | ---C++: return const & | |

102 | raises | |

103 | OutOfRange from Standard; | |

104 | ||

105 | ContigousEdgeCouple(me; index: Integer) returns ListOfShape from TopTools | |

106 | ---Purpose: Returns a list of edges coincident with the contiguous | |

107 | -- edge of index index found by the function Perform. | |

108 | -- There are as many edges in the list as there are faces | |

109 | -- adjacent to this contiguous edge. | |

110 | -- Exceptions | |

111 | -- Standard_OutOfRange if: | |

112 | -- - index is less than 1, or | |

113 | -- - index is greater than the number of contiguous edges | |

114 | -- found by the function Perform on the shapes added to this algorithm. | |

115 | ---C++: return const & | |

116 | raises | |

117 | OutOfRange from Standard; | |

118 | ||

119 | SectionToBoundary(me; section: Edge from TopoDS) returns Edge from TopoDS | |

120 | ---Purpose: Returns the edge on the initial shape, of which the | |

121 | -- modified copy contains the edge section. | |

122 | -- section is coincident with a contiguous edge found by | |

123 | -- the function Perform. Use the function | |

124 | -- ContigousEdgeCouple to obtain a valid section. | |

125 | -- This information is useful for verification purposes, since | |

126 | -- it provides a means of determining the surface to which | |

127 | -- the contiguous edge belongs. | |

128 | -- Exceptions | |

129 | -- Standard_NoSuchObject if section is not coincident | |

130 | -- with a contiguous edge. Use the function | |

131 | -- ContigousEdgeCouple to obtain a valid section. | |

132 | ---C++: return const & | |

133 | raises | |

134 | NoSuchObject from Standard; | |

135 | ||

136 | NbDegeneratedShapes(me) returns Integer; | |

137 | ---Purpose: Gives the number of degenerated shapes | |

138 | ||

139 | DegeneratedShape(me; index: Integer) returns Shape from TopoDS | |

140 | ---Purpose: Gives a degenerated shape | |

141 | ---C++: return const & | |

142 | raises | |

143 | OutOfRange from Standard; | |

144 | -- raised if index < 1 or > NbDegeneratedShapes | |

145 | ||

146 | IsDegenerated(me; shape: Shape from TopoDS) returns Boolean; | |

147 | ---Purpose: Indicates if a input shape is degenerated | |

148 | ||

149 | IsModified(me; shape: Shape from TopoDS) returns Boolean; | |

150 | ---Purpose: Returns true if the copy of the initial shape shape was | |

151 | -- modified by the function Perform (i.e. if one or more of | |

152 | -- its edges was broken down into contiguous and non-contiguous sections). | |

153 | -- Warning | |

154 | -- Returns false if shape is not one of the initial shapes | |

155 | -- added to this algorithm. | |

156 | ||

157 | Modified(me; shape: Shape from TopoDS) returns Shape from TopoDS | |

158 | ---Purpose: Gives a modifieded shape | |

159 | -- Raises NoSuchObject if shape has not been modified | |

160 | ---C++: return const & | |

161 | raises | |

162 | NoSuchObject from Standard; | |

163 | ||

164 | Dump(me); | |

165 | ---Purpose: Dump properties of resulting shape. | |

166 | ||

167 | fields | |

168 | mySewing : Sewing from BRepBuilderAPI; | |

169 | ||

170 | end FindContigousEdges; |