code: def transform(self):
          '''P⃗,Q⃗,W⃗'''
          i = self.inclination
          Ω = self.longitude_of_ascending_node
          ω = self.argument_of_periapsis
  
          si = sin(i)
          ci = cos(i)
          sΩ = sin(Ω)
          cΩ = cos(Ω)
          sω = sin(ω)
          cω = cos(ω)
  
          Q = np.array([
               [-sΩ*ci*sω + cΩ*cω,
                 cΩ*ci*sω + sΩ*cω,
                 si*sω],
               [-sΩ*ci*cω - cΩ*sω,
                 cΩ*ci*cω - sΩ*sω,
                 si*cω],
               [ sΩ*si,
                -cΩ*si,
                 ci]])
  
          return f transform(self):
          '''P⃗,Q⃗,W⃗'''
          i = self.inclination
          Ω = self.longitude_of_ascending_node
          ω = self.argument_of_periapsis
  
          si = sin(i)
          ci = cos(i)
          sΩ = sin(Ω)
          cΩ = cos(Ω)
          sω = sin(ω)
          cω = cos(ω)
  
          Q = np.array([
               [-sΩ*ci*sω + cΩ*cω,
                 cΩ*ci*sω + sΩ*cω,
                 si*sω],
               [-sΩ*ci*cω - cΩ*sω,
                 cΩ*ci*cω - sΩ*sω,
                 si*cω],
               [ sΩ*si,
                -cΩ*si,
                 ci]])
  
          return Q
docs: P⃗,Q⃗,W⃗