Advertisement
SolidDesu

lul

Mar 9th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. struct Vertex
  2. {
  3.     static int attribCount()
  4.     {
  5.         return 3;
  6.     }
  7.     template<typename T> void Set(T& value)
  8.     {
  9.     }
  10.     static AttrInfo getAttrInfo(int i)
  11.     {
  12.         switch (i)
  13.         {
  14.             case 2: return  positionInfo();
  15.             case 1: return  normalInfo();
  16.             case 0: return  uvInfo();
  17.         }
  18.         return AttrInfo();
  19.     }
  20.     AttrPosition position;
  21.     template<> void Set(AttrPosition& value)
  22.     {
  23.         this-> position = value;
  24.     }
  25.     static AttrInfo  positionInfo()
  26.     {
  27.         AttrInfo info;
  28.         info.elemCount = AttrPosition::elemCount();
  29.         info.elemType = AttrPosition::elemType();
  30.         info.size = AttrPosition::size();
  31.         return info;
  32.     }
  33.     AttrNormal normal;
  34.     template<> void Set(AttrNormal& value)
  35.     {
  36.         this-> normal = value;
  37.     }
  38.     static AttrInfo  normalInfo()
  39.     {
  40.         AttrInfo info;
  41.         info.elemCount = AttrNormal::elemCount();
  42.         info.elemType = AttrNormal::elemType();
  43.         info.size = AttrNormal::size();
  44.         return info;
  45.     }
  46.     AttrUV uv;
  47.     template<> void Set(AttrUV& value)
  48.     {
  49.         this-> uv = value;
  50.     }
  51.     static AttrInfo  uvInfo()
  52.     {
  53.         AttrInfo info;
  54.         info.elemCount = AttrUV::elemCount();
  55.         info.elemType = AttrUV::elemType();
  56.         info.size = AttrUV::size();
  57.         return info;
  58.     }
  59. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement