code: def orthonormal_vectors_old(self):
          
          if self.e1 is None:
              imax = np.argmax(np.abs(self.normal_vector))
              if imax == 0:
                  self.e1 = np.array([self.e3[1], -self.e3[0], 0.0]) / np.sqrt(self.e3[0] ** 2 + self.e3[1] ** 2)
              elif imax == 1:
                  self.e1 = np.array([0.0, self.e3[2], -self.e3[1]]) / np.sqrt(self.e3[1] ** 2 + self.e3[2] ** 2)
              elif imax == 2:
                  self.e1 = np.array([-self.e3[2], 0.0, self.e3[0]]) / np.sqrt(self.e3[0] ** 2 + self.e3[2] ** 2)
              else:
                  raise ValueError('Only three values in the normal vector, should not be here ...')
              self.e2 = np.cross(self.e3, self.e1)
          return [self.e1, self.e2, self.e3]
docs: Returns a list of three orthogonal vectors, the two first being parallel to the plane and the
          third one is the normal vector of the plane
          :return: List of orthogonal vectors
          :raise: ValueError if all the coefficients are zero or if there is some other strange error