2 #ifndef GLSDK_MESH_DRAW_WITH_BOOST_H
3 #define GLSDK_MESH_DRAW_WITH_BOOST_H
14 #include <boost/fusion/algorithm.hpp>
15 #include <boost/fusion/adapted/boost_tuple.hpp>
16 #include <boost/fusion/include/boost_tuple.hpp>
22 template<
typename AttribType>
23 struct AttribTypeTraits
25 typedef AttribType value_type;
29 struct AttribTypeTraits<glm::detail::tvec1<T> >
35 struct AttribTypeTraits<glm::detail::tvec2<T> >
41 struct AttribTypeTraits<glm::detail::tvec3<T> >
47 struct AttribTypeTraits<glm::detail::tvec4<T> >
53 template<
typename Sink>
58 template<
typename AttribType>
59 void operator()(
const AttribType &attribute)
const
61 typedef typename glmesh::_detail::AttribTypeTraits<AttribType>::value_type GccSucks;
62 m_drawable.template Attrib<GccSucks>(attribute);
136 template<
typename Sink,
typename VertexSequence>
139 boost::fusion::for_each(vertexData, _detail::WriteAttrib<Sink>(drawable));
145 #endif //GLSDK_MESH_DRAW_WITH_BOOST_H