diff --git a/gyro.py b/gyro.py index 7396cb2..57f3b8b 100644 --- a/gyro.py +++ b/gyro.py @@ -100,6 +100,17 @@ class GyroVector: cAdd, cGyr = MobiusAddGyr(gA.cPos, gB.cPos) return GyroVector(cAdd, gA.cRot * gB.cRot * cGyr) + def __iadd__(self, gA): + cAdd, cGyr = MobiusAddGyr(self.cPos, gA.cPos) + self.cPos = cAdd + self.cRot = self.cRot * gA.cRot * cGyr + + def __isub__(self, gA): + ngA = -gA + cAdd, cGyr = MobiusAddGyr(self.cPos, ngA.cPos) + self.cPos = cAdd + self.cRot = self.cRot * ngA.cRot * cGyr + def __neg__(self): return GyroVector(-(self.cRot * self.cPos), 1/self.cRot)