1 -- Created on: 1992-09-23
2 -- Created by: Gilles DEBARBOUILLE
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
22 generic class Tool from MAT (Item as any)
25 --- Purpose : Set of the methods useful for the MAT's computation.
26 -- Warning : To use the algorithm MAT, it's necessary to use four
27 -- indexed sets (Array,Sequence ...)
28 -- One set contains the geometric definitions of
29 -- the simple composants of the Figure.
30 -- An other set contains the geometric definitions of
32 -- An other set contains the geometric definitions of
33 -- the points created during the MAT's computation.
34 -- An other set contains the geometric definitions of
35 -- the Tangent Vectors to the edge's extremitis.
42 Create returns Tool from MAT;
44 NumberOfItems(me) returns Integer
45 --- Purpose : Returns the Number of Items .
48 ToleranceOfConfusion(me) returns Real
49 ---Purpose: Returns tolerance to test the confusion of two points.
52 FirstPoint(me ; anitem : Integer;
53 dist : out Real ) returns Integer
54 --- Purpose : Creates the point at the origin of the bisector between
55 -- anitem and the previous item.
56 -- dist is the distance from the FirstPoint to <anitem>.
60 TangentBefore(me ; anitem : Integer) returns Integer
61 --- Purpose : Create the Tangent at the end of the Item defined
62 -- by <anitem>. Returns the index of this vector in
66 TangentAfter(me ; anitem : Integer) returns Integer
67 --- Purpose : Create the Reversed Tangent at the origin of the Item
68 -- defined by <anitem>. Returns the index of this vector in
72 Tangent(me ; bisector : Integer ) returns Integer
73 --- Purpose : Create the Tangent at the end of the bisector defined
74 -- by <bisector>. Returns the index of this vector in
78 CreateBisector(me : in out ; abisector : mutable Bisector from MAT)
79 --- Purpose : Create the geometric bisector defined by <abisector>.
82 TrimBisector(me : in out ;
83 abisector : mutable Bisector from MAT)
84 --- Purpose : Trim the geometric bisector by the <firstparameter>
86 -- If the parameter is out of the bisector, Return False.
88 returns Boolean is static;
90 TrimBisector(me : in out ;
91 abisector : mutable Bisector from MAT ;
93 --- Purpose : Trim the geometric bisector by the point of index
94 -- <apoint> in <theGeomPnts>.
95 -- If the point is out of the bisector, Return False
97 returns Boolean is static;
99 IntersectBisector(me : in out ;
100 bisectorone : mutable Bisector from MAT ;
101 bisectortwo : mutable Bisector from MAT ;
102 intpnt : in out Integer)
103 --- Purpose : Computes the point of intesection between the
104 -- bisectors defined by <bisectorone> and
106 -- If this point exists, <intpnt> is its index
107 -- in <theGeomPnts> and Return the distance of the point
108 -- from the edges separated by the bisectors else
109 -- Returns <RealLast>.
110 returns Real is static;
113 abisector : Bisector from MAT;
116 ---Purpose: Returns the distance between the two points designed
117 -- by their parameters on <abisector>.
118 returns Real is static;
123 --- Purpose : display informations about the bisector defined by