7
7
from .solve_elements import Eqn , Var
8
8
from . import constraints_unsigned as cstr
9
9
10
- # form . import constraints_signed as cstr
10
+ # from . import constraints_signed as cstr
11
11
12
12
try :
13
13
from ccad import model
19
19
# ----------------------------------------------------------
20
20
21
21
22
- class Geometry ( object ) :
22
+ class Geometry :
23
23
def __init__ (self , name ):
24
24
self .vars = []
25
25
self .name = name
@@ -37,14 +37,16 @@ def delete(self):
37
37
38
38
class Point (Geometry ):
39
39
def __init__ (self , name , x = 0.0 , y = 0.0 ):
40
+ super ().__init__ (name )
41
+
40
42
self .x = Var (name + ".x" , x )
41
43
self .y = Var (name + ".y" , y )
44
+
42
45
self .vars = [self .x , self .y ]
43
- self .name = name
44
46
45
47
def plot (self , ax = None ):
46
48
ax = ax or plt .gca ()
47
- plt .scatter (x = (self .x .val ,), y = (self .y .val ,))
49
+ ax .scatter (x = (self .x .val ,), y = (self .y .val ,))
48
50
49
51
def draw (self , view ):
50
52
self .geom = model .vertex ([self .x .val , self .y .val , 0 ])
@@ -54,12 +56,13 @@ def draw(self, view):
54
56
# TODO: add Line (instead of / in addition to, line segment)
55
57
56
58
57
- class Line_Segment (Geometry ):
59
+ class LineSegment (Geometry ):
58
60
def __init__ (self , name , x1 = 0.0 , y1 = 0.0 , x2 = 0.0 , y2 = 0.0 ):
61
+ super ().__init__ (name )
62
+
59
63
self .p1 = Point (name + ".p1" , x1 , y1 )
60
64
self .p2 = Point (name + ".p2" , x2 , y2 )
61
65
self .vars = [self .p1 .x , self .p1 .y , self .p2 .x , self .p2 .y ]
62
- self .name = name
63
66
64
67
def plot (self , ax = None ):
65
68
ax = ax or plt .gca ()
@@ -79,6 +82,8 @@ def draw(self, view):
79
82
80
83
class Circle (Geometry ):
81
84
def __init__ (self , name , cx = 0.0 , cy = 0.0 , cr = 1.0 ):
85
+ super ().__init__ (name )
86
+
82
87
self .p = Point (name + ".p" , cx , cy )
83
88
self .r = Var (name + ".r" , cr )
84
89
self .vars = [self .p .x , self .p .y , self .r ]
@@ -101,12 +106,15 @@ def draw(self, view):
101
106
102
107
103
108
class Constraint (object ):
104
- def __init__ (self ):
109
+ def __init__ (self , name ):
110
+ self .name = name
105
111
self .equations = []
106
112
107
113
108
114
class SetVar (Constraint ):
109
115
def __init__ (self , name , var , val ):
116
+ super ().__init__ (name )
117
+
110
118
self .var = var
111
119
self .val = val
112
120
@@ -115,6 +123,8 @@ def __init__(self, name, var, val):
115
123
116
124
class HorzDist (Constraint ):
117
125
def __init__ (self , name , p1 , p2 , d ):
126
+ super ().__init__ (name )
127
+
118
128
self .p1 = p1
119
129
self .p2 = p2
120
130
self .d = d
@@ -126,6 +136,8 @@ def __init__(self, name, p1, p2, d):
126
136
127
137
class VertDist (Constraint ):
128
138
def __init__ (self , name , p1 , p2 , d ):
139
+ super ().__init__ (name )
140
+
129
141
self .p1 = p1
130
142
self .p2 = p2
131
143
self .d = d
@@ -137,6 +149,8 @@ def __init__(self, name, p1, p2, d):
137
149
138
150
class LineLength (Constraint ):
139
151
def __init__ (self , name , L , d ):
152
+ super ().__init__ (name )
153
+
140
154
self .L = L
141
155
self .d = d
142
156
@@ -151,6 +165,8 @@ def __init__(self, name, L, d):
151
165
152
166
class AnglePoint3 (Constraint ):
153
167
def __init__ (self , name , p1 , p2 , p3 , a ):
168
+ super ().__init__ (name )
169
+
154
170
self .p1 = p1
155
171
self .p2 = p2
156
172
self .p3 = p3
@@ -169,6 +185,8 @@ def __init__(self, name, p1, p2, p3, a):
169
185
170
186
class TangentLineCircle (Constraint ):
171
187
def __init__ (self , name , L , C ):
188
+ super ().__init__ (name )
189
+
172
190
self .L = L
173
191
self .C = C
174
192
@@ -185,6 +203,8 @@ def __init__(self, name, L, C):
185
203
186
204
class PointOnCircle (Constraint ):
187
205
def __init__ (self , name , p , C ):
206
+ super ().__init__ (name )
207
+
188
208
self .p = p
189
209
self .C = C
190
210
@@ -200,6 +220,8 @@ def __init__(self, name, p, C):
200
220
class GroundPoint (Constraint ):
201
221
# note: untested
202
222
def __init__ (self , name , p ):
223
+ super ().__init__ (name )
224
+
203
225
self .p = p
204
226
self .gx = p .x .val
205
227
self .gy = p .y .val
@@ -212,6 +234,8 @@ def __init__(self, name, p):
212
234
213
235
class CoincidentPoint2 (Constraint ):
214
236
def __init__ (self , name , p1 , p2 ):
237
+ super ().__init__ (name )
238
+
215
239
self .p1 = p1
216
240
self .p2 = p2
217
241
0 commit comments