Changeset 1875
- Timestamp:
- Sep 4, 2012, 2:08:19 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/easymesh/easymesh-parser.y
r1835 r1875 52 52 53 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 54 %token T_STAR T_EXPANDEDSTAR T_DISC T_TRIANGLE T_QUAD T_COG T_TORUS 55 55 56 56 %token T_END 0 … … 149 149 vec3($2.f1, $2.f2, $2.f3)); } 150 150 | T_CAPSULE args3 { mc.m_mesh.AppendCapsule($2.f0, $2.f1, $2.f2); } 151 | T_TORUS args3 { mc.m_mesh.AppendTorus((int)$2.f0, $2.f1, $2.f2); } 151 152 | T_STAR args5 { mc.m_mesh.AppendStar((int)$2.f0, $2.f1, $2.f2, 152 153 (int)$2.f3, (int)$2.f4); } -
trunk/src/easymesh/easymesh-scanner.l
r1808 r1875 77 77 acap { return token::T_CAPSULE; } 78 78 asph { return token::T_SPHERE; } 79 at { return token::T_TORUS; } 79 80 as { return token::T_STAR; } 80 81 aes { return token::T_EXPANDEDSTAR; } -
trunk/src/easymesh/easymesh.cpp
r1793 r1875 509 509 } 510 510 511 void EasyMesh::AppendTorus(int ndivisions, float r1, float r2) 512 { 513 int ibase = m_indices.Count(); 514 515 for (int j = 0; j < ndivisions; j++) 516 for (int i = 0; i < ndivisions; i++) 517 { 518 for (int di = 0; di < 2; di++) 519 for (int dj = 0; dj < 2; dj++) 520 { 521 int i2 = (i + di) % ndivisions; 522 int j2 = (j + dj) % ndivisions; 523 float x = 0.5f * (r1 + r2) + 0.5 * (r2 - r1) * lol::cos(2.0 * M_PI * i2 / ndivisions); 524 float y = 0.5f * (r2 - r1) * lol::sin(2.0 * M_PI * i2 / ndivisions); 525 float z = 0.0f; 526 527 float ca = lol::cos(2.0 * M_PI * j2 / ndivisions); 528 float sa = lol::sin(2.0 * M_PI * j2 / ndivisions); 529 float x2 = x * ca - z * sa; 530 float z2 = z * ca + x * sa; 531 532 AddVertex(vec3(x2, y, z2)); 533 } 534 535 AppendTriangle(0, 2, 3, m_vert.Count() - 4); 536 AppendTriangle(0, 3, 1, m_vert.Count() - 4); 537 } 538 539 ComputeNormals(ibase, m_indices.Count() - ibase); 540 } 541 511 542 void EasyMesh::AppendBox(vec3 const &size, float chamf) 512 543 { -
trunk/src/easymesh/easymesh.h
r1784 r1875 74 74 void AppendCapsule(int ndivisions, float h, float r); 75 75 void AppendSphere(int ndivisions, vec3 const &size); 76 void AppendTorus(int ndivisions, float r1, float r2); 76 77 void AppendBox(vec3 const &size, float chamf = 0.f); 77 78 void AppendSmoothChamfBox(vec3 const &size, float chamf); -
trunk/src/generated/easymesh-parser.cpp
r1835 r1875 687 687 /* Line 690 of lalr1.cc */ 688 688 #line 151 "easymesh/easymesh-parser.y" 689 { mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); } 690 break; 691 692 case 43: 693 694 /* Line 690 of lalr1.cc */ 695 #line 152 "easymesh/easymesh-parser.y" 689 696 { mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, 690 697 (int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); } 691 698 break; 692 699 693 case 4 3:694 695 /* Line 690 of lalr1.cc */ 696 #line 15 3"easymesh/easymesh-parser.y"700 case 44: 701 702 /* Line 690 of lalr1.cc */ 703 #line 154 "easymesh/easymesh-parser.y" 697 704 { mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, 698 705 (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); } 699 706 break; 700 707 701 case 4 4:702 703 /* Line 690 of lalr1.cc */ 704 #line 15 5"easymesh/easymesh-parser.y"708 case 45: 709 710 /* Line 690 of lalr1.cc */ 711 #line 156 "easymesh/easymesh-parser.y" 705 712 { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); } 706 713 break; 707 714 708 case 4 5:709 710 /* Line 690 of lalr1.cc */ 711 #line 15 6"easymesh/easymesh-parser.y"715 case 46: 716 717 /* Line 690 of lalr1.cc */ 718 #line 157 "easymesh/easymesh-parser.y" 712 719 { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); } 713 720 break; 714 721 715 case 4 6:716 717 /* Line 690 of lalr1.cc */ 718 #line 15 7"easymesh/easymesh-parser.y"722 case 47: 723 724 /* Line 690 of lalr1.cc */ 725 #line 158 "easymesh/easymesh-parser.y" 719 726 { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); } 720 727 break; 721 728 722 case 4 7:723 724 /* Line 690 of lalr1.cc */ 725 #line 15 8"easymesh/easymesh-parser.y"729 case 48: 730 731 /* Line 690 of lalr1.cc */ 732 #line 159 "easymesh/easymesh-parser.y" 726 733 { 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, 727 734 (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); } 728 735 break; 729 736 730 case 4 8:731 732 /* Line 690 of lalr1.cc */ 733 #line 16 2"easymesh/easymesh-parser.y"737 case 49: 738 739 /* Line 690 of lalr1.cc */ 740 #line 163 "easymesh/easymesh-parser.y" 734 741 { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); } 735 742 break; 736 743 737 case 49:738 739 /* Line 690 of lalr1.cc */ 740 #line 16 3"easymesh/easymesh-parser.y"744 case 50: 745 746 /* Line 690 of lalr1.cc */ 747 #line 164 "easymesh/easymesh-parser.y" 741 748 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); } 742 749 break; 743 750 744 case 5 0:745 746 /* Line 690 of lalr1.cc */ 747 #line 16 4"easymesh/easymesh-parser.y"751 case 51: 752 753 /* Line 690 of lalr1.cc */ 754 #line 165 "easymesh/easymesh-parser.y" 748 755 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); } 749 756 break; 750 757 751 case 5 1:752 753 /* Line 690 of lalr1.cc */ 754 #line 16 5"easymesh/easymesh-parser.y"758 case 52: 759 760 /* Line 690 of lalr1.cc */ 761 #line 166 "easymesh/easymesh-parser.y" 755 762 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); } 756 763 break; 757 764 758 case 5 2:759 760 /* Line 690 of lalr1.cc */ 761 #line 16 6"easymesh/easymesh-parser.y"765 case 53: 766 767 /* Line 690 of lalr1.cc */ 768 #line 167 "easymesh/easymesh-parser.y" 762 769 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); } 763 770 break; 764 771 765 case 5 3:766 767 /* Line 690 of lalr1.cc */ 768 #line 16 7"easymesh/easymesh-parser.y"772 case 54: 773 774 /* Line 690 of lalr1.cc */ 775 #line 168 "easymesh/easymesh-parser.y" 769 776 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); } 770 777 break; 771 778 772 case 5 4:773 774 /* Line 690 of lalr1.cc */ 775 #line 16 8"easymesh/easymesh-parser.y"779 case 55: 780 781 /* Line 690 of lalr1.cc */ 782 #line 169 "easymesh/easymesh-parser.y" 776 783 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); } 777 784 break; 778 785 779 case 5 5:780 781 /* Line 690 of lalr1.cc */ 782 #line 1 69"easymesh/easymesh-parser.y"786 case 56: 787 788 /* Line 690 of lalr1.cc */ 789 #line 170 "easymesh/easymesh-parser.y" 783 790 { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); } 784 791 break; 785 792 786 case 5 6:787 788 /* Line 690 of lalr1.cc */ 789 #line 17 2"easymesh/easymesh-parser.y"793 case 57: 794 795 /* Line 690 of lalr1.cc */ 796 #line 173 "easymesh/easymesh-parser.y" 790 797 { (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); } 791 798 break; 792 799 793 case 5 7:794 795 /* Line 690 of lalr1.cc */ 796 #line 17 3"easymesh/easymesh-parser.y"800 case 58: 801 802 /* Line 690 of lalr1.cc */ 803 #line 174 "easymesh/easymesh-parser.y" 797 804 { (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); } 798 805 break; … … 801 808 802 809 /* Line 690 of lalr1.cc */ 803 #line 8 04"generated/easymesh-parser.cpp"810 #line 811 "generated/easymesh-parser.cpp" 804 811 default: 805 812 break; … … 1075 1082 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1076 1083 STATE-NUM. */ 1077 const signed char EasyMeshParser::yypact_ninf_ = -4 6;1084 const signed char EasyMeshParser::yypact_ninf_ = -47; 1078 1085 const signed char 1079 1086 EasyMeshParser::yypact_[] = 1080 1087 { 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 1088 35, -26, 85, -31, -31, -31, -31, -47, -31, -31, 1089 -31, -31, -47, -31, -31, -31, -31, -47, -31, -31, 1090 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 1091 -31, -31, -31, -31, -47, 5, 13, 35, 35, 72, 1092 -47, -47, -47, -47, -47, -47, -31, -31, -31, -31, 1093 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 1094 -47, -47, -47, -47, -47, -47, -47, -47, -47, -31, 1095 -31, -47, -47, -47, -47, -47, -47, -47, -47, -47, 1096 -47, -47, -31, -31, -47, -47, -47, -47, -47, -24, 1097 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 1098 -47 1091 1099 }; 1092 1100 … … 1100 1108 0, 0, 34, 0, 0, 0, 0, 35, 0, 0, 1101 1109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 1110 0, 0, 0, 0, 7, 0, 0, 3, 0, 5, 1111 9, 11, 12, 13, 57, 15, 0, 0, 0, 0, 1112 14, 49, 17, 16, 19, 23, 26, 29, 20, 24, 1113 27, 30, 21, 25, 28, 31, 22, 32, 18, 0, 1114 0, 36, 37, 38, 39, 40, 41, 43, 44, 45, 1115 46, 47, 0, 0, 48, 42, 1, 2, 4, 0, 1116 10, 58, 50, 51, 52, 53, 54, 55, 56, 8, 1117 6 1109 1118 }; 1110 1119 … … 1113 1122 EasyMeshParser::yypgoto_[] = 1114 1123 { 1115 -4 6, -46, -2, -46, -46, -46, -46, -18, -46, -46,1116 -4 6, 5, 40, 101, 3, -5, 0, -46, -46, -451124 -47, -47, -18, -47, -47, -47, -47, -17, -47, -47, 1125 -47, 105, -4, -1, 6, 8, 1, -47, -47, -46 1117 1126 }; 1118 1127 … … 1121 1130 EasyMeshParser::yydefgoto_[] = 1122 1131 { 1123 -1, 3 4, 35, 36, 37, 98, 38, 39, 40, 41,1124 4 2, 46, 47, 48, 68, 69, 70, 82, 83, 501132 -1, 35, 36, 37, 38, 100, 39, 40, 41, 42, 1133 43, 47, 48, 49, 69, 70, 71, 83, 84, 51 1125 1134 }; 1126 1135 … … 1132 1141 EasyMeshParser::yytable_[] = 1133 1142 { 1134 89, 90, 91, 92, 49, 52, 43, 44, 53, 54,1135 4 5, 56, 84, 57, 58, 85, 60, 97, 61, 62,1136 8 8, 64, 76, 93, 94, 67, 72, 73, 74, 43,1137 51, 77, 81, 45, 86, 87, 95, 96, 1, 2,1143 91, 92, 93, 94, 56, 86, 44, 50, 53, 60, 1144 46, 44, 45, 87, 64, 46, 99, 66, 67, 88, 1145 89, 72, 90, 95, 96, 76, 80, 81, 79, 73, 1146 74, 75, 85, 82, 78, 77, 97, 98, 1, 2, 1138 1147 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1139 1148 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 1140 1149 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 1150 33, 0, 0, 0, 34, 1, 2, 3, 4, 5, 1151 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1152 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1153 26, 27, 28, 29, 30, 31, 32, 33, 54, 55, 1154 0, 57, 0, 58, 59, 0, 61, 0, 62, 63, 1155 0, 65, 44, 52, 0, 68, 46 1148 1156 }; 1149 1157 … … 1152 1160 EasyMeshParser::yycheck_[] = 1153 1161 { 1154 4 5, 46, 47, 48, 1, 2, 36, 37, 3, 4,1155 4 0, 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,1162 46, 47, 48, 49, 5, 0, 37, 1, 2, 10, 1163 41, 37, 38, 0, 15, 41, 40, 18, 19, 37, 1164 38, 22, 39, 69, 70, 26, 30, 31, 29, 23, 1165 24, 25, 33, 32, 28, 27, 82, 83, 3, 4, 1158 1166 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1159 1167 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1160 1168 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 1169 35, -1, -1, -1, 39, 3, 4, 5, 6, 7, 1170 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1171 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1172 28, 29, 30, 31, 32, 33, 34, 35, 3, 4, 1173 -1, 6, -1, 8, 9, -1, 11, -1, 13, 14, 1174 -1, 16, 37, 38, -1, 20, 41 1168 1175 }; 1169 1176 … … 1176 1183 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1177 1184 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 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 1185 32, 33, 34, 35, 39, 43, 44, 45, 46, 48, 1186 49, 50, 51, 52, 37, 38, 41, 53, 54, 55, 1187 56, 61, 38, 56, 53, 53, 55, 53, 53, 53, 1188 55, 53, 53, 53, 55, 53, 55, 55, 53, 56, 1189 57, 58, 55, 56, 56, 56, 55, 57, 56, 55, 1190 54, 54, 58, 59, 60, 55, 0, 0, 44, 44, 1191 49, 61, 61, 61, 61, 61, 61, 61, 61, 40, 1192 47 1185 1193 }; 1186 1194 … … 1194 1202 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 1195 1203 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1196 285, 286, 287, 288, 289, 290, 291, 292, 91, 93,1197 451204 285, 286, 287, 288, 289, 290, 291, 292, 293, 91, 1205 93, 45 1198 1206 }; 1199 1207 #endif … … 1203 1211 EasyMeshParser::yyr1_[] = 1204 1212 { 1205 0, 4 1, 42, 43, 43, 44, 44, 45, 46, 47,1206 4 7, 48, 48, 48, 49, 49, 49, 49, 50, 50,1207 5 0, 50, 50, 50, 50, 50, 50, 50, 50, 50,1208 5 0, 50, 50, 50, 50, 50, 51, 51, 51, 51,1209 5 1, 51, 51, 51, 51, 51, 51, 51, 52, 53,1210 54, 55, 56, 57, 58, 59, 60, 6 01213 0, 42, 43, 44, 44, 45, 45, 46, 47, 48, 1214 48, 49, 49, 49, 50, 50, 50, 50, 51, 51, 1215 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 1216 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 1217 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 1218 54, 55, 56, 57, 58, 59, 60, 61, 61 1211 1219 }; 1212 1220 … … 1219 1227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1220 1228 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1221 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,1222 2, 2, 2, 2, 2, 2, 1, 21229 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1230 2, 2, 2, 2, 2, 2, 2, 1, 2 1223 1231 }; 1224 1232 … … 1235 1243 "T_SCALE", "T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX", 1236 1244 "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",1245 "T_DISC", "T_TRIANGLE", "T_QUAD", "T_COG", "T_TORUS", "T_ERROR", 1246 "NUMBER", "COLOR", "'['", "']'", "'-'", "$accept", "mesh_description", 1239 1247 "mesh_expression_list", "mesh_expression", "mesh_open", "mesh_close", 1240 1248 "mesh_command_list", "mesh_command", "color_command", … … 1249 1257 EasyMeshParser::yyrhs_[] = 1250 1258 { 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 1259 43, 0, -1, 44, 0, -1, 45, -1, 45, 44, 1260 -1, 48, -1, 46, 44, 47, -1, 39, -1, 40, 1261 -1, 49, -1, 48, 49, -1, 50, -1, 51, -1, 1262 52, -1, 3, 56, -1, 3, 38, -1, 4, 56, 1263 -1, 4, 38, -1, 22, 53, -1, 5, 53, -1, 1264 10, 53, -1, 15, 53, -1, 20, 55, -1, 6, 1265 53, -1, 11, 53, -1, 16, 53, -1, 7, 55, 1266 -1, 12, 55, -1, 17, 55, -1, 8, 53, -1, 1267 13, 53, -1, 18, 53, -1, 21, 55, -1, 9, 1268 -1, 14, -1, 19, -1, 23, 58, -1, 24, 55, 1269 -1, 25, 56, -1, 26, 56, -1, 27, 56, -1, 1270 28, 55, -1, 35, 55, -1, 29, 57, -1, 30, 1271 56, -1, 31, 55, -1, 32, 54, -1, 33, 54, 1272 -1, 34, 60, -1, 61, -1, 53, 61, -1, 54, 1273 61, -1, 55, 61, -1, 56, 61, -1, 57, 61, 1274 -1, 58, 61, -1, 59, 61, -1, 37, -1, 41, 1275 61, -1 1267 1276 }; 1268 1277 … … 1276 1285 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 1277 1286 80, 83, 86, 89, 91, 93, 95, 98, 101, 104, 1278 107, 110, 113, 116, 119, 122, 125, 128, 131, 13 3,1279 136, 139, 142, 145, 148, 151, 154, 15 61287 107, 110, 113, 116, 119, 122, 125, 128, 131, 134, 1288 136, 139, 142, 145, 148, 151, 154, 157, 159 1280 1289 }; 1281 1290 … … 1288 1297 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 1289 1298 131, 132, 133, 134, 135, 136, 140, 143, 144, 146, 1290 148, 150, 151, 15 3, 155, 156, 157, 158, 162, 163,1291 164, 165, 166, 167, 168, 169, 17 2, 1731299 148, 150, 151, 152, 154, 156, 157, 158, 159, 163, 1300 164, 165, 166, 167, 168, 169, 170, 173, 174 1292 1301 }; 1293 1302 … … 1333 1342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1334 1343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1335 2, 2, 2, 2, 2, 4 0, 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, 3 8, 2, 39, 2, 2, 2, 2, 2, 2,1344 2, 2, 2, 2, 2, 41, 2, 2, 2, 2, 1345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1349 2, 39, 2, 40, 2, 2, 2, 2, 2, 2, 1341 1350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1342 1351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 1358 1367 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1359 1368 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1360 35, 36, 37 1369 35, 36, 37, 38 1361 1370 }; 1362 1371 if ((unsigned int) t <= yyuser_token_number_max_) … … 1367 1376 1368 1377 const int EasyMeshParser::yyeof_ = 0; 1369 const int EasyMeshParser::yylast_ = 1 30;1378 const int EasyMeshParser::yylast_ = 126; 1370 1379 const int EasyMeshParser::yynnts_ = 20; 1371 1380 const int EasyMeshParser::yyempty_ = -2; 1372 const int EasyMeshParser::yyfinal_ = 8 4;1381 const int EasyMeshParser::yyfinal_ = 86; 1373 1382 const int EasyMeshParser::yyterror_ = 1; 1374 1383 const int EasyMeshParser::yyerrcode_ = 256; 1375 const int EasyMeshParser::yyntokens_ = 4 1;1376 1377 const unsigned int EasyMeshParser::yyuser_token_number_max_ = 29 2;1384 const int EasyMeshParser::yyntokens_ = 42; 1385 1386 const unsigned int EasyMeshParser::yyuser_token_number_max_ = 293; 1378 1387 const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2; 1379 1388 … … 1382 1391 1383 1392 /* Line 1136 of lalr1.cc */ 1384 #line 13 85"generated/easymesh-parser.cpp"1393 #line 1394 "generated/easymesh-parser.cpp" 1385 1394 1386 1395 1387 1396 /* Line 1138 of lalr1.cc */ 1388 #line 17 6"easymesh/easymesh-parser.y"1397 #line 177 "easymesh/easymesh-parser.y" 1389 1398 1390 1399 -
trunk/src/generated/easymesh-parser.h
r1619 r1875 132 132 T_QUAD = 288, 133 133 T_COG = 289, 134 T_ERROR = 290, 135 NUMBER = 291, 136 COLOR = 292 134 T_TORUS = 290, 135 T_ERROR = 291, 136 NUMBER = 292, 137 COLOR = 293 137 138 }; 138 139 … … 314 315 315 316 /* Line 35 of lalr1.cc */ 316 #line 31 7"generated/easymesh-parser.h"317 #line 318 "generated/easymesh-parser.h" 317 318 318 319 -
trunk/src/generated/easymesh-scanner.cpp
r1808 r1875 331 331 (yy_c_buf_p) = yy_cp; 332 332 333 #define YY_NUM_RULES 4 4334 #define YY_END_OF_BUFFER 4 5333 #define YY_NUM_RULES 45 334 #define YY_END_OF_BUFFER 46 335 335 /* This struct is not used in this scanner, 336 336 but its presence is necessary. */ … … 342 342 static yyconst flex_int16_t yy_accept[72] = 343 343 { 0, 344 0, 0, 4 5, 43, 42, 41, 43, 43, 38, 43,345 3 7, 39, 40, 43, 43, 43, 43, 17, 7, 0,346 0, 3 7, 37, 0, 22, 21, 29, 0, 0, 31,347 2 7, 30, 3, 18, 19, 20, 8, 9, 10, 1,348 14, 15, 16, 0, 4, 5, 6, 0, 0, 3 7,349 0, 3 2, 28, 0, 0, 0, 2, 11, 12, 13,350 3 3, 25, 24, 23, 26, 34, 0, 35, 0, 36,344 0, 0, 46, 44, 43, 42, 44, 44, 39, 44, 345 38, 40, 41, 44, 44, 44, 44, 17, 7, 0, 346 0, 38, 38, 0, 22, 21, 30, 0, 0, 32, 347 28, 27, 3, 18, 19, 20, 8, 9, 10, 1, 348 14, 15, 16, 0, 4, 5, 6, 0, 0, 38, 349 0, 33, 29, 0, 0, 0, 2, 11, 12, 13, 350 34, 25, 24, 23, 26, 35, 0, 36, 0, 37, 351 351 0 352 352 } ; … … 822 822 YY_RULE_SETUP 823 823 #line 79 "easymesh/easymesh-scanner.l" 824 { return token::T_TORUS; } 825 YY_BREAK 826 case 28: 827 YY_RULE_SETUP 828 #line 80 "easymesh/easymesh-scanner.l" 824 829 { return token::T_STAR; } 825 830 YY_BREAK 826 case 2 8:827 YY_RULE_SETUP 828 #line 8 0"easymesh/easymesh-scanner.l"831 case 29: 832 YY_RULE_SETUP 833 #line 81 "easymesh/easymesh-scanner.l" 829 834 { return token::T_EXPANDEDSTAR; } 830 835 YY_BREAK 831 case 29:832 YY_RULE_SETUP 833 #line 8 1"easymesh/easymesh-scanner.l"836 case 30: 837 YY_RULE_SETUP 838 #line 82 "easymesh/easymesh-scanner.l" 834 839 { return token::T_DISC; } 835 840 YY_BREAK 836 case 3 0:837 YY_RULE_SETUP 838 #line 8 2"easymesh/easymesh-scanner.l"841 case 31: 842 YY_RULE_SETUP 843 #line 83 "easymesh/easymesh-scanner.l" 839 844 { return token::T_TRIANGLE; } 840 845 YY_BREAK 841 case 3 1:842 YY_RULE_SETUP 843 #line 8 3"easymesh/easymesh-scanner.l"846 case 32: 847 YY_RULE_SETUP 848 #line 84 "easymesh/easymesh-scanner.l" 844 849 { return token::T_QUAD; } 845 850 YY_BREAK 846 case 3 2:847 YY_RULE_SETUP 848 #line 8 4"easymesh/easymesh-scanner.l"851 case 33: 852 YY_RULE_SETUP 853 #line 85 "easymesh/easymesh-scanner.l" 849 854 { return token::T_COG; } 850 855 YY_BREAK 851 case 3 3:852 YY_RULE_SETUP 853 #line 8 6"easymesh/easymesh-scanner.l"856 case 34: 857 YY_RULE_SETUP 858 #line 87 "easymesh/easymesh-scanner.l" 854 859 { 855 860 uint32_t tmp = std::strtol(yytext + 1, NULL, 16); … … 860 865 return token::COLOR; } 861 866 YY_BREAK 862 case 3 4:863 YY_RULE_SETUP 864 #line 9 3"easymesh/easymesh-scanner.l"867 case 35: 868 YY_RULE_SETUP 869 #line 94 "easymesh/easymesh-scanner.l" 865 870 { 866 871 uint32_t tmp = std::strtol(yytext + 1, NULL, 16); … … 871 876 return token::COLOR; } 872 877 YY_BREAK 873 case 3 5:874 YY_RULE_SETUP 875 #line 10 0"easymesh/easymesh-scanner.l"878 case 36: 879 YY_RULE_SETUP 880 #line 101 "easymesh/easymesh-scanner.l" 876 881 { 877 882 yylval->u32val = 0xffu … … 879 884 return token::COLOR; } 880 885 YY_BREAK 881 case 3 6:882 YY_RULE_SETUP 883 #line 10 4"easymesh/easymesh-scanner.l"886 case 37: 887 YY_RULE_SETUP 888 #line 105 "easymesh/easymesh-scanner.l" 884 889 { 885 890 yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16); 886 891 return token::COLOR; } 887 892 YY_BREAK 888 case 3 7:889 YY_RULE_SETUP 890 #line 10 7"easymesh/easymesh-scanner.l"893 case 38: 894 YY_RULE_SETUP 895 #line 108 "easymesh/easymesh-scanner.l" 891 896 { 892 897 yylval->fval = std::atof(yytext); return token::NUMBER; } 893 898 YY_BREAK 894 case 3 8:895 YY_RULE_SETUP 896 #line 1 09"easymesh/easymesh-scanner.l"899 case 39: 900 YY_RULE_SETUP 901 #line 110 "easymesh/easymesh-scanner.l" 897 902 { return token_type('-'); } 898 903 YY_BREAK 899 case 39:900 YY_RULE_SETUP 901 #line 11 0"easymesh/easymesh-scanner.l"904 case 40: 905 YY_RULE_SETUP 906 #line 111 "easymesh/easymesh-scanner.l" 902 907 { return token_type('['); } 903 908 YY_BREAK 904 case 4 0:905 YY_RULE_SETUP 906 #line 11 1"easymesh/easymesh-scanner.l"909 case 41: 910 YY_RULE_SETUP 911 #line 112 "easymesh/easymesh-scanner.l" 907 912 { return token_type(']'); } 908 913 YY_BREAK 909 case 41:910 YY_RULE_SETUP911 #line 112 "easymesh/easymesh-scanner.l"912 { /* ignore this */ }913 YY_BREAK914 914 case 42: 915 /* rule 42 can match eol */916 915 YY_RULE_SETUP 917 916 #line 113 "easymesh/easymesh-scanner.l" … … 919 918 YY_BREAK 920 919 case 43: 920 /* rule 43 can match eol */ 921 921 YY_RULE_SETUP 922 922 #line 114 "easymesh/easymesh-scanner.l" 923 { /* ignore this */ } 924 YY_BREAK 925 case 44: 926 YY_RULE_SETUP 927 #line 115 "easymesh/easymesh-scanner.l" 923 928 { return token::T_ERROR; } 924 929 YY_BREAK 925 case 4 4:926 YY_RULE_SETUP 927 #line 11 6"easymesh/easymesh-scanner.l"930 case 45: 931 YY_RULE_SETUP 932 #line 117 "easymesh/easymesh-scanner.l" 928 933 ECHO; 929 934 YY_BREAK 930 #line 93 1"generated/easymesh-scanner.cpp"935 #line 936 "generated/easymesh-scanner.cpp" 931 936 case YY_STATE_EOF(INITIAL): 932 937 yyterminate(); … … 1829 1834 #define YYTABLES_NAME "yytables" 1830 1835 1831 #line 11 6"easymesh/easymesh-scanner.l"1836 #line 117 "easymesh/easymesh-scanner.l" 1832 1837 1833 1838 -
trunk/tutorial/05_easymesh.cpp
r1784 r1875 30 30 m_mesh.Compile("ad12,2.2,0 ty.1 ac12,.2,2.4,2.2,0,1 ty.8 ac12,1.7,2.4,2.4,0,1 ty2.5"); 31 31 m_mesh.Translate(vec3(i * 8.f, (h - 1) * 3.2f, j * 8.f)); 32 33 m_mesh.CloseBrace(); 32 m_mesh.CloseBrace(); 34 33 } 35 34 m_mesh.OpenBrace(); … … 45 44 { 46 45 m_angle = 0; 47 m_mesh.Compile("sc#800 [asph10 20 20 20]"); 48 m_mesh.RadialJitter(0.2f); 46 m_mesh.Compile("sc#8d3 [at40 10 40 rx20 ry130 tx30]"); 47 48 m_mesh.OpenBrace(); 49 m_mesh.Compile("sc#800 [asph10 25 25 25]"); 50 m_mesh.Compile("ty50"); 51 m_mesh.RadialJitter(0.2f); 52 m_mesh.Compile("ty-50 tx-40"); 53 m_mesh.CloseBrace(); 54 55 #if 0 49 56 //m_mesh.Compile("sc#94e scb#649 [asph3 7 7 7 tx-6 tz-9]"); 50 57 //m_mesh.Compile("sc#49e scb#469 [asph31 7 7 7 tx-6 tz9]"); … … 103 110 m_mesh.Compile("sc#e49 scb#e49"); 104 111 AddPiece(6, 2, 1, -2, -2, -3); 112 #endif 105 113 106 114 /* Center everything -- is it needed? */ 107 m_mesh.Compile("tx4 tz4");115 // m_mesh.Compile("tx4 tz4"); 108 116 109 117 m_camera = new Camera(vec3(0.f, 600.f, 0.f),
Note: See TracChangeset
for help on using the changeset viewer.