[ create a new paste ] login | about

Link: http://codepad.org/9SslObrb    [ raw code | fork ]

C++, pasted on Jul 16:
namespace glm
{
  namespace detail
  {   
    template<typename T>
    struct tvec3
    {
      T x_, y_, z_;
      tvec3(T x, T y, T z) : x_(x), y_(y), z_(z)
      {
      }
    };
  }

  template<typename T>
  detail::tvec3<T> cross(detail::tvec3<T> const& a, detail::tvec3<T> const& b)
  {
    return detail::tvec3<T>(a.y_ * b.z_ - a.z_ - b.y_, 
                            a.z_ * b.x_ - a.x_ - b.z_,
                            a.x_ * b.y_ - a.y_ - b.x_);
  }
}

template <typename T, unsigned int Dim>
struct vect
{
};
 
template <typename T>
struct vect<T, 3u>
{
  typedef glm::detail::tvec3<T> value; 
};


typedef vect<double, 3u>::value vec3d;
typedef vect<float, 3u>::value  vec3f;

 
 
template <typename T, unsigned int Dim>
typename vect<T, Dim>::value cross_product( typename vect<T, Dim>::value const& left
                                          , typename vect<T, Dim>::value const& right)
{
  return glm::cross<T>(left, right);
}


int main()
{
  vec3f v0 = vec3f(1.f, 0.f, 0.f);
  vec3f v1 = vec3f(0.f, 1.f, 0.f);
 
  vec3f res = cross_product<float, 3u>(v0, v1);
  return 0;
}


Output:
No errors or program output.


Create a new paste based on this one


Comments: