jpcad/Connect.py
2011-03-28 18:25:55 -04:00

27 lines
917 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(pt1)[0]
varrefs2 = self.shape2.toEqu(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(pt1)[1]
varrefs2 = self.shape2.toEqu(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), (ceoffs2, 0)]