def operate(self, coordinate): """Reflects a point through the reflection plane. Parameters ---------- coordinate : Tuple[float, float, float] Returns ------- : Tuple[float, float, float] """ householder_matrix = create_householder_matrix(self.vector) return householder_matrix_reflection(coordinate, householder_matrix)
def operate(self, coordinate): """Rotates a point around the axis of rotation for a angle of 2 * pi / self.fold and then inverts. Parameters ---------- coordinate : Tuple[float, float, float] Returns ------- : Tuple[float, float, float] """ angle = 2 * pi / self.fold quaternion = create_quaternion(self.vector, angle) householder_matrix = create_householder_matrix(self.vector) x, y, z = householder_matrix_reflection(quaternion_rotation(quaternion, coordinate), householder_matrix) return x, y, z
def int_operate(self, coordinate): """Returns the reflection symmetry operation on a coordinate but returns a tuple of ints. This method is useful for seeing how the symmetry operation affects the sign of a gaussian functions integral exponents. Parameters ---------- coordinate : Tuple[float, float, float] Returns ------- : Tuple[int, int, int] """ householder_matrix = create_householder_matrix(self.vector) x, y, z = householder_matrix_reflection(coordinate, householder_matrix) return int(round(x, 1)), int(round(y, 1)), int(round(z, 1))