0025021: New option of BRepOffsetAPI_MakeOffset algorithm: open result for open wire
[occt.git] / src / BRepMAT2d / BRepMAT2d_BisectingLocus.cdl
CommitLineData
b311480e 1-- Created on: 1993-07-06
2-- Created by: Yves FRICAUD
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--
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
47cbf134 17class BisectingLocus from BRepMAT2d
7fd59977 18
19 ---Purpose : BisectingLocus generates and contains the Bisecting_Locus
20 -- of a set of lines from Geom2d, defined by <ExploSet>.
21 --
22 -- If the set of lines contains closed lines:
23 -- ------------------------------------------
24 -- These lines cut the plane in areas.
25 -- One map can be computed for each area.
26 --
27 -- Bisecting locus computes a map in an area.
28 -- The area is defined by a side (MAT_Left,MAT_Right)
29 -- on one of the closed lines.
30 --
31 -- If the set of lines contains only open lines:
32 -- --------------------------------------------
33 -- the map recovers all the plane.
34 --
35 -- Warning: Assume the orientation of the closed lines are
36 -- compatible.
37 --
38 -- Assume the explo contains only lines located in the
39 -- area where the bisecting locus will be computed.
40 --
41 -- Assume a line don't cross itself or an other line.
42 --
43 -- Remark:
44 -- the curves coming from the explorer can be
45 -- decomposed in different parts. It the case for the
46 -- curves other than circles or lines.
47 --
48 -- The map of bisecting locus is described by a graph.
49 -- - The BasicsElements correspond to elements on
47cbf134 50 -- the figure described by the Explorer from BRepMAT2d.
7fd59977 51 -- - The Arcs correspond to the bisectors.
52 -- - The Nodes are the extremities of the arcs.
53
54uses
55 Graph from MAT,
56 Arc from MAT,
57 BasicElt from MAT,
58 Node from MAT,
59 Side from MAT,
60 DataMapOfIntegerBasicElt from MAT,
61 DataMapOfBiIntInteger from MAT2d,
62 Bisec from Bisector,
63 Geometry from Geom2d,
64 Pnt2d from gp,
47cbf134 65 Tool2d from MAT2d,
66 Explorer from BRepMAT2d
7fd59977 67
68is
47cbf134 69 Create returns BisectingLocus from BRepMAT2d;
7fd59977 70
71---Category: Construction.
72
73 Compute (me : in out ;
47cbf134 74 anExplo : in out Explorer from BRepMAT2d;
7fd59977 75 LineIndex : Integer = 1;
6a442250 76 aSide : Side from MAT = MAT_Left;
77 IsOpenResult : Boolean = Standard_False)
7fd59977 78 --- Purpose : Computation of the Bisector_Locus in a set of Lines
79 -- defined in <anExplo>.
80 -- The bisecting locus are computed on the side <aSide>
81 -- from the line <LineIndex> in <anExplo>.
82 is static;
83
84---Category: Querying.
85
86 IsDone (me) returns Boolean from Standard
87 ---Purpose: Returns True if Compute has succeeded.
88 is static;
89
90 Graph(me) returns Graph from MAT
91 --- Purpose : Returns <theGraph> of <me>.
92 is static;
93
94 NumberOfContours (me)
95 ---Purpose: Returns the number of contours.
96 returns Integer from Standard
97 is static;
98
99 NumberOfElts( me ; IndLine : Integer)
100 ---Purpose: Returns the number of BasicElts on the line
101 -- <IndLine>.
102 returns Integer from Standard
103 is static;
104
105 NumberOfSections (me; IndLine : Integer; Index : Integer)
106 ---Purpose: Returns the number of sections of a curve.
107 -- this curve is the Indexth curve in the IndLineth contour
108 -- given by anExplo.
109 --
110 returns Integer from Standard
111 is static;
112
113 BasicElt ( me ; IndLine : Integer ; Index : Integer)
114 ---Purpose: Returns the BasicElts located at the position
115 -- <Index> on the contour designed by <IndLine>.
116 -- Remark: the BasicElts on a contour are sorted.
117 --
118 returns BasicElt from MAT
119 is static;
120
121 GeomElt(me ; aBasicElt : BasicElt from MAT)
122 --- Purpose : Returns the geometry linked to the <BasicElt>.
123 returns Geometry from Geom2d
124 is static;
125
126 GeomElt(me ; aNode : Node from MAT)
127 --- Purpose : Returns the geometry of type <gp> linked to
128 -- the <Node>.
129 returns Pnt2d from gp
130 is static;
131
132 GeomBis(me ; anArc : Arc from MAT ; Reverse :in out Boolean from Standard)
133 --- Purpose : Returns the geometry of type <Bissec>
134 -- linked to the arc <ARC>.
135 -- <Reverse> is False when the FirstNode of <anArc>
136 -- correspond to the first point of geometry.
137 --
138 returns Bisec from Bisector
139 is static;
140
141---Category: private methods.
142
143 Fusion(me : in out)
144 is static private;
145
146 RenumerationAndFusion
147 (me : in out;
148 IndexLine : Integer;
149 LengthLine : Integer;
150 IndexLast : in out Integer;
151 NewMap : in out DataMapOfIntegerBasicElt from MAT)
152 is static private;
153
154fields
155
156 theGraph : Graph from MAT;
157 theTool : Tool2d from MAT2d;
158 isDone : Boolean from Standard;
159 nbSect : DataMapOfBiIntInteger from MAT2d;
160 nbContours : Integer from Standard;
161
162end BisectingLocus;
163
164