def __constrain(self, vector, axis): """ private constrain (used to constrain axis) """ res = PVector.sub(vector, PVector.mult(axis, PVector.dot(axis, vector))) res.normalize() return res