Changeset 1619


Ignore:
Timestamp:
Jul 10, 2012, 1:18:31 PM (8 years ago)
Author:
sam
Message:

easymesh: add the capsule mesh.

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/easymesh/easymesh-parser.y

    r1510 r1619  
    5151%token T_CHAMFER
    5252
    53 %token T_CYLINDER T_BOX T_SMOOTHCHAMFBOX T_FLATCHAMFBOX T_SPHERE T_STAR
    54 %token T_EXPANDEDSTAR T_DISC T_TRIANGLE T_QUAD T_COG
     53%token T_CYLINDER T_BOX T_SMOOTHCHAMFBOX T_FLATCHAMFBOX T_SPHERE T_CAPSULE
     54%token T_STAR T_EXPANDEDSTAR T_DISC T_TRIANGLE T_QUAD T_COG
    5555
    5656%token T_END 0
     
    148148  | T_SPHERE args4         { mc.m_mesh.AppendSphere($2.f0,
    149149                                               vec3($2.f1, $2.f2, $2.f3)); }
     150  | T_CAPSULE args3        { mc.m_mesh.AppendCapsule($2.f0, $2.f1, $2.f2); }
    150151  | T_STAR args5           { mc.m_mesh.AppendStar((int)$2.f0, $2.f1, $2.f2,
    151152                                             (int)$2.f3, (int)$2.f4); }
  • trunk/src/easymesh/easymesh-scanner.l

    r1512 r1619  
    7575ascb  { return token::T_SMOOTHCHAMFBOX; }
    7676afcb  { return token::T_FLATCHAMFBOX; }
     77acap  { return token::T_CAPSULE; }
    7778asph  { return token::T_SPHERE; }
    7879as    { return token::T_STAR; }
  • trunk/src/easymesh/easymesh.cpp

    r1604 r1619  
    1818#if defined HAVE_CONFIG_H
    1919#   include "config.h"
     20#endif
     21
     22#if defined _XBOX
     23#   define _USE_MATH_DEFINES /* for M_PI */
     24#   include <xtl.h>
     25#   undef near /* Fuck Microsoft */
     26#   undef far /* Fuck Microsoft again */
     27#elif defined _WIN32
     28#   define _USE_MATH_DEFINES /* for M_PI */
     29#   define WIN32_LEAN_AND_MEAN
     30#   include <windows.h>
     31#   undef near /* Fuck Microsoft */
     32#   undef far /* Fuck Microsoft again */
    2033#endif
    2134
     
    348361}
    349362
    350 void EasyMesh::AppendSphere(int ndivisions, vec3 const &size)
     363void EasyMesh::AppendCapsule(int ndivisions, float h, float r)
    351364{
    352365    int ibase = m_indices.Count();
     
    354367    Array<vec3> vertices;
    355368
     369    /* Fill in the icosahedron vertices, rotating them so that there
     370     * is a vertex at [0 0 1] and [0 0 -1] after normalisation. */
    356371    float phi = 0.5f + 0.5f * sqrt(5.f);
     372    mat3 mat = mat3::rotate(asin(1.f / sqrt(2.f + phi)) * (180.f / M_PI),
     373                            vec3(1.f, 0.f, 0.f));
    357374    for (int i = 0; i < 4; i++)
    358375    {
    359376        float x = (i & 1) ? 0.5f : -0.5f;
    360377        float y = (i & 2) ? phi * 0.5f : phi * -0.5f;
    361         vertices << vec3(x, y, 0.f);
    362         vertices << vec3(0.f, x, y);
    363         vertices << vec3(y, 0.f, x);
     378        vertices << mat * vec3(x, y, 0.f);
     379        vertices << mat * vec3(0.f, x, y);
     380        vertices << mat * vec3(y, 0.f, x);
    364381    }
    365382
     
    376393    for (unsigned i = 0; i < sizeof(trilist) / sizeof(*trilist); i += 3)
    377394    {
    378         vec3 const &p0 = vertices[trilist[i]];
    379         vec3 const &p1 = vertices[trilist[i + 1]];
    380         vec3 const &p2 = vertices[trilist[i + 2]];
    381 
    382         vec3 const vx = 1.f / ndivisions * (p1 - p0);
    383         vec3 const vy = 1.f / ndivisions * (p2 - p0);
     395        vec3 const &a = vertices[trilist[i]];
     396        vec3 const &b = vertices[trilist[i + 1]];
     397        vec3 const &c = vertices[trilist[i + 2]];
     398
     399        vec3 const vb = 1.f / ndivisions * (b - a);
     400        vec3 const vc = 1.f / ndivisions * (c - a);
    384401
    385402        int line = ndivisions + 1;
     
    387404        for (int v = 0, x = 0, y = 0; x < ndivisions + 1; v++)
    388405        {
    389             vec3 p = p0 + x * vx + y * vy;
     406            vec3 p[] = { a + x * vb + y * vc,
     407                         p[0] + vb,
     408                         p[0] + vc,
     409                         p[0] + vb + vc };
     410
     411            /* FIXME: when we normalise here, we get a volume that is slightly
     412             * smaller than the sphere of radius 1, since we are not using
     413             * the midradius. */
     414            for (int k = 0; k < 4; k++)
     415                p[k] = normalize(p[k]) * r;
     416
     417            /* If this is a capsule, grow in the Z direction */
     418            if (h > 0.f)
     419            {
     420                for (int k = 0; k < 4; k++)
     421                    p[k].z += (p[k].z > 0.f) ? 0.5f * h : -0.5f * h;
     422            }
    390423
    391424            /* Add zero, one or two triangles */
    392425            if (y < line - 1)
    393426            {
    394                 AddVertex(normalize(p) * size);
    395                 AddVertex(normalize(p + vx) * size);
    396                 AddVertex(normalize(p + vy) * size);
     427                AddVertex(p[0]);
     428                AddVertex(p[1]);
     429                AddVertex(p[2]);
    397430                AppendTriangle(0, 2, 1, m_vert.Count() - 3);
    398431            }
     
    400433            if (y < line - 2)
    401434            {
    402                 AddVertex(normalize(p + vx) * size);
    403                 AddVertex(normalize(p + vx + vy) * size);
    404                 AddVertex(normalize(p + vy) * size);
     435                AddVertex(p[1]);
     436                AddVertex(p[3]);
     437                AddVertex(p[2]);
    405438                AppendTriangle(0, 2, 1, m_vert.Count() - 3);
    406439            }
     
    417450
    418451    ComputeNormals(ibase, m_indices.Count() - ibase);
     452}
     453
     454void EasyMesh::AppendSphere(int ndivisions, vec3 const &size)
     455{
     456    AppendCapsule(ndivisions, 0.f, size.x);
    419457}
    420458
  • trunk/src/easymesh/easymesh.h

    r1510 r1619  
    6767    void AppendCylinder(int nsides, float h, float r1, float r2,
    6868                        int dualside, int smooth);
     69    void AppendCapsule(int ndivisions, float h, float r);
    6970    void AppendSphere(int ndivisions, vec3 const &size);
    7071    void AppendBox(vec3 const &size, float chamf = 0.f);
  • trunk/src/generated/easymesh-parser.cpp

    r1510 r1619  
    680680/* Line 690 of lalr1.cc  */
    681681#line 150 "easymesh/easymesh-parser.y"
     682    { mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
     683    break;
     684
     685  case 42:
     686
     687/* Line 690 of lalr1.cc  */
     688#line 151 "easymesh/easymesh-parser.y"
    682689    { mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
    683690                                             (int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
    684691    break;
    685692
    686   case 42:
    687 
    688 /* Line 690 of lalr1.cc  */
    689 #line 152 "easymesh/easymesh-parser.y"
     693  case 43:
     694
     695/* Line 690 of lalr1.cc  */
     696#line 153 "easymesh/easymesh-parser.y"
    690697    { mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    691698                                                     (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
    692699    break;
    693700
    694   case 43:
    695 
    696 /* Line 690 of lalr1.cc  */
    697 #line 154 "easymesh/easymesh-parser.y"
     701  case 44:
     702
     703/* Line 690 of lalr1.cc  */
     704#line 155 "easymesh/easymesh-parser.y"
    698705    { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
    699706    break;
    700707
    701   case 44:
    702 
    703 /* Line 690 of lalr1.cc  */
    704 #line 155 "easymesh/easymesh-parser.y"
     708  case 45:
     709
     710/* Line 690 of lalr1.cc  */
     711#line 156 "easymesh/easymesh-parser.y"
    705712    { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    706713    break;
    707714
    708   case 45:
    709 
    710 /* Line 690 of lalr1.cc  */
    711 #line 156 "easymesh/easymesh-parser.y"
     715  case 46:
     716
     717/* Line 690 of lalr1.cc  */
     718#line 157 "easymesh/easymesh-parser.y"
    712719    { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    713720    break;
    714721
    715   case 46:
    716 
    717 /* Line 690 of lalr1.cc  */
    718 #line 157 "easymesh/easymesh-parser.y"
     722  case 47:
     723
     724/* Line 690 of lalr1.cc  */
     725#line 158 "easymesh/easymesh-parser.y"
    719726    { mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
    720727                                            (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6, (int)(yysemantic_stack_[(2) - (2)].args).f7); }
    721728    break;
    722729
    723   case 47:
    724 
    725 /* Line 690 of lalr1.cc  */
    726 #line 161 "easymesh/easymesh-parser.y"
     730  case 48:
     731
     732/* Line 690 of lalr1.cc  */
     733#line 162 "easymesh/easymesh-parser.y"
    727734    { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
    728735    break;
    729736
    730   case 48:
    731 
    732 /* Line 690 of lalr1.cc  */
    733 #line 162 "easymesh/easymesh-parser.y"
     737  case 49:
     738
     739/* Line 690 of lalr1.cc  */
     740#line 163 "easymesh/easymesh-parser.y"
    734741    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); }
    735742    break;
    736743
    737   case 49:
    738 
    739 /* Line 690 of lalr1.cc  */
    740 #line 163 "easymesh/easymesh-parser.y"
     744  case 50:
     745
     746/* Line 690 of lalr1.cc  */
     747#line 164 "easymesh/easymesh-parser.y"
    741748    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); }
    742749    break;
    743750
    744   case 50:
    745 
    746 /* Line 690 of lalr1.cc  */
    747 #line 164 "easymesh/easymesh-parser.y"
     751  case 51:
     752
     753/* Line 690 of lalr1.cc  */
     754#line 165 "easymesh/easymesh-parser.y"
    748755    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); }
    749756    break;
    750757
    751   case 51:
    752 
    753 /* Line 690 of lalr1.cc  */
    754 #line 165 "easymesh/easymesh-parser.y"
     758  case 52:
     759
     760/* Line 690 of lalr1.cc  */
     761#line 166 "easymesh/easymesh-parser.y"
    755762    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); }
    756763    break;
    757764
    758   case 52:
    759 
    760 /* Line 690 of lalr1.cc  */
    761 #line 166 "easymesh/easymesh-parser.y"
     765  case 53:
     766
     767/* Line 690 of lalr1.cc  */
     768#line 167 "easymesh/easymesh-parser.y"
    762769    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); }
    763770    break;
    764771
    765   case 53:
    766 
    767 /* Line 690 of lalr1.cc  */
    768 #line 167 "easymesh/easymesh-parser.y"
     772  case 54:
     773
     774/* Line 690 of lalr1.cc  */
     775#line 168 "easymesh/easymesh-parser.y"
    769776    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); }
    770777    break;
    771778
    772   case 54:
    773 
    774 /* Line 690 of lalr1.cc  */
    775 #line 168 "easymesh/easymesh-parser.y"
     779  case 55:
     780
     781/* Line 690 of lalr1.cc  */
     782#line 169 "easymesh/easymesh-parser.y"
    776783    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); }
    777784    break;
    778785
    779   case 55:
    780 
    781 /* Line 690 of lalr1.cc  */
    782 #line 171 "easymesh/easymesh-parser.y"
     786  case 56:
     787
     788/* Line 690 of lalr1.cc  */
     789#line 172 "easymesh/easymesh-parser.y"
    783790    { (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
    784791    break;
    785792
    786   case 56:
    787 
    788 /* Line 690 of lalr1.cc  */
    789 #line 172 "easymesh/easymesh-parser.y"
     793  case 57:
     794
     795/* Line 690 of lalr1.cc  */
     796#line 173 "easymesh/easymesh-parser.y"
    790797    { (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); }
    791798    break;
     
    794801
    795802/* Line 690 of lalr1.cc  */
    796 #line 797 "generated/easymesh-parser.cpp"
     803#line 804 "generated/easymesh-parser.cpp"
    797804        default:
    798805          break;
     
    10681075  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    10691076     STATE-NUM.  */
    1070   const signed char EasyMeshParser::yypact_ninf_ = -45;
     1077  const signed char EasyMeshParser::yypact_ninf_ = -46;
    10711078  const signed char
    10721079  EasyMeshParser::yypact_[] =
    10731080  {
    1074         34,   -29,    70,    -6,    -6,    -6,    -6,   -45,    -6,    -6,
    1075       -6,    -6,   -45,    -6,    -6,    -6,    -6,   -45,    -6,    -6,
    1076       -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    1077       -6,    -6,   -45,    12,    15,    34,    34,    69,   -45,   -45,
    1078      -45,   -45,   -45,   -45,    -6,    -6,    -6,    -6,   -45,   -45,
    1079      -45,   -45,   -45,   -45,   -45,   -45,   -45,   -45,   -45,   -45,
    1080      -45,   -45,   -45,   -45,   -45,   -45,   -45,    -6,    -6,   -45,
    1081      -45,   -45,   -45,   -45,   -45,   -45,   -45,   -45,   -45,    -6,
    1082       -6,   -45,   -45,   -45,   -45,   -21,   -45,   -45,   -45,   -45,
    1083      -45,   -45,   -45,   -45,   -45,   -45,   -45
     1081        35,   -30,    -7,    72,    72,    72,    72,   -46,    72,    72,
     1082      72,    72,   -46,    72,    72,    72,    72,   -46,    72,    72,
     1083      72,    72,    72,    72,    72,    72,    72,    72,    72,    72,
     1084      72,    72,    72,   -46,    12,    15,    35,    35,    71,   -46,
     1085     -46,   -46,   -46,   -46,   -46,    72,    72,    72,    72,   -46,
     1086     -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,
     1087     -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,    72,    72,
     1088     -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,
     1089     -46,    72,    72,   -46,   -46,   -46,   -46,   -22,   -46,   -46,
     1090     -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46,   -46
    10841091  };
    10851092
     
    10931100       0,     0,    34,     0,     0,     0,     0,    35,     0,     0,
    10941101       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1095        0,     0,     7,     0,     0,     3,     0,     5,     9,    11,
    1096       12,    13,    55,    15,     0,     0,     0,     0,    14,    47,
    1097       17,    16,    19,    23,    26,    29,    20,    24,    27,    30,
    1098       21,    25,    28,    31,    22,    32,    18,     0,     0,    36,
    1099       37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
    1100        0,    46,     1,     2,     4,     0,    10,    56,    48,    49,
    1101       50,    51,    52,    53,    54,     8,     6
     1102       0,     0,     0,     7,     0,     0,     3,     0,     5,     9,
     1103      11,    12,    13,    56,    15,     0,     0,     0,     0,    14,
     1104      48,    17,    16,    19,    23,    26,    29,    20,    24,    27,
     1105      30,    21,    25,    28,    31,    22,    32,    18,     0,     0,
     1106      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
     1107      46,     0,     0,    47,     1,     2,     4,     0,    10,    57,
     1108      49,    50,    51,    52,    53,    54,    55,     8,     6
    11021109  };
    11031110
     
    11061113  EasyMeshParser::yypgoto_[] =
    11071114  {
    1108        -45,   -45,    -4,   -45,   -45,   -45,   -45,   -17,   -45,   -45,
    1109      -45,     5,    39,    98,     3,     8,    -9,   -45,   -45,   -44
     1115       -46,   -46,    -2,   -46,   -46,   -46,   -46,   -18,   -46,   -46,
     1116     -46,     5,    40,   101,     3,    -5,     0,   -46,   -46,   -45
    11101117  };
    11111118
     
    11141121  EasyMeshParser::yydefgoto_[] =
    11151122  {
    1116         -1,    33,    34,    35,    36,    96,    37,    38,    39,    40,
    1117       41,    45,    46,    47,    67,    68,    69,    80,    81,    49
     1123        -1,    34,    35,    36,    37,    98,    38,    39,    40,    41,
     1124      42,    46,    47,    48,    68,    69,    70,    82,    83,    50
    11181125  };
    11191126
     
    11251132  EasyMeshParser::yytable_[] =
    11261133  {
    1127         87,    88,    89,    90,    48,    51,    42,    43,    52,    53,
    1128       44,    55,    82,    56,    57,    83,    59,    95,    60,    61,
    1129       86,    63,    79,    91,    92,    66,    71,    72,    73,    42,
    1130       75,    84,    85,    44,    74,    93,    94,     1,     2,     3,
    1131        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    1132       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1133       24,    25,    26,    27,    28,    29,    30,    31,    77,    78,
    1134        0,    32,     1,     2,     3,     4,     5,     6,     7,     8,
    1135        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    1136       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    1137       29,    30,    31,    54,     0,    42,    50,     0,    58,    44,
    1138        0,     0,     0,    62,     0,     0,    64,    65,     0,     0,
    1139       70,     0,     0,     0,     0,     0,    76
     1134        89,    90,    91,    92,    49,    52,    43,    44,    53,    54,
     1135      45,    56,    84,    57,    58,    85,    60,    97,    61,    62,
     1136      88,    64,    76,    93,    94,    67,    72,    73,    74,    43,
     1137      51,    77,    81,    45,    86,    87,    95,    96,     1,     2,
     1138       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     1139      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     1140      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     1141      79,    80,     0,    33,     1,     2,     3,     4,     5,     6,
     1142       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     1143      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     1144      27,    28,    29,    30,    31,    32,    55,     0,    43,     0,
     1145       0,    59,    45,     0,     0,     0,    63,     0,     0,    65,
     1146      66,     0,     0,    71,     0,     0,     0,    75,     0,     0,
     1147      78
    11401148  };
    11411149
     
    11441152  EasyMeshParser::yycheck_[] =
    11451153  {
    1146         44,    45,    46,    47,     1,     2,    35,    36,     3,     4,
    1147       39,     6,     0,     8,     9,     0,    11,    38,    13,    14,
    1148       37,    16,    31,    67,    68,    20,    23,    24,    25,    35,
    1149       27,    35,    36,    39,    26,    79,    80,     3,     4,     5,
    1150        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    1151       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    1152       26,    27,    28,    29,    30,    31,    32,    33,    29,    30,
    1153       -1,    37,     3,     4,     5,     6,     7,     8,     9,    10,
    1154       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    1155       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    1156       31,    32,    33,     5,    -1,    35,    36,    -1,    10,    39,
    1157       -1,    -1,    -1,    15,    -1,    -1,    18,    19,    -1,    -1,
    1158       22,    -1,    -1,    -1,    -1,    -1,    28
     1154        45,    46,    47,    48,     1,     2,    36,    37,     3,     4,
     1155      40,     6,     0,     8,     9,     0,    11,    39,    13,    14,
     1156      38,    16,    27,    68,    69,    20,    23,    24,    25,    36,
     1157      37,    28,    32,    40,    36,    37,    81,    82,     3,     4,
     1158       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     1159      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     1160      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     1161      30,    31,    -1,    38,     3,     4,     5,     6,     7,     8,
     1162       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     1163      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     1164      29,    30,    31,    32,    33,    34,     5,    -1,    36,    -1,
     1165      -1,    10,    40,    -1,    -1,    -1,    15,    -1,    -1,    18,
     1166      19,    -1,    -1,    22,    -1,    -1,    -1,    26,    -1,    -1,
     1167      29
    11591168  };
    11601169
     
    11671176      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    11681177      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    1169       32,    33,    37,    41,    42,    43,    44,    46,    47,    48,
    1170       49,    50,    35,    36,    39,    51,    52,    53,    54,    59,
    1171       36,    54,    51,    51,    53,    51,    51,    51,    53,    51,
    1172       51,    51,    53,    51,    53,    53,    51,    54,    55,    56,
    1173       53,    54,    54,    54,    55,    54,    53,    52,    52,    56,
    1174       57,    58,     0,     0,    42,    42,    47,    59,    59,    59,
    1175       59,    59,    59,    59,    59,    38,    45
     1178      32,    33,    34,    38,    42,    43,    44,    45,    47,    48,
     1179      49,    50,    51,    36,    37,    40,    52,    53,    54,    55,
     1180      60,    37,    55,    52,    52,    54,    52,    52,    52,    54,
     1181      52,    52,    52,    54,    52,    54,    54,    52,    55,    56,
     1182      57,    54,    55,    55,    55,    54,    56,    55,    54,    53,
     1183      53,    57,    58,    59,     0,     0,    43,    43,    48,    60,
     1184      60,    60,    60,    60,    60,    60,    60,    39,    46
    11761185  };
    11771186
     
    11851194     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    11861195     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    1187      285,   286,   287,   288,   289,   290,   291,    91,    93,    45
     1196     285,   286,   287,   288,   289,   290,   291,   292,    91,    93,
     1197      45
    11881198  };
    11891199#endif
     
    11931203  EasyMeshParser::yyr1_[] =
    11941204  {
    1195          0,    40,    41,    42,    42,    43,    43,    44,    45,    46,
    1196       46,    47,    47,    47,    48,    48,    48,    48,    49,    49,
    1197       49,    49,    49,    49,    49,    49,    49,    49,    49,    49,
    1198       49,    49,    49,    49,    49,    49,    50,    50,    50,    50,
    1199       50,    50,    50,    50,    50,    50,    50,    51,    52,    53,
    1200       54,    55,    56,    57,    58,    59,    59
     1205         0,    41,    42,    43,    43,    44,    44,    45,    46,    47,
     1206      47,    48,    48,    48,    49,    49,    49,    49,    50,    50,
     1207      50,    50,    50,    50,    50,    50,    50,    50,    50,    50,
     1208      50,    50,    50,    50,    50,    50,    51,    51,    51,    51,
     1209      51,    51,    51,    51,    51,    51,    51,    51,    52,    53,
     1210      54,    55,    56,    57,    58,    59,    60,    60
    12011211  };
    12021212
     
    12091219       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    12101220       2,     2,     2,     1,     1,     1,     2,     2,     2,     2,
    1211        2,     2,     2,     2,     2,     2,     2,     1,     2,     2,
    1212        2,     2,     2,     2,     2,     1,     2
     1221       2,     2,     2,     2,     2,     2,     2,     2,     1,     2,
     1222       2,     2,     2,     2,     2,     2,     1,     2
    12131223  };
    12141224
     
    12241234  "T_ROTATEZ", "T_TAPERZ", "T_SCALEZ", "T_MIRRORZ", "T_TRANSLATE",
    12251235  "T_SCALE", "T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX",
    1226   "T_FLATCHAMFBOX", "T_SPHERE", "T_STAR", "T_EXPANDEDSTAR", "T_DISC",
    1227   "T_TRIANGLE", "T_QUAD", "T_COG", "T_ERROR", "NUMBER", "COLOR", "'['",
    1228   "']'", "'-'", "$accept", "mesh_description", "mesh_expression_list",
    1229   "mesh_expression", "mesh_open", "mesh_close", "mesh_command_list",
    1230   "mesh_command", "color_command", "transform_command",
    1231   "primitive_command", "args1", "args2", "args3", "args4", "args5",
    1232   "args6", "args7", "args8", "number", 0
     1236  "T_FLATCHAMFBOX", "T_SPHERE", "T_CAPSULE", "T_STAR", "T_EXPANDEDSTAR",
     1237  "T_DISC", "T_TRIANGLE", "T_QUAD", "T_COG", "T_ERROR", "NUMBER", "COLOR",
     1238  "'['", "']'", "'-'", "$accept", "mesh_description",
     1239  "mesh_expression_list", "mesh_expression", "mesh_open", "mesh_close",
     1240  "mesh_command_list", "mesh_command", "color_command",
     1241  "transform_command", "primitive_command", "args1", "args2", "args3",
     1242  "args4", "args5", "args6", "args7", "args8", "number", 0
    12331243  };
    12341244#endif
     
    12391249  EasyMeshParser::yyrhs_[] =
    12401250  {
    1241         41,     0,    -1,    42,     0,    -1,    43,    -1,    43,    42,
    1242       -1,    46,    -1,    44,    42,    45,    -1,    37,    -1,    38,
    1243       -1,    47,    -1,    46,    47,    -1,    48,    -1,    49,    -1,
    1244       50,    -1,     3,    54,    -1,     3,    36,    -1,     4,    54,
    1245       -1,     4,    36,    -1,    22,    51,    -1,     5,    51,    -1,
    1246       10,    51,    -1,    15,    51,    -1,    20,    53,    -1,     6,
    1247       51,    -1,    11,    51,    -1,    16,    51,    -1,     7,    53,
    1248       -1,    12,    53,    -1,    17,    53,    -1,     8,    51,    -1,
    1249       13,    51,    -1,    18,    51,    -1,    21,    53,    -1,     9,
    1250       -1,    14,    -1,    19,    -1,    23,    56,    -1,    24,    53,
    1251       -1,    25,    54,    -1,    26,    54,    -1,    27,    54,    -1,
    1252       28,    55,    -1,    29,    54,    -1,    30,    53,    -1,    31,
    1253       52,    -1,    32,    52,    -1,    33,    58,    -1,    59,    -1,
    1254       51,    59,    -1,    52,    59,    -1,    53,    59,    -1,    54,
    1255       59,    -1,    55,    59,    -1,    56,    59,    -1,    57,    59,
    1256       -1,    35,    -1,    39,    59,    -1
     1251        42,     0,    -1,    43,     0,    -1,    44,    -1,    44,    43,
     1252      -1,    47,    -1,    45,    43,    46,    -1,    38,    -1,    39,
     1253      -1,    48,    -1,    47,    48,    -1,    49,    -1,    50,    -1,
     1254      51,    -1,     3,    55,    -1,     3,    37,    -1,     4,    55,
     1255      -1,     4,    37,    -1,    22,    52,    -1,     5,    52,    -1,
     1256      10,    52,    -1,    15,    52,    -1,    20,    54,    -1,     6,
     1257      52,    -1,    11,    52,    -1,    16,    52,    -1,     7,    54,
     1258      -1,    12,    54,    -1,    17,    54,    -1,     8,    52,    -1,
     1259      13,    52,    -1,    18,    52,    -1,    21,    54,    -1,     9,
     1260      -1,    14,    -1,    19,    -1,    23,    57,    -1,    24,    54,
     1261      -1,    25,    55,    -1,    26,    55,    -1,    27,    55,    -1,
     1262      28,    54,    -1,    29,    56,    -1,    30,    55,    -1,    31,
     1263      54,    -1,    32,    53,    -1,    33,    53,    -1,    34,    59,
     1264      -1,    60,    -1,    52,    60,    -1,    53,    60,    -1,    54,
     1265      60,    -1,    55,    60,    -1,    56,    60,    -1,    57,    60,
     1266      -1,    58,    60,    -1,    36,    -1,    40,    60,    -1
    12571267  };
    12581268
     
    12661276      50,    53,    56,    59,    62,    65,    68,    71,    74,    77,
    12671277      80,    83,    86,    89,    91,    93,    95,    98,   101,   104,
    1268      107,   110,   113,   116,   119,   122,   125,   128,   130,   133,
    1269      136,   139,   142,   145,   148,   151,   153
     1278     107,   110,   113,   116,   119,   122,   125,   128,   131,   133,
     1279     136,   139,   142,   145,   148,   151,   154,   156
    12701280  };
    12711281
     
    12781288     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
    12791289     131,   132,   133,   134,   135,   136,   140,   143,   144,   146,
    1280      148,   150,   152,   154,   155,   156,   157,   161,   162,   163,
    1281      164,   165,   166,   167,   168,   171,   172
     1290     148,   150,   151,   153,   155,   156,   157,   158,   162,   163,
     1291     164,   165,   166,   167,   168,   169,   172,   173
    12821292  };
    12831293
     
    13231333       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    13241334       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1325        2,     2,     2,     2,     2,    39,     2,     2,     2,     2,
    1326        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1327        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1328        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1329        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1330        2,    37,     2,    38,     2,     2,     2,     2,     2,     2,
     1335       2,     2,     2,     2,     2,    40,     2,     2,     2,     2,
     1336       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1337       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1338       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1339       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1340       2,    38,     2,    39,     2,     2,     2,     2,     2,     2,
    13311341       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    13321342       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    13481358      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    13491359      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    1350       35,    36
     1360      35,    36,    37
    13511361    };
    13521362    if ((unsigned int) t <= yyuser_token_number_max_)
     
    13571367
    13581368  const int EasyMeshParser::yyeof_ = 0;
    1359   const int EasyMeshParser::yylast_ = 126;
     1369  const int EasyMeshParser::yylast_ = 130;
    13601370  const int EasyMeshParser::yynnts_ = 20;
    13611371  const int EasyMeshParser::yyempty_ = -2;
    1362   const int EasyMeshParser::yyfinal_ = 82;
     1372  const int EasyMeshParser::yyfinal_ = 84;
    13631373  const int EasyMeshParser::yyterror_ = 1;
    13641374  const int EasyMeshParser::yyerrcode_ = 256;
    1365   const int EasyMeshParser::yyntokens_ = 40;
    1366 
    1367   const unsigned int EasyMeshParser::yyuser_token_number_max_ = 291;
     1375  const int EasyMeshParser::yyntokens_ = 41;
     1376
     1377  const unsigned int EasyMeshParser::yyuser_token_number_max_ = 292;
    13681378  const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2;
    13691379
     
    13721382
    13731383/* Line 1136 of lalr1.cc  */
    1374 #line 1375 "generated/easymesh-parser.cpp"
     1384#line 1385 "generated/easymesh-parser.cpp"
    13751385
    13761386
    13771387/* Line 1138 of lalr1.cc  */
    1378 #line 175 "easymesh/easymesh-parser.y"
     1388#line 176 "easymesh/easymesh-parser.y"
    13791389
    13801390
  • trunk/src/generated/easymesh-parser.h

    r1510 r1619  
    125125     T_FLATCHAMFBOX = 281,
    126126     T_SPHERE = 282,
    127      T_STAR = 283,
    128      T_EXPANDEDSTAR = 284,
    129      T_DISC = 285,
    130      T_TRIANGLE = 286,
    131      T_QUAD = 287,
    132      T_COG = 288,
    133      T_ERROR = 289,
    134      NUMBER = 290,
    135      COLOR = 291
     127     T_CAPSULE = 283,
     128     T_STAR = 284,
     129     T_EXPANDEDSTAR = 285,
     130     T_DISC = 286,
     131     T_TRIANGLE = 287,
     132     T_QUAD = 288,
     133     T_COG = 289,
     134     T_ERROR = 290,
     135     NUMBER = 291,
     136     COLOR = 292
    136137   };
    137138
     
    313314
    314315/* Line 35 of lalr1.cc  */
    315 #line 316 "generated/easymesh-parser.h"
     316#line 317 "generated/easymesh-parser.h"
    316317
    317318
  • trunk/src/generated/easymesh-scanner.cpp

    r1512 r1619  
    331331        (yy_c_buf_p) = yy_cp;
    332332
    333 #define YY_NUM_RULES 43
    334 #define YY_END_OF_BUFFER 44
     333#define YY_NUM_RULES 44
     334#define YY_END_OF_BUFFER 45
    335335/* This struct is not used in this scanner,
    336336   but its presence is necessary. */
     
    340340        flex_int32_t yy_nxt;
    341341        };
    342 static yyconst flex_int16_t yy_accept[70] =
     342static yyconst flex_int16_t yy_accept[72] =
    343343    {   0,
    344         0,    0,   44,   42,   41,   40,   42,   42,   37,   42,
    345        36,   38,   39,   42,   42,   42,   42,   17,    7,    0,
    346         0,   36,   36,    0,   22,   21,   28,    0,    0,   30,
    347        26,   29,    3,   18,   19,   20,    8,    9,   10,    1,
    348        14,   15,   16,    0,    4,    5,    6,    0,    0,   36,
    349        31,   27,    0,    0,    0,    2,   11,   12,   13,   32,
    350        24,   23,   25,   33,    0,   34,    0,   35,    0
     344        0,    0,   45,   43,   42,   41,   43,   43,   38,   43,
     345       37,   39,   40,   43,   43,   43,   43,   17,    7,    0,
     346        0,   37,   37,    0,   22,   21,   29,    0,    0,   31,
     347       27,   30,    3,   18,   19,   20,    8,    9,   10,    1,
     348       14,   15,   16,    0,    4,    5,    6,    0,    0,   37,
     349        0,   32,   28,    0,    0,    0,    2,   11,   12,   13,
     350       33,   25,   24,   23,   26,   34,    0,   35,    0,   36,
     351        0
    351352    } ;
    352353
     
    390391    } ;
    391392
    392 static yyconst flex_int16_t yy_base[78] =
     393static yyconst flex_int16_t yy_base[80] =
    393394    {   0,
    394         0,    0,   94,   95,   95,   95,    0,   22,   24,   85,
    395        26,   95,   95,   30,   73,   10,   13,   34,   37,    0,
    396        83,   50,   59,   45,   95,   72,   95,   65,   74,   95,
    397        55,   95,   95,   95,   95,   95,   95,   95,   95,   74,
    398        95,   95,   95,   44,   95,   95,   95,    0,   78,   77,
    399        95,   95,   71,   70,   63,   95,   95,   95,   95,    0,
    400        95,   95,   95,    0,    0,    0,    0,   95,   95,   79,
    401        78,   77,   76,   75,   72,   71,   54
     395        0,    0,   96,   97,   97,   97,    0,   22,   24,   87,
     396       26,   97,   97,   30,   75,   10,   13,   34,   37,    0,
     397       85,   50,   59,   45,   97,   58,   97,   68,   77,   97,
     398       57,   97,   97,   97,   97,   97,   97,   97,   97,   77,
     399       97,   97,   97,   46,   97,   97,   97,    0,   81,   80,
     400       66,   97,   97,   73,   72,   65,   97,   97,   97,   97,
     401        0,   97,   97,   97,   97,    0,    0,    0,    0,   97,
     402       97,   81,   80,   79,   78,   77,   75,   67,   54
    402403    } ;
    403404
    404 static yyconst flex_int16_t yy_def[78] =
     405static yyconst flex_int16_t yy_def[80] =
    405406    {   0,
    406        69,    1,   69,   69,   69,   69,   70,   69,   69,   69,
    407        69,   69,   69,   69,   69,   69,   69,   69,   69,   71,
    408        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    409        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    410        69,   69,   69,   69,   69,   69,   69,   72,   69,   69,
    411        69,   69,   69,   69,   69,   69,   69,   69,   69,   73,
    412        69,   69,   69,   74,   75,   76,   77,   69,    0,   69,
    413        69,   69,   69,   69,   69,   69,   69
     407       71,    1,   71,   71,   71,   71,   72,   71,   71,   71,
     408       71,   71,   71,   71,   71,   71,   71,   71,   71,   73,
     409       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     410       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     411       71,   71,   71,   71,   71,   71,   71,   74,   71,   71,
     412       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     413       75,   71,   71,   71,   71,   76,   77,   78,   79,   71,
     414        0,   71,   71,   71,   71,   71,   71,   71,   71
    414415    } ;
    415416
    416 static yyconst flex_int16_t yy_nxt[124] =
     417static yyconst flex_int16_t yy_nxt[126] =
    417418    {   0,
    418419        4,    5,    6,    7,    8,    9,   10,   11,    4,   12,
     
    421422       21,   22,   21,   22,   24,   34,   35,   36,   37,   38,
    422423       39,   24,   25,   26,   27,   28,   29,   40,   44,   49,
    423        49,   30,   50,   31,   32,   68,   21,   22,   24,   41,
    424        42,   43,   45,   46,   47,   24,   23,   24,   54,   57,
    425        58,   59,   67,   66,   24,   55,   65,   64,   60,   48,
    426        20,   63,   62,   61,   50,   50,   56,   53,   52,   51,
    427        23,   33,   23,   69,    3,   69,   69,   69,   69,   69,
    428 
    429        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    430        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    431        69,   69,   69
     424       49,   30,   50,   31,   32,   70,   21,   22,   24,   41,
     425       42,   43,   45,   46,   47,   24,   23,   24,   69,   51,
     426       55,   58,   59,   60,   24,   52,   68,   56,   67,   66,
     427       61,   48,   20,   65,   64,   63,   62,   50,   50,   57,
     428       54,   53,   23,   33,   23,   71,    3,   71,   71,   71,
     429
     430       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     431       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     432       71,   71,   71,   71,   71
    432433    } ;
    433434
    434 static yyconst flex_int16_t yy_chk[124] =
     435static yyconst flex_int16_t yy_chk[126] =
    435436    {   0,
    436437        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    439440        9,    9,   11,   11,   11,   16,   16,   16,   17,   17,
    440441       17,   11,   14,   14,   14,   14,   14,   18,   19,   24,
    441        24,   14,   24,   14,   14,   77,   22,   22,   22,   18,
    442        18,   18,   19,   19,   19,   22,   23,   23,   31,   44,
    443        44,   44,   76,   75,   23,   31,   74,   73,   72,   71,
    444        70,   55,   54,   53,   50,   49,   40,   29,   28,   26,
    445        21,   15,   10,    3,   69,   69,   69,   69,   69,   69,
    446 
    447        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    448        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    449        69,   69,   69
     442       24,   14,   24,   14,   14,   79,   22,   22,   22,   18,
     443       18,   18,   19,   19,   19,   22,   23,   23,   78,   26,
     444       31,   44,   44,   44,   23,   26,   77,   31,   76,   75,
     445       74,   73,   72,   56,   55,   54,   51,   50,   49,   40,
     446       29,   28,   21,   15,   10,    3,   71,   71,   71,   71,
     447
     448       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     449       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     450       71,   71,   71,   71,   71
    450451    } ;
    451452
     
    496497#define YY_NO_UNISTD_H
    497498#define YY_USER_ACTION yylloc->columns(yyleng);
    498 #line 499 "generated/easymesh-scanner.cpp"
     499#line 500 "generated/easymesh-scanner.cpp"
    499500
    500501#define INITIAL 0
     
    609610
    610611
    611 #line 612 "generated/easymesh-scanner.cpp"
     612#line 613 "generated/easymesh-scanner.cpp"
    612613
    613614        if ( !(yy_init) )
     
    662663                                {
    663664                                yy_current_state = (int) yy_def[yy_current_state];
    664                                 if ( yy_current_state >= 70 )
     665                                if ( yy_current_state >= 72 )
    665666                                        yy_c = yy_meta[(unsigned int) yy_c];
    666667                                }
     
    668669                        ++yy_cp;
    669670                        }
    670                 while ( yy_current_state != 69 );
     671                while ( yy_current_state != 71 );
    671672                yy_cp = (yy_last_accepting_cpos);
    672673                yy_current_state = (yy_last_accepting_state);
     
    811812YY_RULE_SETUP
    812813#line 77 "easymesh/easymesh-scanner.l"
     814{ return token::T_CAPSULE; }
     815        YY_BREAK
     816case 26:
     817YY_RULE_SETUP
     818#line 78 "easymesh/easymesh-scanner.l"
    813819{ return token::T_SPHERE; }
    814820        YY_BREAK
    815 case 26:
    816 YY_RULE_SETUP
    817 #line 78 "easymesh/easymesh-scanner.l"
     821case 27:
     822YY_RULE_SETUP
     823#line 79 "easymesh/easymesh-scanner.l"
    818824{ return token::T_STAR; }
    819825        YY_BREAK
    820 case 27:
    821 YY_RULE_SETUP
    822 #line 79 "easymesh/easymesh-scanner.l"
     826case 28:
     827YY_RULE_SETUP
     828#line 80 "easymesh/easymesh-scanner.l"
    823829{ return token::T_EXPANDEDSTAR; }
    824830        YY_BREAK
    825 case 28:
    826 YY_RULE_SETUP
    827 #line 80 "easymesh/easymesh-scanner.l"
     831case 29:
     832YY_RULE_SETUP
     833#line 81 "easymesh/easymesh-scanner.l"
    828834{ return token::T_DISC; }
    829835        YY_BREAK
    830 case 29:
    831 YY_RULE_SETUP
    832 #line 81 "easymesh/easymesh-scanner.l"
     836case 30:
     837YY_RULE_SETUP
     838#line 82 "easymesh/easymesh-scanner.l"
    833839{ return token::T_TRIANGLE; }
    834840        YY_BREAK
    835 case 30:
    836 YY_RULE_SETUP
    837 #line 82 "easymesh/easymesh-scanner.l"
     841case 31:
     842YY_RULE_SETUP
     843#line 83 "easymesh/easymesh-scanner.l"
    838844{ return token::T_QUAD; }
    839845        YY_BREAK
    840 case 31:
    841 YY_RULE_SETUP
    842 #line 83 "easymesh/easymesh-scanner.l"
     846case 32:
     847YY_RULE_SETUP
     848#line 84 "easymesh/easymesh-scanner.l"
    843849{ return token::T_COG; }
    844850        YY_BREAK
    845 case 32:
    846 YY_RULE_SETUP
    847 #line 85 "easymesh/easymesh-scanner.l"
     851case 33:
     852YY_RULE_SETUP
     853#line 86 "easymesh/easymesh-scanner.l"
    848854{
    849855        uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
     
    854860        return token::COLOR; }
    855861        YY_BREAK
    856 case 33:
    857 YY_RULE_SETUP
    858 #line 92 "easymesh/easymesh-scanner.l"
     862case 34:
     863YY_RULE_SETUP
     864#line 93 "easymesh/easymesh-scanner.l"
    859865{
    860866        uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
     
    865871        return token::COLOR; }
    866872        YY_BREAK
    867 case 34:
    868 YY_RULE_SETUP
    869 #line 99 "easymesh/easymesh-scanner.l"
     873case 35:
     874YY_RULE_SETUP
     875#line 100 "easymesh/easymesh-scanner.l"
    870876{
    871877        yylval->u32val = 0xffu
     
    873879        return token::COLOR; }
    874880        YY_BREAK
    875 case 35:
    876 YY_RULE_SETUP
    877 #line 103 "easymesh/easymesh-scanner.l"
     881case 36:
     882YY_RULE_SETUP
     883#line 104 "easymesh/easymesh-scanner.l"
    878884{
    879885        yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16);
    880886        return token::COLOR; }
    881887        YY_BREAK
    882 case 36:
    883 YY_RULE_SETUP
    884 #line 106 "easymesh/easymesh-scanner.l"
     888case 37:
     889YY_RULE_SETUP
     890#line 107 "easymesh/easymesh-scanner.l"
    885891{
    886892        yylval->fval = std::atof(yytext); return token::NUMBER; }
    887893        YY_BREAK
    888 case 37:
    889 YY_RULE_SETUP
    890 #line 108 "easymesh/easymesh-scanner.l"
     894case 38:
     895YY_RULE_SETUP
     896#line 109 "easymesh/easymesh-scanner.l"
    891897{ return token_type('-'); }
    892898        YY_BREAK
    893 case 38:
    894 YY_RULE_SETUP
    895 #line 109 "easymesh/easymesh-scanner.l"
     899case 39:
     900YY_RULE_SETUP
     901#line 110 "easymesh/easymesh-scanner.l"
    896902{ return token_type('['); }
    897903        YY_BREAK
    898 case 39:
    899 YY_RULE_SETUP
    900 #line 110 "easymesh/easymesh-scanner.l"
     904case 40:
     905YY_RULE_SETUP
     906#line 111 "easymesh/easymesh-scanner.l"
    901907{ return token_type(']'); }
    902908        YY_BREAK
    903 case 40:
    904 YY_RULE_SETUP
    905 #line 111 "easymesh/easymesh-scanner.l"
    906 { /* ignore this */ }
    907         YY_BREAK
    908909case 41:
    909 /* rule 41 can match eol */
    910910YY_RULE_SETUP
    911911#line 112 "easymesh/easymesh-scanner.l"
     
    913913        YY_BREAK
    914914case 42:
     915/* rule 42 can match eol */
    915916YY_RULE_SETUP
    916917#line 113 "easymesh/easymesh-scanner.l"
     918{ /* ignore this */ }
     919        YY_BREAK
     920case 43:
     921YY_RULE_SETUP
     922#line 114 "easymesh/easymesh-scanner.l"
    917923{ return token::T_ERROR; }
    918924        YY_BREAK
    919 case 43:
    920 YY_RULE_SETUP
    921 #line 115 "easymesh/easymesh-scanner.l"
     925case 44:
     926YY_RULE_SETUP
     927#line 116 "easymesh/easymesh-scanner.l"
    922928ECHO;
    923929        YY_BREAK
    924 #line 925 "generated/easymesh-scanner.cpp"
     930#line 931 "generated/easymesh-scanner.cpp"
    925931case YY_STATE_EOF(INITIAL):
    926932        yyterminate();
     
    13041310                        {
    13051311                        yy_current_state = (int) yy_def[yy_current_state];
    1306                         if ( yy_current_state >= 70 )
     1312                        if ( yy_current_state >= 72 )
    13071313                                yy_c = yy_meta[(unsigned int) yy_c];
    13081314                        }
     
    13321338                {
    13331339                yy_current_state = (int) yy_def[yy_current_state];
    1334                 if ( yy_current_state >= 70 )
     1340                if ( yy_current_state >= 72 )
    13351341                        yy_c = yy_meta[(unsigned int) yy_c];
    13361342                }
    13371343        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    1338         yy_is_jam = (yy_current_state == 69);
     1344        yy_is_jam = (yy_current_state == 71);
    13391345
    13401346        return yy_is_jam ? 0 : yy_current_state;
     
    18231829#define YYTABLES_NAME "yytables"
    18241830
    1825 #line 115 "easymesh/easymesh-scanner.l"
     1831#line 116 "easymesh/easymesh-scanner.l"
    18261832
    18271833
  • trunk/tutorial/05_easymesh.cpp

    r1598 r1619  
    2828    {
    2929        m_angle = 0;
    30         m_mesh.Compile("sc#e94 scb#964 [acg10 5 8 8 2 2 0.1 0]");
     30        m_mesh.Compile("sc#e94 scb#964 [acap11 6 6 tx8]");
     31        m_mesh.Compile("sc#94e scb#649 [acap3 6 6 tx-8]");
    3132
    3233        m_camera = new Camera(vec3(0.f, 600.f, 0.f),
Note: See TracChangeset for help on using the changeset viewer.