0025298: New option of BRepOffsetAPI_MakeOffset algorithm: processing of sharp corner...
[occt.git] / src / MAT2d / MAT2d_Circuit.cdl
1 -- Created on: 1993-11-18
2 -- Created by: Yves FRICAUD
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
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
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class Circuit from MAT2d 
18
19 inherits 
20
21     TShared from MMgt
22     
23         ---Purpose: Constructs a circuit on a set of lines.
24         --          EquiCircuit gives a Circuit passing by all the lines
25         --          in a set and all the connexions of the minipath associated.
26         --           
27
28 uses
29     JoinType                         from GeomAbs,
30     SequenceOfInteger                from TColStd,
31     Geometry                         from Geom2d,
32     SequenceOfGeometry               from TColGeom2d,
33     SequenceOfBoolean                from TColStd,
34     SequenceOfConnexion              from MAT2d,
35     BiInt                            from MAT2d,
36     Connexion                        from MAT2d,
37     SequenceOfSequenceOfGeometry     from MAT2d,
38     DataMapOfIntegerConnexion        from MAT2d,    
39     MiniPath                         from MAT2d,
40     DataMapOfBiIntSequenceOfInteger  from MAT2d
41
42 is
43
44     Create(aJoinType    : JoinType from GeomAbs  = GeomAbs_Arc;
45            IsOpenResult : Boolean  from Standard = Standard_False)
46     returns Circuit from MAT2d;
47
48 ---Category:  Computation
49
50     Perform(me          : mutable ; 
51             aFigure     : in out SequenceOfSequenceOfGeometry; 
52             IsClosed    :        SequenceOfBoolean from TColStd;
53             IndRefLine  :        Integer;
54             Trigo       :        Boolean)
55     is static;      
56     
57     IsSharpCorner(me; Geom1, Geom2 : Geometry from Geom2d;
58                       Direction : Real from Standard)
59     returns Boolean
60     is static private;
61     
62     PassByLast(me ; C1,C2 : Connexion from MAT2d) 
63     returns Boolean
64     is static private;
65     
66     Side (me ; C : Connexion from MAT2d; Line : SequenceOfGeometry)
67     returns Real 
68     is static private;
69
70     UpDateLink(me : mutable ; 
71                IFirst,ILine,ICurveFirst,ICurveLast: Integer)
72     is static private;
73     
74     SortRefToEqui(me : mutable ; aBiInt : BiInt from MAT2d)
75     is static private;
76
77     InitOpen(me ; Line : in out SequenceOfGeometry)
78     is static private;
79     
80     InsertCorner(me ; Line : in out SequenceOfGeometry)
81     is static private;
82     
83     DoubleLine(me ; 
84                Line       : in out  SequenceOfGeometry;
85                Connexions : in out  SequenceOfConnexion from MAT2d; 
86                Father     : Connexion from MAT2d;
87                Side       : Real)
88     is static private;
89     
90     ConstructCircuit(me          : mutable ;
91                      aFigure     : SequenceOfSequenceOfGeometry;
92                      IndRefLine  : Integer;
93                      aPath       : MiniPath from MAT2d)
94     is static private;               
95
96  ---Category: Querying
97
98     NumberOfItems(me) 
99        ---Purpose: Returns the Number of Items .
100     returns Integer is static;
101     
102     Value(me ; Index : Integer)
103        ---Purpose: Returns the item at position <Index> in <me>. 
104     returns Geometry from Geom2d
105     is static;
106
107     LineLength(me ; IndexLine : Integer)
108        ---Purpose: Returns the number of items on the line <IndexLine>.
109     returns Integer from Standard
110     is static;
111
112     RefToEqui(me ; IndLine : Integer; IndCurve : Integer)
113        ---Purpose: Returns the set of index of the items in <me>corresponding 
114        --          to the curve <IndCurve> on the line <IndLine> from the 
115        --          initial figure.
116        --           
117        ---C++: return const&
118     returns SequenceOfInteger from TColStd
119     is static;
120     
121     Connexion(me ; Index : Integer)
122         ---Purpose:  Returns the Connexion on the item <Index> in me. 
123     returns Connexion from MAT2d
124     is static;
125     
126     ConnexionOn(me ; Index : Integer)
127        ---Purpose: Returns <True> is there is a connexion on the item <Index>
128        --          in <me>.
129     returns Boolean from Standard
130     is static;
131     
132 fields
133     
134     direction    : Real;
135     geomElements : SequenceOfGeometry              from TColGeom2d;    
136     connexionMap : DataMapOfIntegerConnexion       from MAT2d;
137     linkRefEqui  : DataMapOfBiIntSequenceOfInteger from MAT2d;
138     linesLength  : SequenceOfInteger               from TColStd; 
139     myJoinType     : JoinType from GeomAbs;
140     myIsOpenResult : Boolean  from Standard;
141     
142 end Circuit;
143
144