27 lines
939 B
Python
27 lines
939 B
Python
|
|
from Constraint import Constraint
|
|
|
|
class Connect(Constraint):
|
|
def __init__(self, shape1, pt1, shape2, pt2):
|
|
self.shape1 = shape1
|
|
self.pt1 = pt1
|
|
self.shape2 = shape2
|
|
self.pt2 = pt2
|
|
|
|
def toEqu(self):
|
|
varrefs1 = self.shape1.toEqu(self.pt1)[0]
|
|
varrefs2 = self.shape2.toEqu(self.pt2)[0]
|
|
coeffs1 = []
|
|
for i in range(len(varrefs1)):
|
|
coeffs1.append((1 * varrefs1[i], (self.shape1, i)))
|
|
for i in range(len(varrefs2)):
|
|
coeffs1.append((-1 * varrefs2[i], (self.shape2, i)))
|
|
varrefs1 = self.shape1.toEqu(self.pt1)[1]
|
|
varrefs2 = self.shape2.toEqu(self.pt2)[1]
|
|
coeffs2 = []
|
|
for i in range(len(varrefs1)):
|
|
coeffs2.append((1 * varrefs1[i], (self.shape1, i)))
|
|
for i in range(len(varrefs2)):
|
|
coeffs2.append((-1 * varrefs2[i], (self.shape2, i)))
|
|
return [(coeffs1, 0), (coeffs2, 0)]
|