Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. namespace obj_reader {
  2.     struct V3
  3.     {
  4.         double x;
  5.         double y;
  6.         double z;
  7.     };
  8.  
  9.     struct V4
  10.     {
  11.         double x;
  12.         double y;
  13.         double z;
  14.         double w;
  15.     };
  16.  
  17.     namespace parser
  18.     {
  19.         x3::rule<class obj_v3, V3>
  20.             obj_v3 = "obj_v3";
  21.  
  22.         x3::rule<class obj_v4, V4>
  23.             obj_v4 = "obj_v4";
  24.  
  25.         x3::rule<class obj_comment, string>
  26.             obj_comment = "obj_comment";
  27.  
  28.         auto const obj_v3_def =
  29.             'v' >> x3::double_ >> x3::double_ >> x3::double_;
  30.  
  31.         auto const obj_v4_def =
  32.             'v' >> x3::double_ >> x3::double_ >> x3::double_ >> x3::double_;
  33.  
  34.         auto const obj_comment_def =
  35.             '#' >> x3::lexeme[*x3::char_];
  36.  
  37.         BOOST_SPIRIT_DEFINE(obj_v3, obj_v4, obj_comment);
  38.     }
  39. }
  40.  
  41. BOOST_FUSION_ADAPT_STRUCT(
  42.     obj_reader::V3,
  43.     (double, x),
  44.     (double, y),
  45.     (double, z)
  46. )
  47.  
  48. BOOST_FUSION_ADAPT_STRUCT(
  49.     obj_reader::V4,
  50.     (double, x),
  51.     (double, y),
  52.     (double, z),
  53.     (double, w)
  54. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement