b311480e |
1 | -- Created on: 1992-10-19 |
2 | -- Created by: Remi GILET |
3 | -- Copyright (c) 1992-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
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. |
10 | -- |
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. |
13 | -- |
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. |
20 | |
7fd59977 |
21 | |
22 | class Bisec from Bisector |
23 | |
24 | --- Purpose : Bisec provides the bisecting line between two elements |
25 | -- This line is trimed by a point <P> and it's contained in the domain |
26 | -- defined by the two vectors <V1>, <V2> and <Sense>. |
27 | -- |
28 | -- Definition of the domain: |
29 | -- if <Sense> is true the bisecting line is contained in the sector |
30 | -- defined by <-V1> and <-V2> in the sense indirect. |
31 | -- if <Sense> is false the bisecting line is contained in the sector |
32 | -- defined by <-V1> and <-V2> in the sense direct. |
33 | -- |
34 | -- <Tolerance> is used to define degenerate bisector. |
35 | -- if the bisector is an hyperbola and one of this radius is smaller |
36 | -- than <Tolerance>, the bisector is replaced by a line or semi_line |
37 | -- corresponding to one of hyperbola's axes. |
38 | -- if the bisector is a parabola on the focal length is smaller than |
39 | -- <Tolerance>, the bisector is replaced by a semi_line corresponding |
40 | -- to the axe of symetrie of the parabola. |
41 | -- if the bisector is an ellipse and the minor radius is smaller than |
42 | -- <Tolerance>, the bisector is replaced by a segment corresponding |
43 | -- to the great axe of the ellipse. |
44 | |
45 | uses |
46 | |
47 | TrimmedCurve from Geom2d , |
48 | Curve from Geom2d , |
49 | Curve from Bisector, |
50 | Point from Geom2d , |
51 | Pnt2d from gp , |
52 | Vec2d from gp , |
53 | Integer from Standard |
54 | |
55 | is |
56 | Create returns Bisec from Bisector; |
57 | |
58 | Perform(me : in out ; |
59 | Cu1 : Curve from Geom2d ; |
60 | Cu2 : Curve from Geom2d ; |
61 | P : Pnt2d from gp ; |
62 | V1 : Vec2d from gp ; |
63 | V2 : Vec2d from gp ; |
64 | Sense : Real from Standard ; |
65 | Tolerance : Real from Standard ; |
66 | oncurve : Boolean from Standard = Standard_True ); |
67 | |
68 | --- Purpose : Performs the bisecting line between the curves |
69 | -- <Cu1> and <Cu2>. |
70 | -- <oncurve> is True if the point <P> is common to <Cu1> |
71 | -- and <Cu2>. |
72 | |
73 | Perform(me : in out ; |
74 | Cu : Curve from Geom2d ; |
75 | Pnt : Point from Geom2d ; |
76 | P : Pnt2d from gp ; |
77 | V1 : Vec2d from gp ; |
78 | V2 : Vec2d from gp ; |
79 | Sense : Real from Standard ; |
80 | Tolerance : Real from Standard ; |
81 | oncurve : Boolean from Standard = Standard_True); |
82 | |
83 | --- Purpose : Performs the bisecting line between the curve |
84 | -- <Cu1> and the point <Pnt>. |
85 | -- <oncurve> is True if the point <P> is the point <Pnt>. |
86 | |
87 | Perform(me : in out ; |
88 | Pnt : Point from Geom2d ; |
89 | Cu : Curve from Geom2d ; |
90 | P : Pnt2d from gp ; |
91 | V1 : Vec2d from gp ; |
92 | V2 : Vec2d from gp ; |
93 | Sense : Real from Standard ; |
94 | Tolerance : Real from Standard ; |
95 | oncurve : Boolean from Standard = Standard_True ); |
96 | |
97 | --- Purpose : Performs the bisecting line between the curve |
98 | -- <Cu> and the point <Pnt>. |
99 | -- <oncurve> is True if the point <P> is the point <Pnt>. |
100 | |
101 | Perform(me : in out ; |
102 | Pnt1 : Point from Geom2d ; |
103 | Pnt2 : Point from Geom2d ; |
104 | P : Pnt2d from gp ; |
105 | V1 : Vec2d from gp ; |
106 | V2 : Vec2d from gp ; |
107 | Sense : Real from Standard ; |
108 | Tolerance : Real from Standard = 0.0 ; |
109 | oncurve : Boolean from Standard = Standard_True ) ; |
110 | |
111 | --- Purpose : Performs the bisecting line between the two points |
112 | -- <Pnt1> and <Pnt2>. |
113 | |
114 | |
115 | Value(me) returns TrimmedCurve from Geom2d |
116 | --- Purpose : Returns the Curve of <me>. |
117 | ---C++: return const & |
118 | is static; |
119 | |
120 | ChangeValue (me : in out) returns mutable TrimmedCurve from Geom2d |
121 | --- Purpose : Returns the Curve of <me>. |
122 | -- |
123 | ---C++: return const & |
124 | is static; |
125 | |
126 | fields |
127 | |
128 | thebisector : TrimmedCurve from Geom2d; |
129 | |
130 | end Bisec; |
131 | |
132 | |