'Takes in a position to look at and an up vector to use to look at
it with.  The up vector will normally be the positive Y axis, but in
the case where the position is directly above or below the position
of the camera, you will need to set which direction up is in this
case.'

def LookAt(self, position, up=DirectX.Vector3(0, 1, 0)):

    zero = DirectX.Vector3(0, 0, 0)
    direction = (Vectorize(position) - self.Position)
    up = Vectorize(up)
    self.LookAtMatrix = DirectX.Matrix.LookAtLH(zero, direction, up)
    self.RotationMatrix = DirectX.Matrix.Identity
