Bläddra i källkod

easymesh : Added Twist/Ben/Shear & Taper refactor.

legacy
Benjamin ‘Touky’ Huet touky 12 år sedan
förälder
incheckning
506befcf4a
9 ändrade filer med 916 tillägg och 426 borttagningar
  1. +47
    -9
      build/vs2010/Lol.sln
  2. +24
    -3
      src/easymesh/easymesh-parser.y
  3. +15
    -0
      src/easymesh/easymesh-scanner.l
  4. +64
    -20
      src/easymesh/easymesh.cpp
  5. +85
    -18
      src/easymesh/easymesh.h
  6. +390
    -194
      src/generated/easymesh-parser.cpp
  7. +57
    -42
      src/generated/easymesh-parser.h
  8. +228
    -138
      src/generated/easymesh-scanner.cpp
  9. +6
    -2
      test/MeshViewerBuffer.txt

+ 47
- 9
build/vs2010/Lol.sln Visa fil

@@ -168,6 +168,7 @@ Global
{EF1A4E80-63FA-4EB0-B834-12B6C500F31C}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {EF1A4E80-63FA-4EB0-B834-12B6C500F31C}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Any CPU.ActiveCfg = Debug|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|PS3.ActiveCfg = Debug|PS3 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|PS3.ActiveCfg = Debug|PS3
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|PS3.Build.0 = Debug|PS3 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|PS3.Build.0 = Debug|PS3
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Win32.ActiveCfg = Debug|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -179,6 +180,7 @@ Global
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Any CPU.ActiveCfg = Release|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Any CPU.ActiveCfg = Release|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Mixed Platforms.Build.0 = Release|Win32
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|PS3.ActiveCfg = Release|PS3 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|PS3.ActiveCfg = Release|PS3
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|PS3.Build.0 = Release|PS3 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|PS3.Build.0 = Release|PS3
{17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Win32.ActiveCfg = Release|Win32 {17F0F184-4436-4D08-B8AA-16572EA238DB}.Release|Win32.ActiveCfg = Release|Win32
@@ -204,6 +206,7 @@ Global
{9C66B179-0737-4BDA-AB42-2ADE478A9008}.Release|Xbox 360.ActiveCfg = Release|Xbox 360 {9C66B179-0737-4BDA-AB42-2ADE478A9008}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Any CPU.ActiveCfg = Debug|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|PS3.ActiveCfg = Debug|PS3 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|PS3.ActiveCfg = Debug|PS3
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|PS3.Build.0 = Debug|PS3 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|PS3.Build.0 = Debug|PS3
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Win32.ActiveCfg = Debug|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -215,6 +218,7 @@ Global
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Any CPU.ActiveCfg = Release|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Any CPU.ActiveCfg = Release|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Mixed Platforms.Build.0 = Release|Win32
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|PS3.ActiveCfg = Release|PS3 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|PS3.ActiveCfg = Release|PS3
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|PS3.Build.0 = Release|PS3 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|PS3.Build.0 = Release|PS3
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Win32.ActiveCfg = Release|Win32 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Win32.ActiveCfg = Release|Win32
@@ -226,6 +230,7 @@ Global
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {9E62F2FE-3408-4EAE-8238-FD84238CEEDA}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Any CPU.ActiveCfg = Debug|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Any CPU.ActiveCfg = Debug|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|PS3.ActiveCfg = Debug|PS3 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|PS3.ActiveCfg = Debug|PS3
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|PS3.Build.0 = Debug|PS3 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|PS3.Build.0 = Debug|PS3
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Win32.ActiveCfg = Debug|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -237,6 +242,7 @@ Global
{83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {83D3B207-C601-4025-8F41-01DEDC354661}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|Any CPU.ActiveCfg = Release|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|Any CPU.ActiveCfg = Release|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|Mixed Platforms.Build.0 = Release|Win32
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|PS3.ActiveCfg = Release|PS3 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|PS3.ActiveCfg = Release|PS3
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|PS3.Build.0 = Release|PS3 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|PS3.Build.0 = Release|PS3
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|Win32.ActiveCfg = Release|Win32 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|Win32.ActiveCfg = Release|Win32
@@ -248,6 +254,7 @@ Global
{83D3B207-C601-4025-8F41-01DEDC354661}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {83D3B207-C601-4025-8F41-01DEDC354661}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|PS3.ActiveCfg = Debug|PS3 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|PS3.ActiveCfg = Debug|PS3
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|PS3.Build.0 = Debug|PS3 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|PS3.Build.0 = Debug|PS3
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Win32.ActiveCfg = Debug|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -259,6 +266,7 @@ Global
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Any CPU.ActiveCfg = Release|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Any CPU.ActiveCfg = Release|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Mixed Platforms.Build.0 = Release|Win32
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|PS3.ActiveCfg = Release|PS3 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|PS3.ActiveCfg = Release|PS3
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|PS3.Build.0 = Release|PS3 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|PS3.Build.0 = Release|PS3
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Win32.ActiveCfg = Release|Win32 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Win32.ActiveCfg = Release|Win32
@@ -270,6 +278,7 @@ Global
{B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {B1E10086-A1DA-401A-834D-969C9DBB5CC1}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Any CPU.ActiveCfg = Debug|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|PS3.ActiveCfg = Debug|PS3 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|PS3.ActiveCfg = Debug|PS3
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|PS3.Build.0 = Debug|PS3 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|PS3.Build.0 = Debug|PS3
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Win32.ActiveCfg = Debug|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -281,6 +290,7 @@ Global
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Any CPU.ActiveCfg = Release|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Any CPU.ActiveCfg = Release|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Mixed Platforms.Build.0 = Release|Win32
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|PS3.ActiveCfg = Release|PS3 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|PS3.ActiveCfg = Release|PS3
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|PS3.Build.0 = Release|PS3 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|PS3.Build.0 = Release|PS3
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Win32.ActiveCfg = Release|Win32 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Win32.ActiveCfg = Release|Win32
@@ -292,6 +302,7 @@ Global
{80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {80F81C11-8DA2-4990-91CB-9807783BA46E}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|PS3.ActiveCfg = Debug|PS3 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|PS3.ActiveCfg = Debug|PS3
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|PS3.Build.0 = Debug|PS3 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|PS3.Build.0 = Debug|PS3
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Win32.ActiveCfg = Debug|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -303,6 +314,7 @@ Global
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Any CPU.ActiveCfg = Release|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Any CPU.ActiveCfg = Release|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Mixed Platforms.Build.0 = Release|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Mixed Platforms.Deploy.0 = Release|Win32 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Mixed Platforms.Deploy.0 = Release|Win32
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|PS3.ActiveCfg = Release|PS3 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|PS3.ActiveCfg = Release|PS3
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|PS3.Build.0 = Release|PS3 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|PS3.Build.0 = Release|PS3
@@ -315,6 +327,7 @@ Global
{B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {B92ABADC-45BE-4CC5-B724-9426053123A1}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Any CPU.ActiveCfg = Debug|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|PS3.ActiveCfg = Debug|PS3 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|PS3.ActiveCfg = Debug|PS3
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|PS3.Build.0 = Debug|PS3 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|PS3.Build.0 = Debug|PS3
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Win32.ActiveCfg = Debug|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -326,6 +339,7 @@ Global
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Any CPU.ActiveCfg = Release|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Any CPU.ActiveCfg = Release|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Mixed Platforms.Build.0 = Release|Win32
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|PS3.ActiveCfg = Release|PS3 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|PS3.ActiveCfg = Release|PS3
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|PS3.Build.0 = Release|PS3 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|PS3.Build.0 = Release|PS3
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Win32.ActiveCfg = Release|Win32 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Win32.ActiveCfg = Release|Win32
@@ -337,6 +351,7 @@ Global
{7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {7B083DA2-FE08-4F6D-BFDD-195D5C2783EB}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Any CPU.ActiveCfg = Debug|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Any CPU.ActiveCfg = Debug|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|PS3.ActiveCfg = Debug|PS3 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|PS3.ActiveCfg = Debug|PS3
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|PS3.Build.0 = Debug|PS3 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|PS3.Build.0 = Debug|PS3
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Win32.ActiveCfg = Debug|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -348,6 +363,7 @@ Global
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Any CPU.ActiveCfg = Release|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Any CPU.ActiveCfg = Release|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Mixed Platforms.Build.0 = Release|Win32
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|PS3.ActiveCfg = Release|PS3 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|PS3.ActiveCfg = Release|PS3
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|PS3.Build.0 = Release|PS3 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|PS3.Build.0 = Release|PS3
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Win32.ActiveCfg = Release|Win32 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Win32.ActiveCfg = Release|Win32
@@ -359,6 +375,7 @@ Global
{1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {1C5B8702-290C-42DA-AA9E-671348F5B747}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|PS3.ActiveCfg = Debug|PS3 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|PS3.ActiveCfg = Debug|PS3
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|PS3.Build.0 = Debug|PS3 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|PS3.Build.0 = Debug|PS3
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Win32.ActiveCfg = Debug|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -370,6 +387,7 @@ Global
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Any CPU.ActiveCfg = Release|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Any CPU.ActiveCfg = Release|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Mixed Platforms.Build.0 = Release|Win32
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|PS3.ActiveCfg = Release|PS3 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|PS3.ActiveCfg = Release|PS3
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|PS3.Build.0 = Release|PS3 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|PS3.Build.0 = Release|PS3
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Win32.ActiveCfg = Release|Win32 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Win32.ActiveCfg = Release|Win32
@@ -381,6 +399,7 @@ Global
{6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {6BF81B39-EDC2-4227-9992-C2D8ABEA95AF}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Any CPU.ActiveCfg = Debug|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Any CPU.ActiveCfg = Debug|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|PS3.ActiveCfg = Debug|PS3 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|PS3.ActiveCfg = Debug|PS3
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|PS3.Build.0 = Debug|PS3 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|PS3.Build.0 = Debug|PS3
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Win32.ActiveCfg = Debug|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -392,6 +411,7 @@ Global
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Any CPU.ActiveCfg = Release|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Any CPU.ActiveCfg = Release|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Mixed Platforms.Build.0 = Release|Win32
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|PS3.ActiveCfg = Release|PS3 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|PS3.ActiveCfg = Release|PS3
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|PS3.Build.0 = Release|PS3 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|PS3.Build.0 = Release|PS3
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Win32.ActiveCfg = Release|Win32 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Win32.ActiveCfg = Release|Win32
@@ -403,6 +423,7 @@ Global
{32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {32F3F8CF-D22E-45E4-BEB8-AD909E8C5515}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|PS3.ActiveCfg = Debug|PS3 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|PS3.ActiveCfg = Debug|PS3
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|PS3.Build.0 = Debug|PS3 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|PS3.Build.0 = Debug|PS3
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Win32.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -414,6 +435,7 @@ Global
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Any CPU.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Any CPU.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Mixed Platforms.Build.0 = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|PS3.ActiveCfg = Release|PS3 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|PS3.ActiveCfg = Release|PS3
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|PS3.Build.0 = Release|PS3 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|PS3.Build.0 = Release|PS3
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Win32.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Win32.ActiveCfg = Release|Win32
@@ -425,6 +447,7 @@ Global
{EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {EE203B88-44CF-4859-9D42-7A5F40FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Any CPU.ActiveCfg = Debug|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Any CPU.ActiveCfg = Debug|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|PS3.ActiveCfg = Debug|PS3 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|PS3.ActiveCfg = Debug|PS3
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Win32.ActiveCfg = Debug|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Win32.ActiveCfg = Debug|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Win32.Build.0 = Debug|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Win32.Build.0 = Debug|Win32
@@ -433,6 +456,7 @@ Global
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Any CPU.ActiveCfg = Release|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Any CPU.ActiveCfg = Release|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Mixed Platforms.Build.0 = Release|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|PS3.ActiveCfg = Release|PS3 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|PS3.ActiveCfg = Release|PS3
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Win32.ActiveCfg = Release|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Win32.ActiveCfg = Release|Win32
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Win32.Build.0 = Release|Win32 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Win32.Build.0 = Release|Win32
@@ -441,6 +465,7 @@ Global
{587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Xbox 360.ActiveCfg = Release|Xbox 360 {587FCCE9-1D8D-4398-B8B6-E8F4E9A92233}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|PS3.ActiveCfg = Debug|PS3 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|PS3.ActiveCfg = Debug|PS3
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|PS3.Build.0 = Debug|PS3 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|PS3.Build.0 = Debug|PS3
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Win32.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -452,6 +477,7 @@ Global
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Any CPU.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Any CPU.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Mixed Platforms.Build.0 = Release|Win32
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|PS3.ActiveCfg = Release|PS3 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|PS3.ActiveCfg = Release|PS3
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|PS3.Build.0 = Release|PS3 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|PS3.Build.0 = Release|PS3
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Win32.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Win32.ActiveCfg = Release|Win32
@@ -463,6 +489,7 @@ Global
{EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {EE203B88-44CF-4859-9D42-7A5F43FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Any CPU.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|PS3.ActiveCfg = Debug|PS3 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|PS3.ActiveCfg = Debug|PS3
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|PS3.Build.0 = Debug|PS3 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|PS3.Build.0 = Debug|PS3
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Win32.ActiveCfg = Debug|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -474,6 +501,7 @@ Global
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Any CPU.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Any CPU.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Mixed Platforms.Build.0 = Release|Win32
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|PS3.ActiveCfg = Release|PS3 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|PS3.ActiveCfg = Release|PS3
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|PS3.Build.0 = Release|PS3 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|PS3.Build.0 = Release|PS3
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Win32.ActiveCfg = Release|Win32 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Win32.ActiveCfg = Release|Win32
@@ -485,6 +513,7 @@ Global
{EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {EE203B88-44CF-4859-9D42-7A1F43FECB52}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Any CPU.ActiveCfg = Debug|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|PS3.ActiveCfg = Debug|PS3 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|PS3.ActiveCfg = Debug|PS3
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|PS3.Build.0 = Debug|PS3 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|PS3.Build.0 = Debug|PS3
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Win32.ActiveCfg = Debug|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -496,6 +525,7 @@ Global
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Any CPU.ActiveCfg = Release|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Any CPU.ActiveCfg = Release|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Mixed Platforms.Build.0 = Release|Win32
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|PS3.ActiveCfg = Release|PS3 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|PS3.ActiveCfg = Release|PS3
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|PS3.Build.0 = Release|PS3 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|PS3.Build.0 = Release|PS3
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Win32.ActiveCfg = Release|Win32 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Win32.ActiveCfg = Release|Win32
@@ -507,6 +537,7 @@ Global
{BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {BCEE0132-8E24-49BE-AFEB-96DAD14396BA}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|PS3.ActiveCfg = Debug|PS3 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|PS3.ActiveCfg = Debug|PS3
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|PS3.Build.0 = Debug|PS3 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|PS3.Build.0 = Debug|PS3
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Win32.ActiveCfg = Debug|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -518,6 +549,7 @@ Global
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Any CPU.ActiveCfg = Release|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Any CPU.ActiveCfg = Release|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Mixed Platforms.Build.0 = Release|Win32
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|PS3.ActiveCfg = Release|PS3 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|PS3.ActiveCfg = Release|PS3
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|PS3.Build.0 = Release|PS3 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|PS3.Build.0 = Release|PS3
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Win32.ActiveCfg = Release|Win32 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Win32.ActiveCfg = Release|Win32
@@ -529,6 +561,7 @@ Global
{A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {A69411B3-6DE8-404E-8E70-0D3375A7492A}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Any CPU.ActiveCfg = Debug|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|PS3.ActiveCfg = Debug|PS3 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|PS3.ActiveCfg = Debug|PS3
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|PS3.Build.0 = Debug|PS3 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|PS3.Build.0 = Debug|PS3
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Win32.ActiveCfg = Debug|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -540,6 +573,7 @@ Global
{C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {C2E01551-B636-4324-8461-71811DF6FBB5}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Any CPU.ActiveCfg = Release|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Any CPU.ActiveCfg = Release|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Mixed Platforms.Build.0 = Release|Win32
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|PS3.ActiveCfg = Release|PS3 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|PS3.ActiveCfg = Release|PS3
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|PS3.Build.0 = Release|PS3 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|PS3.Build.0 = Release|PS3
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Win32.ActiveCfg = Release|Win32 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Win32.ActiveCfg = Release|Win32
@@ -551,6 +585,7 @@ Global
{C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {C2E01551-B636-4324-8461-71811DF6FBB5}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Any CPU.ActiveCfg = Debug|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|PS3.ActiveCfg = Debug|PS3 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|PS3.ActiveCfg = Debug|PS3
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|PS3.Build.0 = Debug|PS3 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|PS3.Build.0 = Debug|PS3
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Win32.ActiveCfg = Debug|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -562,6 +597,7 @@ Global
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Any CPU.ActiveCfg = Release|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Any CPU.ActiveCfg = Release|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Mixed Platforms.Build.0 = Release|Win32
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|PS3.ActiveCfg = Release|PS3 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|PS3.ActiveCfg = Release|PS3
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|PS3.Build.0 = Release|PS3 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|PS3.Build.0 = Release|PS3
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Win32.ActiveCfg = Release|Win32 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Win32.ActiveCfg = Release|Win32
@@ -573,6 +609,7 @@ Global
{B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {B0A53D75-CBB4-4FDF-93AC-2D12A79ADA0E}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Any CPU.ActiveCfg = Debug|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Any CPU.ActiveCfg = Debug|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|PS3.ActiveCfg = Debug|PS3 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|PS3.ActiveCfg = Debug|PS3
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|PS3.Build.0 = Debug|PS3 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|PS3.Build.0 = Debug|PS3
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Win32.ActiveCfg = Debug|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -584,6 +621,7 @@ Global
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Debug|Xbox 360.Deploy.0 = Debug|Xbox 360
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Any CPU.ActiveCfg = Release|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Any CPU.ActiveCfg = Release|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Mixed Platforms.Build.0 = Release|Win32
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|PS3.ActiveCfg = Release|PS3 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|PS3.ActiveCfg = Release|PS3
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|PS3.Build.0 = Release|PS3 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|PS3.Build.0 = Release|PS3
{5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Win32.ActiveCfg = Release|Win32 {5A77DCDD-2CBA-43E9-8B45-00C281443F77}.Release|Win32.ActiveCfg = Release|Win32
@@ -636,8 +674,8 @@ Global
{834852DB-EDB6-4FD0-BCF9-45CD01126962}.Release|Xbox 360.Build.0 = Release|Xbox 360 {834852DB-EDB6-4FD0-BCF9-45CD01126962}.Release|Xbox 360.Build.0 = Release|Xbox 360
{834852DB-EDB6-4FD0-BCF9-45CD01126962}.Release|Xbox 360.Deploy.0 = Release|Xbox 360 {834852DB-EDB6-4FD0-BCF9-45CD01126962}.Release|Xbox 360.Deploy.0 = Release|Xbox 360
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Any CPU.ActiveCfg = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Any CPU.ActiveCfg = Debug|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Mixed Platforms.Build.0 = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|PS3.ActiveCfg = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|PS3.ActiveCfg = Debug|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Win32.ActiveCfg = Debug|Win32 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Win32.ActiveCfg = Debug|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Win32.Build.0 = Debug|Win32 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Win32.Build.0 = Debug|Win32
@@ -645,8 +683,8 @@ Global
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|x64.Build.0 = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|x64.Build.0 = Debug|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Xbox 360.ActiveCfg = Debug|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Debug|Xbox 360.ActiveCfg = Debug|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Any CPU.ActiveCfg = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Any CPU.ActiveCfg = Release|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Mixed Platforms.ActiveCfg = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Mixed Platforms.Build.0 = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Mixed Platforms.Build.0 = Release|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|PS3.ActiveCfg = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|PS3.ActiveCfg = Release|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Win32.ActiveCfg = Release|Win32 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Win32.ActiveCfg = Release|Win32
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Win32.Build.0 = Release|Win32 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Win32.Build.0 = Release|Win32
@@ -654,8 +692,8 @@ Global
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|x64.Build.0 = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|x64.Build.0 = Release|x64
{FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Xbox 360.ActiveCfg = Release|x64 {FAF82AD2-D9F4-4694-9A01-103BC5B771B4}.Release|Xbox 360.ActiveCfg = Release|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Any CPU.ActiveCfg = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Any CPU.ActiveCfg = Debug|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Mixed Platforms.Build.0 = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|PS3.ActiveCfg = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|PS3.ActiveCfg = Debug|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Win32.ActiveCfg = Debug|Win32 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Win32.ActiveCfg = Debug|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Win32.Build.0 = Debug|Win32 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Win32.Build.0 = Debug|Win32
@@ -663,8 +701,8 @@ Global
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|x64.Build.0 = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|x64.Build.0 = Debug|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Xbox 360.ActiveCfg = Debug|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Debug|Xbox 360.ActiveCfg = Debug|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Any CPU.ActiveCfg = Release|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Any CPU.ActiveCfg = Release|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Mixed Platforms.ActiveCfg = Release|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Mixed Platforms.Build.0 = Release|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Mixed Platforms.Build.0 = Release|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|PS3.ActiveCfg = Release|x64 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|PS3.ActiveCfg = Release|x64
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Win32.ActiveCfg = Release|Win32 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Win32.ActiveCfg = Release|Win32
{7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Win32.Build.0 = Release|Win32 {7CE9FE12-E4AB-4A22-90D4-2C15F0C30D4E}.Release|Win32.Build.0 = Release|Win32
@@ -688,8 +726,8 @@ Global
{9C66B179-0737-4BDA-AB42-2ADE478A9008} = {08C6A854-533D-4A1E-924E-C4A62281869F} {9C66B179-0737-4BDA-AB42-2ADE478A9008} = {08C6A854-533D-4A1E-924E-C4A62281869F}
{EF1A4E80-63FA-4EB0-B834-12B6C500F31C} = {08C6A854-533D-4A1E-924E-C4A62281869F} {EF1A4E80-63FA-4EB0-B834-12B6C500F31C} = {08C6A854-533D-4A1E-924E-C4A62281869F}
{17F0F184-4436-4D08-B8AA-16572EA238DB} = {2F87CEAB-4818-443C-A5E3-6C34E7D967EC} {17F0F184-4436-4D08-B8AA-16572EA238DB} = {2F87CEAB-4818-443C-A5E3-6C34E7D967EC}
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA} = {1AFD580B-98B8-4689-B661-38C41132C60E}
{83D3B207-C601-4025-8F41-01DEDC354661} = {1AFD580B-98B8-4689-B661-38C41132C60E} {83D3B207-C601-4025-8F41-01DEDC354661} = {1AFD580B-98B8-4689-B661-38C41132C60E}
{9E62F2FE-3408-4EAE-8238-FD84238CEEDA} = {1AFD580B-98B8-4689-B661-38C41132C60E}
{B1E10086-A1DA-401A-834D-969C9DBB5CC1} = {E0491194-35E3-4513-9D31-608EA3165ECF} {B1E10086-A1DA-401A-834D-969C9DBB5CC1} = {E0491194-35E3-4513-9D31-608EA3165ECF}
{80F81C11-8DA2-4990-91CB-9807783BA46E} = {E0491194-35E3-4513-9D31-608EA3165ECF} {80F81C11-8DA2-4990-91CB-9807783BA46E} = {E0491194-35E3-4513-9D31-608EA3165ECF}
{EE203B88-44CF-4859-9D42-7A1F43FECB52} = {E0491194-35E3-4513-9D31-608EA3165ECF} {EE203B88-44CF-4859-9D42-7A1F43FECB52} = {E0491194-35E3-4513-9D31-608EA3165ECF}


+ 24
- 3
src/easymesh/easymesh-parser.y Visa fil

@@ -44,9 +44,9 @@


%token T_COLOR T_BGCOLOR %token T_COLOR T_BGCOLOR


%token T_TRANSLATEX T_ROTATEX T_TAPERX T_SCALEX T_MIRRORX %token T_TRANSLATEX T_ROTATEX T_TAPERX T_TWISTX T_SHEARX T_STRETCHX T_BENDXY T_BENDXZ T_SCALEX T_MIRRORX
%token T_TRANSLATEY T_ROTATEY T_TAPERY T_SCALEY T_MIRRORY %token T_TRANSLATEY T_ROTATEY T_TAPERY T_TWISTY T_SHEARY T_STRETCHY T_BENDYX T_BENDYZ T_SCALEY T_MIRRORY
%token T_TRANSLATEZ T_ROTATEZ T_TAPERZ T_SCALEZ T_MIRRORZ %token T_TRANSLATEZ T_ROTATEZ T_TAPERZ T_TWISTZ T_SHEARZ T_STRETCHZ T_BENDZX T_BENDZY T_SCALEZ T_MIRRORZ
%token T_TRANSLATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER %token T_TRANSLATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER
%token T_CSGUNION T_CSGSUBSTRACT T_CSGSUBSTRACTLOSS T_CSGAND T_CSGXOR %token T_CSGUNION T_CSGSUBSTRACT T_CSGSUBSTRACTLOSS T_CSGAND T_CSGXOR
%token T_CHAMFER %token T_CHAMFER
@@ -126,8 +126,29 @@ transform_command:
| T_ROTATEY args1 { mc.m_mesh.RotateY($2.f0); } | T_ROTATEY args1 { mc.m_mesh.RotateY($2.f0); }
| T_ROTATEZ args1 { mc.m_mesh.RotateZ($2.f0); } | T_ROTATEZ args1 { mc.m_mesh.RotateZ($2.f0); }
| T_TAPERX args3 { mc.m_mesh.TaperX($2.f0, $2.f1, $2.f2); } | T_TAPERX args3 { mc.m_mesh.TaperX($2.f0, $2.f1, $2.f2); }
| T_TAPERX args4 { mc.m_mesh.TaperX($2.f0, $2.f1, $2.f2, $2.f3); }
| T_TAPERY args3 { mc.m_mesh.TaperY($2.f0, $2.f1, $2.f2); } | T_TAPERY args3 { mc.m_mesh.TaperY($2.f0, $2.f1, $2.f2); }
| T_TAPERY args4 { mc.m_mesh.TaperY($2.f0, $2.f1, $2.f2, $2.f3); }
| T_TAPERZ args3 { mc.m_mesh.TaperZ($2.f0, $2.f1, $2.f2); } | T_TAPERZ args3 { mc.m_mesh.TaperZ($2.f0, $2.f1, $2.f2); }
| T_TAPERZ args4 { mc.m_mesh.TaperZ($2.f0, $2.f1, $2.f2, $2.f3); }
| T_TWISTX args2 { mc.m_mesh.TwistX($2.f0, $2.f1); }
| T_TWISTY args2 { mc.m_mesh.TwistY($2.f0, $2.f1); }
| T_TWISTZ args2 { mc.m_mesh.TwistZ($2.f0, $2.f1); }
| T_SHEARX args3 { mc.m_mesh.ShearX($2.f0, $2.f1, $2.f2); }
| T_SHEARX args4 { mc.m_mesh.ShearX($2.f0, $2.f1, $2.f2, $2.f3); }
| T_SHEARY args3 { mc.m_mesh.ShearY($2.f0, $2.f1, $2.f2); }
| T_SHEARY args4 { mc.m_mesh.ShearY($2.f0, $2.f1, $2.f2, $2.f3); }
| T_SHEARZ args3 { mc.m_mesh.ShearZ($2.f0, $2.f1, $2.f2); }
| T_SHEARZ args4 { mc.m_mesh.ShearZ($2.f0, $2.f1, $2.f2, $2.f3); }
| T_STRETCHX args3 { mc.m_mesh.StretchX($2.f0, $2.f1, $2.f2); }
| T_STRETCHY args3 { mc.m_mesh.StretchY($2.f0, $2.f1, $2.f2); }
| T_STRETCHZ args3 { mc.m_mesh.StretchZ($2.f0, $2.f1, $2.f2); }
| T_BENDXY args2 { mc.m_mesh.BendXY($2.f0, $2.f1); }
| T_BENDXZ args2 { mc.m_mesh.BendXZ($2.f0, $2.f1); }
| T_BENDYX args2 { mc.m_mesh.BendYX($2.f0, $2.f1); }
| T_BENDYZ args2 { mc.m_mesh.BendYZ($2.f0, $2.f1); }
| T_BENDZX args2 { mc.m_mesh.BendZX($2.f0, $2.f1); }
| T_BENDZY args2 { mc.m_mesh.BendZY($2.f0, $2.f1); }
| T_SCALEX args1 { mc.m_mesh.Scale(vec3($2.f0, 1.0, 1.0)); } | T_SCALEX args1 { mc.m_mesh.Scale(vec3($2.f0, 1.0, 1.0)); }
| T_SCALEY args1 { mc.m_mesh.Scale(vec3(1.0, $2.f0, 1.0)); } | T_SCALEY args1 { mc.m_mesh.Scale(vec3(1.0, $2.f0, 1.0)); }
| T_SCALEZ args1 { mc.m_mesh.Scale(vec3(1.0, 1.0, $2.f0)); } | T_SCALEZ args1 { mc.m_mesh.Scale(vec3(1.0, 1.0, $2.f0)); }


+ 15
- 0
src/easymesh/easymesh-scanner.l Visa fil

@@ -62,6 +62,21 @@ rz { return token::T_ROTATEZ; }
tax { return token::T_TAPERX; } tax { return token::T_TAPERX; }
tay { return token::T_TAPERY; } tay { return token::T_TAPERY; }
taz { return token::T_TAPERZ; } taz { return token::T_TAPERZ; }
twx { return token::T_TWISTX; }
twy { return token::T_TWISTY; }
twz { return token::T_TWISTZ; }
shx { return token::T_SHEARX; }
shy { return token::T_SHEARY; }
shz { return token::T_SHEARZ; }
stx { return token::T_STRETCHX; }
sty { return token::T_STRETCHY; }
stz { return token::T_STRETCHZ; }
bdxy { return token::T_BENDXY; }
bdxz { return token::T_BENDXZ; }
bdyx { return token::T_BENDYX; }
bdyz { return token::T_BENDYZ; }
bdzx { return token::T_BENDZX; }
bdzy { return token::T_BENDZY; }
sx { return token::T_SCALEX; } sx { return token::T_SCALEX; }
sy { return token::T_SCALEY; } sy { return token::T_SCALEY; }
sz { return token::T_SCALEZ; } sz { return token::T_SCALEZ; }


+ 64
- 20
src/easymesh/easymesh.cpp Visa fil

@@ -929,34 +929,78 @@ void EasyMesh::RadialJitter(float r)
} }


//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EasyMesh::TaperX(float y, float z, float xoff) void EasyMesh::TaperX(float ny, float nz, float xoff, int absolute) { DoMeshTransform(MeshTransform::Taper, Axis::X, Axis::X, ny, nz, xoff, absolute); }
{ void EasyMesh::TaperY(float nx, float nz, float yoff, int absolute) { DoMeshTransform(MeshTransform::Taper, Axis::Y, Axis::Y, nz, nx, yoff, absolute); }
/* FIXME: this code breaks normals! */ void EasyMesh::TaperZ(float nx, float ny, float zoff, int absolute) { DoMeshTransform(MeshTransform::Taper, Axis::Z, Axis::Z, nx, ny, zoff, absolute); }
for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
{
m_vert[i].m1.y *= 1.f + (y * abs(m_vert[i].m1.x) + xoff);
m_vert[i].m1.z *= 1.f + (z * abs(m_vert[i].m1.x) + xoff);
}
}


//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EasyMesh::TaperY(float x, float z, float yoff) void EasyMesh::TwistX(float t, float toff) { DoMeshTransform(MeshTransform::Twist, Axis::X, Axis::X, t, t, toff, 0); }
{ void EasyMesh::TwistY(float t, float toff) { DoMeshTransform(MeshTransform::Twist, Axis::Y, Axis::Y, t, t, toff, 0); }
for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++) void EasyMesh::TwistZ(float t, float toff) { DoMeshTransform(MeshTransform::Twist, Axis::Z, Axis::Z, t, t, toff, 0); }
{ //-----------------------------------------------------------------------------
m_vert[i].m1.x *= 1.f + (x * abs(m_vert[i].m1.y) + yoff); void EasyMesh::ShearX(float ny, float nz, float xoff, int absolute) { DoMeshTransform(MeshTransform::Shear, Axis::X, Axis::X, ny, nz, xoff, absolute); }
m_vert[i].m1.z *= 1.f + (z * abs(m_vert[i].m1.y) + yoff); void EasyMesh::ShearY(float nx, float nz, float yoff, int absolute) { DoMeshTransform(MeshTransform::Shear, Axis::Y, Axis::Y, nz, nx, yoff, absolute); }
} void EasyMesh::ShearZ(float nx, float ny, float zoff, int absolute) { DoMeshTransform(MeshTransform::Shear, Axis::Z, Axis::Z, nx, ny, zoff, absolute); }
} //-----------------------------------------------------------------------------
void EasyMesh::StretchX(float ny, float nz, float xoff) { DoMeshTransform(MeshTransform::Stretch, Axis::X, Axis::X, ny, nz, xoff, 0); }
void EasyMesh::StretchY(float nx, float nz, float yoff) { DoMeshTransform(MeshTransform::Stretch, Axis::Y, Axis::Y, nz, nx, yoff, 0); }
void EasyMesh::StretchZ(float nx, float ny, float zoff) { DoMeshTransform(MeshTransform::Stretch, Axis::Z, Axis::Z, nx, ny, zoff, 0); }

//-----------------------------------------------------------------------------
void EasyMesh::BendXY(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::X, Axis::Y, t, t, toff, 0); }
void EasyMesh::BendXZ(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::X, Axis::Z, t, t, toff, 0); }
void EasyMesh::BendYX(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::Y, Axis::X, t, t, toff, 0); }
void EasyMesh::BendYZ(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::Y, Axis::Z, t, t, toff, 0); }
void EasyMesh::BendZX(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::Z, Axis::X, t, t, toff, 0); }
void EasyMesh::BendZY(float t, float toff) { DoMeshTransform(MeshTransform::Bend, Axis::Z, Axis::Y, t, t, toff, 0); }


//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EasyMesh::TaperZ(float x, float y, float zoff) void EasyMesh::DoMeshTransform(MeshTransform ct, Axis axis0, Axis axis1, float n0, float n1, float noff, int absolute)
{ {
for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++) for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
{ {
m_vert[i].m1.x *= 1.f + (x * abs(m_vert[i].m1.z) + zoff); switch (ct)
m_vert[i].m1.y *= 1.f + (y * abs(m_vert[i].m1.z) + zoff); {
case MeshTransform::Taper:
{
float value = m_vert[i].m1[axis0];
if (absolute) value = abs(value);
m_vert[i].m1[(axis0 + 1) % 3] *= max(0.f, 1.f + (n0 * value + noff));
m_vert[i].m1[(axis0 + 2) % 3] *= max(0.f, 1.f + (n1 * value + noff));
break;
}
case MeshTransform::Twist:
{
vec3 rotaxis = vec3(1.f); rotaxis[(axis0 + 1) % 3] = .0f; rotaxis[(axis0 + 2) % 3] = .0f;
m_vert[i].m1 = mat3::rotate(m_vert[i].m1[axis0] * n0 + noff, rotaxis) * m_vert[i].m1;
break;
}
case MeshTransform::Shear:
{
float value = m_vert[i].m1[axis0];
if (absolute) value = abs(value);
m_vert[i].m1[(axis0 + 1) % 3] += (n0 * value + noff);
m_vert[i].m1[(axis0 + 2) % 3] += (n1 * value + noff);
break;
}
case MeshTransform::Stretch:
{
//float value = abs(m_vert[i].m1[axis0]);
//m_vert[i].m1[(axis0 + 1) % 3] += (lol::pow(value, n0) + noff);
//m_vert[i].m1[(axis0 + 2) % 3] += (lol::pow(value, n1) + noff);
break;
}
case MeshTransform::Bend:
{
vec3 rotaxis = vec3(1.f); rotaxis[(axis1 + 1) % 3] = .0f; rotaxis[(axis1 + 2) % 3] = .0f;
m_vert[i].m1 = mat3::rotate(m_vert[i].m1[axis0] * n0 + noff, rotaxis) * m_vert[i].m1;
break;
}
}
} }
ComputeNormals(m_cursors.Last().m2, m_indices.Count() - m_cursors.Last().m2);
} }


//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------


+ 85
- 18
src/easymesh/easymesh.h Visa fil

@@ -78,6 +78,20 @@ private:
Array<int> master_list; Array<int> master_list;
}; };


struct Axis
{
enum Value
{
X,
Y,
Z
}
m_value;

inline Axis(Value v) : m_value(v) {}
inline operator Value() { return m_value; }
};

struct MeshBuildOperation struct MeshBuildOperation
{ {
enum Value enum Value
@@ -184,28 +198,81 @@ public:
- r : jitter maximum value. - r : jitter maximum value.
*/ */
void RadialJitter(float r); void RadialJitter(float r);
//TODO : twist /* [cmd:tax] multiply axis y&z by x as y *= (1.0 + (ny * x + xoff))
//TODO : bend - ny : value of n for y.
//TODO : stretch - nz : value of n for z.
//TODO : shear
/* [cmd:tax] multiply y&z by (1.0 + (n * x + xoff))
- y : value of n for y.
- z : value of n for z.
- xoff : value of xoff. - xoff : value of xoff.
- absolute (def:1) : if (1) Multiply will use an absolute x.
*/
void TaperX(float ny, float nz, float xoff, int absolute=1);
/* [cmd:tay] Same as TaperX, with Y */
void TaperY(float nx, float nz, float yoff, int absolute=1);
/* [cmd:taz] Same as TaperX, with Z */
void TaperZ(float nx, float ny, float zoff, int absolute=1);
/* [cmd:twx] Twist vertices around x axis with x as rotation value as p = (RotateX(x * t + toff) * p)
- t : Angle multiplier.
- toff : Applied offset.
*/
void TwistX(float t, float toff);
/* [cmd:twy] Same as TwistX, with Y */
void TwistY(float t, float toff);
/* [cmd:twz] Same as TwistX, with Z */
void TwistZ(float t, float toff);
/* [cmd:shx] Shear vertices using x value as shear quantity as y += (ny * x + xoff)
- ny : Value of n for y.
- nz : Value of n for z.
- xoff : Value of xoff.
- absolute (def:1) : if (1) Multiply will use an absolute x.
*/ */
void TaperX(float y, float z, float xoff); void ShearX(float ny, float nz, float xoff, int absolute=1);
/* [cmd:tay] multiply x&z by (1.0 + (n * y + yoff)) /* [cmd:shy] Same as ShearX, with Y */
- x : value of n for x. void ShearY(float nx, float nz, float yoff, int absolute=1);
- z : value of n for z. /* [cmd:shz] Same as ShearX, with Z */
- yoff : value of yoff. void ShearZ(float nx, float ny, float zoff, int absolute=1);
/* [cmd:stx] Stretch vertices using x value as stretch quantity as y += (pow(x, ny) + xoff)
- ny : Value of n for y.
- nz : Value of n for z.
- xoff : Value of xoff.
*/ */
void TaperY(float x, float z, float yoff); void StretchX(float ny, float nz, float xoff);
/* [cmd:taz] multiply x&y by (1.0 + (n * z + zoff)) /* [cmd:sty] Same as StretchX, with Y */
- x : value of n for x. void StretchY(float nx, float nz, float yoff);
- y : value of n for y. /* [cmd:stz] Same as StretchX, with Z */
- zoff : value of zoff. void StretchZ(float nx, float ny, float zoff);
/* [cmd:bdxy] Bend vertices using x as bend quantity along y axis using p = (RotateY(x * t + toff) * p)
- t : Angle multiplier.
- xoff : Applied offset.
*/ */
void TaperZ(float x, float y, float zoff); void BendXY(float t, float toff);
/* [cmd:bdxz] Same as BendXY, with X & Z */
void BendXZ(float t, float toff);
/* [cmd:bdyx] Same as BendXY, with Y & X */
void BendYX(float t, float toff);
/* [cmd:bdyz] Same as BendXY, with Y & Z */
void BendYZ(float t, float toff);
/* [cmd:bdzx] Same as BendXY, with Z & X */
void BendZX(float t, float toff);
/* [cmd:bdzy] Same as BendXY, with Z & Y */
void BendZY(float t, float toff);
private:
struct MeshTransform
{
enum Value
{
Taper,
Twist,
Bend,
Stretch,
Shear
}
m_value;

inline MeshTransform(Value v) : m_value(v) {}
inline operator Value() { return m_value; }
};

void DoMeshTransform(MeshTransform ct, Axis axis0, Axis axis1, float n0, float n1, float noff, int absolute);
public:
/* [cmd:s/sx/sy/sz] Scale vertices /* [cmd:s/sx/sy/sz] Scale vertices
- s : scale quantity. - s : scale quantity.
*/ */


+ 390
- 194
src/generated/easymesh-parser.cpp Visa fil

@@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */ /* A Bison parser, made by GNU Bison 2.4.2. */


/* Skeleton implementation for Bison LALR(1) parsers in C++ /* Skeleton implementation for Bison LALR(1) parsers in C++
Copyright (C) 2002-2011 Free Software Foundation, Inc. Copyright (C) 2002-2010 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -546,310 +546,457 @@ namespace lol {


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 129 "easymesh/easymesh-parser.y" #line 129 "easymesh/easymesh-parser.y"
{ mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); } { mc.m_mesh.TaperX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 28: case 28:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 130 "easymesh/easymesh-parser.y" #line 130 "easymesh/easymesh-parser.y"
{ mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); } { mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 29: case 29:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 131 "easymesh/easymesh-parser.y" #line 131 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, 1.0, 1.0)); } { mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 30: case 30:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 132 "easymesh/easymesh-parser.y" #line 132 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3(1.0, (yysemantic_stack_[(2) - (2)].args).f0, 1.0)); } { mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 31: case 31:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 133 "easymesh/easymesh-parser.y" #line 133 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3(1.0, 1.0, (yysemantic_stack_[(2) - (2)].args).f0)); } { mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 32: case 32:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 134 "easymesh/easymesh-parser.y" #line 134 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); } { mc.m_mesh.TwistX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 33: case 33:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 135 "easymesh/easymesh-parser.y" #line 135 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorX(); } { mc.m_mesh.TwistY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 34: case 34:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 136 "easymesh/easymesh-parser.y" #line 136 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorY(); } { mc.m_mesh.TwistZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 35: case 35:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 137 "easymesh/easymesh-parser.y" #line 137 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorZ(); } { mc.m_mesh.ShearX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 36: case 36:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 138 "easymesh/easymesh-parser.y" #line 138 "easymesh/easymesh-parser.y"
{ mc.m_mesh.RadialJitter((yysemantic_stack_[(2) - (2)].args).f0); } { mc.m_mesh.ShearX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 37: case 37:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 139 "easymesh/easymesh-parser.y" #line 139 "easymesh/easymesh-parser.y"
{ mc.m_mesh.ToggleScaleWinding(); } { mc.m_mesh.ShearY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 38: case 38:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 140 "easymesh/easymesh-parser.y" #line 140 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgUnion(); } { mc.m_mesh.ShearY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 39: case 39:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 141 "easymesh/easymesh-parser.y" #line 141 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstract(); } { mc.m_mesh.ShearZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 40: case 40:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 142 "easymesh/easymesh-parser.y" #line 142 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstractLoss(); } { mc.m_mesh.ShearZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 41: case 41:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 143 "easymesh/easymesh-parser.y" #line 143 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgAnd(); } { mc.m_mesh.StretchX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 42: case 42:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 144 "easymesh/easymesh-parser.y" #line 144 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgXor(); } { mc.m_mesh.StretchY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 43: case 43:


/* Line 677 of lalr1.cc */
#line 145 "easymesh/easymesh-parser.y"
{ mc.m_mesh.StretchZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break;

case 44:

/* Line 677 of lalr1.cc */
#line 146 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendXY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 45:

/* Line 677 of lalr1.cc */
#line 147 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendXZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 46:

/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 148 "easymesh/easymesh-parser.y" #line 148 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendYX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 47:

/* Line 677 of lalr1.cc */
#line 149 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendYZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 48:

/* Line 677 of lalr1.cc */
#line 150 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendZX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 49:

/* Line 677 of lalr1.cc */
#line 151 "easymesh/easymesh-parser.y"
{ mc.m_mesh.BendZY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 50:

/* Line 677 of lalr1.cc */
#line 152 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, 1.0, 1.0)); }
break;

case 51:

/* Line 677 of lalr1.cc */
#line 153 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3(1.0, (yysemantic_stack_[(2) - (2)].args).f0, 1.0)); }
break;

case 52:

/* Line 677 of lalr1.cc */
#line 154 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3(1.0, 1.0, (yysemantic_stack_[(2) - (2)].args).f0)); }
break;

case 53:

/* Line 677 of lalr1.cc */
#line 155 "easymesh/easymesh-parser.y"
{ mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
break;

case 54:

/* Line 677 of lalr1.cc */
#line 156 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorX(); }
break;

case 55:

/* Line 677 of lalr1.cc */
#line 157 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorY(); }
break;

case 56:

/* Line 677 of lalr1.cc */
#line 158 "easymesh/easymesh-parser.y"
{ mc.m_mesh.MirrorZ(); }
break;

case 57:

/* Line 677 of lalr1.cc */
#line 159 "easymesh/easymesh-parser.y"
{ mc.m_mesh.RadialJitter((yysemantic_stack_[(2) - (2)].args).f0); }
break;

case 58:

/* Line 677 of lalr1.cc */
#line 160 "easymesh/easymesh-parser.y"
{ mc.m_mesh.ToggleScaleWinding(); }
break;

case 59:

/* Line 677 of lalr1.cc */
#line 161 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgUnion(); }
break;

case 60:

/* Line 677 of lalr1.cc */
#line 162 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstract(); }
break;

case 61:

/* Line 677 of lalr1.cc */
#line 163 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstractLoss(); }
break;

case 62:

/* Line 677 of lalr1.cc */
#line 164 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgAnd(); }
break;

case 63:

/* Line 677 of lalr1.cc */
#line 165 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgXor(); }
break;

case 64:

/* Line 677 of lalr1.cc */
#line 169 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { mc.m_mesh.AppendCylinder((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, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, 0); } (int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, 0); }
break; break;


case 44: case 65:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 151 "easymesh/easymesh-parser.y" #line 172 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { mc.m_mesh.AppendCylinder((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, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, (int)(yysemantic_stack_[(2) - (2)].args).f6); } (int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, (int)(yysemantic_stack_[(2) - (2)].args).f6); }
break; break;


case 45: case 66:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 154 "easymesh/easymesh-parser.y" #line 175 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); } { mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
break; break;


case 46: case 67:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 155 "easymesh/easymesh-parser.y" #line 176 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); } (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 47: case 68:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 157 "easymesh/easymesh-parser.y" #line 178 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); } (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 48: case 69:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 159 "easymesh/easymesh-parser.y" #line 180 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); } { mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 49: case 70:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 160 "easymesh/easymesh-parser.y" #line 181 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); } { mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 50: case 71:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 161 "easymesh/easymesh-parser.y" #line 182 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); } { mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 51: case 72:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 162 "easymesh/easymesh-parser.y" #line 183 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, { mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
(int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); } (int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
break; break;


case 52: case 73:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 164 "easymesh/easymesh-parser.y" #line 185 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { mc.m_mesh.AppendExpandedStar((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); } (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break; break;


case 53: case 74:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 166 "easymesh/easymesh-parser.y" #line 187 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); } { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
break; break;


case 54: case 75:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 167 "easymesh/easymesh-parser.y" #line 188 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); } { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 55: case 76:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 168 "easymesh/easymesh-parser.y" #line 189 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); } { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
break; break;


case 56: case 77:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 169 "easymesh/easymesh-parser.y" #line 190 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, { 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, (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3, (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6,
(yysemantic_stack_[(2) - (2)].args).f7, (yysemantic_stack_[(2) - (2)].args).f8, (int)(yysemantic_stack_[(2) - (2)].args).f9); } (yysemantic_stack_[(2) - (2)].args).f7, (yysemantic_stack_[(2) - (2)].args).f8, (int)(yysemantic_stack_[(2) - (2)].args).f9); }
break; break;


case 57: case 78:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 174 "easymesh/easymesh-parser.y" #line 195 "easymesh/easymesh-parser.y"
{ (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); } { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
break; break;


case 58: case 79:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 175 "easymesh/easymesh-parser.y" #line 196 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 59: case 80:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 176 "easymesh/easymesh-parser.y" #line 197 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 60: case 81:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 177 "easymesh/easymesh-parser.y" #line 198 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 61: case 82:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 178 "easymesh/easymesh-parser.y" #line 199 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 62: case 83:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 179 "easymesh/easymesh-parser.y" #line 200 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 63: case 84:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 180 "easymesh/easymesh-parser.y" #line 201 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 64: case 85:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 181 "easymesh/easymesh-parser.y" #line 202 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 65: case 86:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 182 "easymesh/easymesh-parser.y" #line 203 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f8 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f8 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 66: case 87:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 183 "easymesh/easymesh-parser.y" #line 204 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f9 = (yysemantic_stack_[(2) - (2)].fval); } { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f9 = (yysemantic_stack_[(2) - (2)].fval); }
break; break;


case 67: case 88:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 186 "easymesh/easymesh-parser.y" #line 207 "easymesh/easymesh-parser.y"
{ (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); } { (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
break; break;


case 68: case 89:


/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 187 "easymesh/easymesh-parser.y" #line 208 "easymesh/easymesh-parser.y"
{ (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); } { (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); }
break; break;






/* Line 677 of lalr1.cc */ /* Line 677 of lalr1.cc */
#line 853 "generated/easymesh-parser.cpp" #line 1000 "generated/easymesh-parser.cpp"
default: default:
break; break;
} }
@@ -1054,22 +1201,25 @@ namespace lol {


/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
const signed char EasyMeshParser::yypact_ninf_ = -10; const signed char EasyMeshParser::yypact_ninf_ = -69;
const signed char const signed char
EasyMeshParser::yypact_[] = EasyMeshParser::yypact_[] =
{ {
-3, 29, 31, 16, 16, 16, 16, -10, 16, 16, 60, -40, -23, -47, -47, -47, -47, -47, -47, -47,
16, 16, -10, 16, 16, 16, 16, -10, 16, 16, -47, -47, -69, -47, -47, -47, -47, -47, -47, -47,
-10, 16, -10, -10, -10, -10, -10, 16, 16, 16, -47, -47, -69, -47, -47, -47, -47, -47, -47, -47,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, -47, -47, -69, -47, -47, -69, -47, -69, -69, -69,
16, -10, 42, 50, -3, -3, 83, -10, -10, -10, -69, -69, -47, -47, -47, -47, -47, -47, -47, -47,
-10, -10, -10, 16, 16, 16, 16, -10, -10, -10, -47, -47, -47, -47, -47, -47, -69, 4, 6, 60,
-10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 60, 119, -69, -69, -69, -69, -69, -69, -47, -47,
-10, -10, -10, -10, -10, -10, -10, 16, 16, 16, -47, -47, -69, -69, -69, -69, -69, -69, -47, -69,
-10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -69, -47, -69, -69, -69, -69, -69, -69, -69, -47,
-10, 16, 16, 16, 16, -10, -10, -10, -10, -10, -69, -69, -47, -69, -69, -69, -69, -69, -69, -69,
5, -10, -10, -10, -10, -10, -10, -10, -10, -10, -47, -69, -69, -47, -69, -69, -69, -69, -69, -69,
-10, -10, -10, -10 -69, -69, -69, -47, -47, -47, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -47, -47, -47,
-47, -69, -69, -69, -69, -69, -53, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69
}; };


/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@@ -1078,36 +1228,39 @@ namespace lol {
const unsigned char const unsigned char
EasyMeshParser::yydefact_[] = EasyMeshParser::yydefact_[] =
{ {
0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
37, 0, 38, 39, 40, 41, 42, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 58, 0, 59, 60, 61,
0, 7, 0, 0, 3, 0, 5, 9, 11, 12, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
13, 67, 15, 0, 0, 0, 0, 14, 57, 17, 0, 0, 0, 0, 0, 0, 7, 0, 0, 3,
16, 19, 23, 26, 29, 20, 24, 27, 30, 21, 0, 5, 9, 11, 12, 13, 88, 15, 0, 0,
25, 28, 31, 22, 32, 36, 18, 0, 0, 43, 0, 0, 14, 78, 17, 16, 19, 23, 26, 27,
44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 32, 35, 36, 41, 44, 45, 50, 20, 24, 28,
55, 0, 0, 0, 0, 56, 50, 1, 2, 4, 29, 33, 37, 38, 42, 46, 47, 51, 21, 25,
0, 10, 68, 58, 59, 60, 61, 62, 63, 64, 30, 31, 34, 39, 40, 43, 48, 49, 52, 22,
65, 66, 8, 6 53, 57, 18, 0, 0, 64, 65, 66, 67, 68,
69, 70, 72, 73, 74, 75, 76, 0, 0, 0,
0, 77, 71, 1, 2, 4, 0, 10, 89, 79,
80, 81, 82, 83, 84, 85, 86, 87, 8, 6
}; };


/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
const short int const short int
EasyMeshParser::yypgoto_[] = EasyMeshParser::yypgoto_[] =
{ {
-10, -10, -4, -10, -10, -10, -10, 9, -10, -10, -69, -69, -30, -69, -69, -69, -69, -50, -69, -69,
-10, 45, 25, 121, 128, 33, 26, 32, -10, -10, -69, 224, 178, 0, 176, -35, -32, -28, -69, -69,
-10, -9 -69, -68
}; };


/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
const signed char const short int
EasyMeshParser::yydefgoto_[] = EasyMeshParser::yydefgoto_[] =
{ {
-1, 42, 43, 44, 45, 113, 46, 47, 48, 49, -1, 57, 58, 59, 60, 149, 61, 62, 63, 64,
50, 54, 55, 56, 77, 78, 79, 80, 93, 94, 65, 69, 70, 71, 113, 114, 115, 116, 129, 130,
95, 58 131, 73
}; };


/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1117,46 +1270,66 @@ namespace lol {
const unsigned char const unsigned char
EasyMeshParser::yytable_[] = EasyMeshParser::yytable_[] =
{ {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 138, 139, 140, 141, 133, 78, 134, 81, 83, 148,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 141, 137, 66, 141, 122, 89, 68, 92, 94, 66,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 67, 141, 127, 68, 141, 100, 128, 103, 105, 135,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 136, 0, 141, 109, 110, 141, 66, 74, 0, 0,
99, 100, 97, 41, 102, 103, 104, 105, 61, 62, 68, 0, 0, 0, 117, 142, 143, 144, 121, 0,
98, 64, 112, 65, 66, 101, 68, 84, 69, 70, 0, 124, 0, 0, 0, 132, 0, 0, 0, 144,
51, 72, 89, 90, 53, 91, 75, 86, 106, 107, 145, 146, 147, 1, 2, 3, 4, 5, 6, 7,
108, 92, 76, 51, 52, 51, 59, 53, 0, 53, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
0, 0, 108, 109, 110, 111, 1, 2, 3, 4, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 49, 50, 51, 52, 53, 54, 55, 0, 0,
35, 36, 37, 38, 39, 40, 63, 0, 0, 57, 0, 56, 1, 2, 3, 4, 5, 6, 7, 8,
60, 67, 0, 0, 0, 0, 71, 0, 0, 73, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
81, 0, 0, 0, 85, 0, 0, 88, 82, 83, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
0, 96, 0, 87 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 72, 75, 0,
0, 79, 0, 82, 80, 0, 0, 84, 85, 0,
0, 90, 0, 93, 91, 0, 0, 95, 96, 0,
0, 101, 0, 104, 102, 0, 0, 106, 107, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 118, 119, 0, 0, 120, 123, 76, 77, 0,
125, 126, 0, 0, 0, 86, 0, 87, 88, 0,
0, 0, 0, 0, 0, 97, 0, 98, 99, 0,
0, 0, 0, 0, 0, 108, 0, 0, 0, 0,
111, 0, 0, 0, 0, 0, 112
}; };


/* YYCHECK. */ /* YYCHECK. */
const signed char const short int
EasyMeshParser::yycheck_[] = EasyMeshParser::yycheck_[] =
{ {
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 68, 69, 70, 71, 0, 5, 0, 7, 8, 62,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 78, 61, 59, 81, 49, 15, 63, 17, 18, 59,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 60, 89, 54, 63, 92, 25, 54, 27, 28, 59,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 60, -1, 100, 33, 34, 103, 59, 60, -1, -1,
44, 45, 0, 46, 53, 54, 55, 56, 3, 4, 63, -1, -1, -1, 44, 113, 114, 115, 48, -1,
0, 6, 47, 8, 9, 46, 11, 32, 13, 14, -1, 51, -1, -1, -1, 55, -1, -1, -1, 127,
44, 16, 37, 38, 48, 39, 21, 34, 77, 78, 128, 129, 130, 3, 4, 5, 6, 7, 8, 9,
79, 39, 27, 44, 45, 44, 45, 48, -1, 48, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-1, -1, 91, 92, 93, 94, 3, 4, 5, 6, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 50, 51, 52, 53, 54, 55, 56, 57, -1, -1,
37, 38, 39, 40, 41, 42, 5, -1, -1, 1, -1, 61, 3, 4, 5, 6, 7, 8, 9, 10,
2, 10, -1, -1, -1, -1, 15, -1, -1, 18, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
29, -1, -1, -1, 33, -1, -1, 36, 30, 31, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-1, 40, -1, 35 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 1, 2, -1,
-1, 5, -1, 7, 6, -1, -1, 9, 10, -1,
-1, 15, -1, 17, 16, -1, -1, 19, 20, -1,
-1, 25, -1, 27, 26, -1, -1, 29, 30, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 45, 46, -1, -1, 47, 50, 3, 4, -1,
52, 53, -1, -1, -1, 11, -1, 13, 14, -1,
-1, -1, -1, -1, -1, 21, -1, 23, 24, -1,
-1, -1, -1, -1, -1, 31, -1, -1, -1, -1,
36, -1, -1, -1, -1, -1, 42
}; };


/* STOS_[STATE-NUM] -- The (internal number of the) accessing /* STOS_[STATE-NUM] -- The (internal number of the) accessing
@@ -1168,14 +1341,17 @@ namespace lol {
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 46, 50, 51, 52, 53, 55, 56, 57, 58, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
59, 44, 45, 48, 60, 61, 62, 63, 70, 45, 52, 53, 54, 55, 56, 57, 61, 65, 66, 67,
63, 60, 60, 62, 60, 60, 60, 62, 60, 60, 68, 70, 71, 72, 73, 74, 59, 60, 63, 75,
60, 62, 60, 62, 62, 60, 60, 63, 64, 65, 76, 77, 78, 85, 60, 78, 75, 75, 77, 78,
66, 62, 63, 63, 61, 62, 64, 63, 62, 61, 76, 77, 78, 77, 76, 76, 75, 75, 75, 77,
61, 65, 66, 67, 68, 69, 62, 0, 0, 51, 78, 76, 77, 78, 77, 76, 76, 75, 75, 75,
51, 56, 70, 70, 70, 70, 70, 70, 70, 70, 77, 78, 76, 77, 78, 77, 76, 76, 75, 77,
70, 70, 47, 54 77, 75, 75, 78, 79, 80, 81, 77, 78, 78,
76, 77, 79, 78, 77, 76, 76, 80, 81, 82,
83, 84, 77, 0, 0, 66, 66, 71, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 62, 69
}; };


#if YYDEBUG #if YYDEBUG
@@ -1188,7 +1364,9 @@ namespace lol {
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 91, 93, 45 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 91, 93, 45
}; };
#endif #endif


@@ -1196,13 +1374,15 @@ namespace lol {
const unsigned char const unsigned char
EasyMeshParser::yyr1_[] = EasyMeshParser::yyr1_[] =
{ {
0, 49, 50, 51, 51, 52, 52, 53, 54, 55, 0, 64, 65, 66, 66, 67, 67, 68, 69, 70,
55, 56, 56, 56, 57, 57, 57, 57, 58, 58, 70, 71, 71, 71, 72, 72, 72, 72, 73, 73,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
59, 59, 59, 59, 59, 59, 59, 60, 61, 62, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
63, 64, 65, 66, 67, 68, 69, 70, 70 73, 73, 73, 73, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 85
}; };


/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1212,10 +1392,12 @@ namespace lol {
0, 2, 2, 1, 2, 1, 3, 1, 1, 1, 0, 2, 2, 1, 2, 1, 3, 1, 1, 1,
2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1,
2, 2, 2, 2, 2, 2, 2, 1, 2 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1, 2
}; };


#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
@@ -1225,9 +1407,12 @@ namespace lol {
const EasyMeshParser::yytname_[] = const EasyMeshParser::yytname_[] =
{ {
"T_END", "error", "$undefined", "T_COLOR", "T_BGCOLOR", "T_TRANSLATEX", "T_END", "error", "$undefined", "T_COLOR", "T_BGCOLOR", "T_TRANSLATEX",
"T_ROTATEX", "T_TAPERX", "T_SCALEX", "T_MIRRORX", "T_TRANSLATEY", "T_ROTATEX", "T_TAPERX", "T_TWISTX", "T_SHEARX", "T_STRETCHX",
"T_ROTATEY", "T_TAPERY", "T_SCALEY", "T_MIRRORY", "T_TRANSLATEZ", "T_BENDXY", "T_BENDXZ", "T_SCALEX", "T_MIRRORX", "T_TRANSLATEY",
"T_ROTATEZ", "T_TAPERZ", "T_SCALEZ", "T_MIRRORZ", "T_TRANSLATE", "T_ROTATEY", "T_TAPERY", "T_TWISTY", "T_SHEARY", "T_STRETCHY",
"T_BENDYX", "T_BENDYZ", "T_SCALEY", "T_MIRRORY", "T_TRANSLATEZ",
"T_ROTATEZ", "T_TAPERZ", "T_TWISTZ", "T_SHEARZ", "T_STRETCHZ",
"T_BENDZX", "T_BENDZY", "T_SCALEZ", "T_MIRRORZ", "T_TRANSLATE",
"T_SCALE", "T_TOGGLESCALEWINDING", "T_RADIALJITTER", "T_CSGUNION", "T_SCALE", "T_TOGGLESCALEWINDING", "T_RADIALJITTER", "T_CSGUNION",
"T_CSGSUBSTRACT", "T_CSGSUBSTRACTLOSS", "T_CSGAND", "T_CSGXOR", "T_CSGSUBSTRACT", "T_CSGSUBSTRACTLOSS", "T_CSGAND", "T_CSGXOR",
"T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX", "T_FLATCHAMFBOX", "T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX", "T_FLATCHAMFBOX",
@@ -1246,25 +1431,31 @@ namespace lol {
const EasyMeshParser::rhs_number_type const EasyMeshParser::rhs_number_type
EasyMeshParser::yyrhs_[] = EasyMeshParser::yyrhs_[] =
{ {
50, 0, -1, 51, 0, -1, 52, -1, 52, 51, 65, 0, -1, 66, 0, -1, 67, -1, 67, 66,
-1, 55, -1, 53, 51, 54, -1, 46, -1, 47, -1, 70, -1, 68, 66, 69, -1, 61, -1, 62,
-1, 56, -1, 55, 56, -1, 57, -1, 58, -1, -1, 71, -1, 70, 71, -1, 72, -1, 73, -1,
59, -1, 3, 63, -1, 3, 45, -1, 4, 63, 74, -1, 3, 78, -1, 3, 60, -1, 4, 78,
-1, 4, 45, -1, 29, 60, -1, 5, 60, -1, -1, 4, 60, -1, 44, 75, -1, 5, 75, -1,
10, 60, -1, 15, 60, -1, 20, 62, -1, 6, 15, 75, -1, 25, 75, -1, 35, 77, -1, 6,
60, -1, 11, 60, -1, 16, 60, -1, 7, 62, 75, -1, 16, 75, -1, 26, 75, -1, 7, 77,
-1, 12, 62, -1, 17, 62, -1, 8, 60, -1, -1, 7, 78, -1, 17, 77, -1, 17, 78, -1,
13, 60, -1, 18, 60, -1, 21, 62, -1, 9, 27, 77, -1, 27, 78, -1, 8, 76, -1, 18,
-1, 14, -1, 19, -1, 23, 60, -1, 22, -1, 76, -1, 28, 76, -1, 9, 77, -1, 9, 78,
24, -1, 25, -1, 26, -1, 27, -1, 28, -1, -1, 19, 77, -1, 19, 78, -1, 29, 77, -1,
30, 65, -1, 30, 66, -1, 31, 62, -1, 32, 29, 78, -1, 10, 77, -1, 20, 77, -1, 30,
63, -1, 33, 63, -1, 34, 61, -1, 35, 62, 77, -1, 11, 76, -1, 12, 76, -1, 21, 76,
-1, 42, 62, -1, 36, 64, -1, 37, 63, -1, -1, 22, 76, -1, 31, 76, -1, 32, 76, -1,
38, 62, -1, 39, 61, -1, 40, 61, -1, 41, 13, 75, -1, 23, 75, -1, 33, 75, -1, 36,
69, -1, 70, -1, 60, 70, -1, 61, 70, -1, 77, -1, 14, -1, 24, -1, 34, -1, 38, 75,
62, 70, -1, 63, 70, -1, 64, 70, -1, 65, -1, 37, -1, 39, -1, 40, -1, 41, -1, 42,
70, -1, 66, 70, -1, 67, 70, -1, 68, 70, -1, 43, -1, 45, 80, -1, 45, 81, -1, 46,
-1, 44, -1, 48, 70, -1 77, -1, 47, 78, -1, 48, 78, -1, 49, 76,
-1, 50, 77, -1, 57, 77, -1, 51, 79, -1,
52, 78, -1, 53, 77, -1, 54, 76, -1, 55,
76, -1, 56, 84, -1, 85, -1, 75, 85, -1,
76, 85, -1, 77, 85, -1, 78, 85, -1, 79,
85, -1, 80, 85, -1, 81, 85, -1, 82, 85,
-1, 83, 85, -1, 59, -1, 63, 85, -1
}; };


/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
@@ -1275,10 +1466,12 @@ namespace lol {
0, 0, 3, 6, 8, 11, 13, 17, 19, 21, 0, 0, 3, 6, 8, 11, 13, 17, 19, 21,
23, 26, 28, 30, 32, 35, 38, 41, 44, 47, 23, 26, 28, 30, 32, 35, 38, 41, 44, 47,
50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77,
80, 83, 86, 89, 91, 93, 95, 98, 100, 102, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107,
104, 106, 108, 110, 113, 116, 119, 122, 125, 128, 110, 113, 116, 119, 122, 125, 128, 131, 134, 137,
131, 134, 137, 140, 143, 146, 149, 152, 154, 157, 140, 143, 146, 149, 152, 154, 156, 158, 161, 163,
160, 163, 166, 169, 172, 175, 178, 181, 183 165, 167, 169, 171, 173, 176, 179, 182, 185, 188,
191, 194, 197, 200, 203, 206, 209, 212, 215, 217,
220, 223, 226, 229, 232, 235, 238, 241, 244, 246
}; };


/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
@@ -1289,9 +1482,11 @@ namespace lol {
99, 103, 104, 105, 109, 110, 113, 114, 120, 121, 99, 103, 104, 105, 109, 110, 113, 114, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, 144, 148, 151, 154, 155, 157, 159, 160, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
161, 162, 164, 166, 167, 168, 169, 174, 175, 176, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
177, 178, 179, 180, 181, 182, 183, 186, 187 162, 163, 164, 165, 169, 172, 175, 176, 178, 180,
181, 182, 183, 185, 187, 188, 189, 190, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 207, 208
}; };


// Print the state stack on the debug stream. // Print the state stack on the debug stream.
@@ -1335,12 +1530,12 @@ namespace lol {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 48, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 46, 2, 47, 2, 2, 2, 2, 2, 2, 2, 61, 2, 62, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1361,7 +1556,8 @@ namespace lol {
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60
}; };
if ((unsigned int) t <= yyuser_token_number_max_) if ((unsigned int) t <= yyuser_token_number_max_)
return translate_table[t]; return translate_table[t];
@@ -1370,26 +1566,26 @@ namespace lol {
} }


const int EasyMeshParser::yyeof_ = 0; const int EasyMeshParser::yyeof_ = 0;
const int EasyMeshParser::yylast_ = 163; const int EasyMeshParser::yylast_ = 266;
const int EasyMeshParser::yynnts_ = 22; const int EasyMeshParser::yynnts_ = 22;
const int EasyMeshParser::yyempty_ = -2; const int EasyMeshParser::yyempty_ = -2;
const int EasyMeshParser::yyfinal_ = 97; const int EasyMeshParser::yyfinal_ = 133;
const int EasyMeshParser::yyterror_ = 1; const int EasyMeshParser::yyterror_ = 1;
const int EasyMeshParser::yyerrcode_ = 256; const int EasyMeshParser::yyerrcode_ = 256;
const int EasyMeshParser::yyntokens_ = 49; const int EasyMeshParser::yyntokens_ = 64;


const unsigned int EasyMeshParser::yyuser_token_number_max_ = 300; const unsigned int EasyMeshParser::yyuser_token_number_max_ = 315;
const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2; const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2;




} // lol } // lol


/* Line 1053 of lalr1.cc */ /* Line 1053 of lalr1.cc */
#line 1389 "generated/easymesh-parser.cpp" #line 1585 "generated/easymesh-parser.cpp"




/* Line 1055 of lalr1.cc */ /* Line 1055 of lalr1.cc */
#line 190 "easymesh/easymesh-parser.y" #line 211 "easymesh/easymesh-parser.y"




void lol::EasyMeshParser::error(const EasyMeshParser::location_type& l, void lol::EasyMeshParser::error(const EasyMeshParser::location_type& l,


+ 57
- 42
src/generated/easymesh-parser.h Visa fil

@@ -2,7 +2,7 @@


/* Skeleton interface for Bison LALR(1) parsers in C++ /* Skeleton interface for Bison LALR(1) parsers in C++
Copyright (C) 2002-2011 Free Software Foundation, Inc. Copyright (C) 2002-2010 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -137,44 +137,59 @@ namespace lol {
T_TRANSLATEX = 260, T_TRANSLATEX = 260,
T_ROTATEX = 261, T_ROTATEX = 261,
T_TAPERX = 262, T_TAPERX = 262,
T_SCALEX = 263, T_TWISTX = 263,
T_MIRRORX = 264, T_SHEARX = 264,
T_TRANSLATEY = 265, T_STRETCHX = 265,
T_ROTATEY = 266, T_BENDXY = 266,
T_TAPERY = 267, T_BENDXZ = 267,
T_SCALEY = 268, T_SCALEX = 268,
T_MIRRORY = 269, T_MIRRORX = 269,
T_TRANSLATEZ = 270, T_TRANSLATEY = 270,
T_ROTATEZ = 271, T_ROTATEY = 271,
T_TAPERZ = 272, T_TAPERY = 272,
T_SCALEZ = 273, T_TWISTY = 273,
T_MIRRORZ = 274, T_SHEARY = 274,
T_TRANSLATE = 275, T_STRETCHY = 275,
T_SCALE = 276, T_BENDYX = 276,
T_TOGGLESCALEWINDING = 277, T_BENDYZ = 277,
T_RADIALJITTER = 278, T_SCALEY = 278,
T_CSGUNION = 279, T_MIRRORY = 279,
T_CSGSUBSTRACT = 280, T_TRANSLATEZ = 280,
T_CSGSUBSTRACTLOSS = 281, T_ROTATEZ = 281,
T_CSGAND = 282, T_TAPERZ = 282,
T_CSGXOR = 283, T_TWISTZ = 283,
T_CHAMFER = 284, T_SHEARZ = 284,
T_CYLINDER = 285, T_STRETCHZ = 285,
T_BOX = 286, T_BENDZX = 286,
T_SMOOTHCHAMFBOX = 287, T_BENDZY = 287,
T_FLATCHAMFBOX = 288, T_SCALEZ = 288,
T_SPHERE = 289, T_MIRRORZ = 289,
T_CAPSULE = 290, T_TRANSLATE = 290,
T_STAR = 291, T_SCALE = 291,
T_EXPANDEDSTAR = 292, T_TOGGLESCALEWINDING = 292,
T_DISC = 293, T_RADIALJITTER = 293,
T_TRIANGLE = 294, T_CSGUNION = 294,
T_QUAD = 295, T_CSGSUBSTRACT = 295,
T_COG = 296, T_CSGSUBSTRACTLOSS = 296,
T_TORUS = 297, T_CSGAND = 297,
T_ERROR = 298, T_CSGXOR = 298,
NUMBER = 299, T_CHAMFER = 299,
COLOR = 300 T_CYLINDER = 300,
T_BOX = 301,
T_SMOOTHCHAMFBOX = 302,
T_FLATCHAMFBOX = 303,
T_SPHERE = 304,
T_CAPSULE = 305,
T_STAR = 306,
T_EXPANDEDSTAR = 307,
T_DISC = 308,
T_TRIANGLE = 309,
T_QUAD = 310,
T_COG = 311,
T_TORUS = 312,
T_ERROR = 313,
NUMBER = 314,
COLOR = 315
}; };


}; };
@@ -261,7 +276,7 @@ namespace lol {
static const unsigned char yydefact_[]; static const unsigned char yydefact_[];


static const short int yypgoto_[]; static const short int yypgoto_[];
static const signed char yydefgoto_[]; static const short int yydefgoto_[];


/// What to do in a state. /// What to do in a state.
/// \a yytable_[yypact_[s]]: what to do in state \a s. /// \a yytable_[yypact_[s]]: what to do in state \a s.
@@ -271,7 +286,7 @@ namespace lol {
static const unsigned char yytable_[]; static const unsigned char yytable_[];
static const signed char yytable_ninf_; static const signed char yytable_ninf_;


static const signed char yycheck_[]; static const short int yycheck_[];


/// For a state, its accessing symbol. /// For a state, its accessing symbol.
static const unsigned char yystos_[]; static const unsigned char yystos_[];
@@ -348,7 +363,7 @@ namespace lol {
} // lol } // lol


/* Line 34 of lalr1.cc */ /* Line 34 of lalr1.cc */
#line 352 "generated/easymesh-parser.h" #line 367 "generated/easymesh-parser.h"








+ 228
- 138
src/generated/easymesh-scanner.cpp Visa fil

@@ -330,8 +330,8 @@ typedef unsigned char YY_CHAR;
*yy_cp = '\0'; \ *yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp; (yy_c_buf_p) = yy_cp;


#define YY_NUM_RULES 52 #define YY_NUM_RULES 67
#define YY_END_OF_BUFFER 53 #define YY_END_OF_BUFFER 68
/* This struct is not used in this scanner, /* This struct is not used in this scanner,
but its presence is necessary. */ but its presence is necessary. */
struct yy_trans_info struct yy_trans_info
@@ -339,17 +339,20 @@ struct yy_trans_info
flex_int32_t yy_verify; flex_int32_t yy_verify;
flex_int32_t yy_nxt; flex_int32_t yy_nxt;
}; };
static yyconst flex_int16_t yy_accept[83] = static yyconst flex_int16_t yy_accept[106] =
{ 0, { 0,
0, 0, 53, 51, 50, 49, 51, 51, 46, 51, 0, 0, 68, 66, 65, 64, 66, 66, 61, 66,
45, 47, 48, 51, 51, 51, 51, 17, 7, 0, 60, 62, 63, 66, 66, 66, 66, 66, 32, 7,
0, 45, 45, 0, 28, 29, 32, 0, 0, 35, 0, 0, 60, 60, 0, 43, 44, 47, 0, 0,
36, 39, 3, 0, 19, 20, 21, 22, 8, 9, 50, 51, 54, 0, 3, 0, 34, 35, 36, 37,
10, 1, 14, 15, 16, 0, 0, 4, 5, 6, 8, 9, 10, 1, 0, 0, 29, 30, 31, 0,
0, 0, 45, 0, 31, 33, 0, 0, 0, 40, 0, 0, 4, 5, 6, 0, 0, 60, 0, 46,
0, 2, 11, 12, 13, 18, 41, 30, 34, 37, 48, 0, 0, 0, 55, 0, 0, 0, 0, 2,
38, 26, 24, 23, 27, 42, 25, 0, 43, 0, 17, 18, 19, 20, 21, 22, 11, 12, 13, 33,
44, 0 14, 15, 16, 56, 45, 49, 52, 53, 23, 24,
25, 26, 27, 28, 41, 39, 38, 42, 57, 40,

0, 58, 0, 59, 0
} ; } ;


static yyconst flex_int32_t yy_ec[256] = static yyconst flex_int32_t yy_ec[256] =
@@ -392,70 +395,82 @@ static yyconst flex_int32_t yy_meta[35] =
1, 1, 1, 1 1, 1, 1, 1
} ; } ;


static yyconst flex_int16_t yy_base[91] = static yyconst flex_int16_t yy_base[114] =
{ 0, { 0,
0, 0, 113, 114, 114, 114, 0, 28, 30, 104, 0, 0, 135, 136, 136, 136, 0, 28, 30, 126,
32, 114, 114, 36, 27, 11, 25, 41, 35, 0, 32, 136, 136, 36, 117, 27, 11, 25, 51, 73,
103, 69, 70, 76, 114, 47, 114, 82, 94, 114, 0, 124, 53, 59, 67, 136, 55, 136, 103, 115,
46, 84, 114, 88, 114, 114, 114, 114, 114, 114, 136, 62, 105, 56, 136, 109, 136, 136, 136, 136,
114, 92, 114, 114, 114, 56, 74, 114, 114, 114, 136, 136, 136, 113, 59, 62, 136, 136, 136, 65,
0, 96, 95, 76, 114, 114, 85, 83, 76, 114, 95, 76, 136, 136, 136, 0, 117, 116, 98, 136,
70, 114, 114, 114, 114, 114, 0, 114, 114, 114, 136, 107, 105, 97, 136, 45, 68, 49, 90, 136,
114, 114, 73, 114, 114, 0, 114, 0, 0, 0, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
114, 114, 92, 91, 90, 89, 83, 70, 68, 39 136, 136, 136, 0, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 94, 136, 136, 0, 136,

0, 0, 0, 136, 136, 113, 112, 111, 110, 109,
54, 46, 39
} ; } ;


static yyconst flex_int16_t yy_def[91] = static yyconst flex_int16_t yy_def[114] =
{ 0, { 0,
82, 1, 82, 82, 82, 82, 83, 82, 82, 82, 105, 1, 105, 105, 105, 105, 106, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 84, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 107, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
85, 82, 82, 82, 82, 82, 82, 82, 82, 82, 105, 105, 105, 105, 105, 108, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 86, 82, 82, 82, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 87, 82, 88, 89, 90, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 0, 82, 82, 82, 82, 82, 82, 82, 82 105, 105, 105, 109, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 110, 105,

111, 112, 113, 105, 0, 105, 105, 105, 105, 105,
105, 105, 105
} ; } ;


static yyconst flex_int16_t yy_nxt[149] = static yyconst flex_int16_t yy_nxt[171] =
{ 0, { 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 4, 4, 5, 6, 7, 8, 9, 10, 11, 4, 4,
12, 13, 14, 4, 15, 4, 4, 4, 4, 4, 12, 13, 14, 15, 16, 4, 4, 4, 4, 4,
4, 4, 16, 4, 4, 4, 17, 18, 19, 4, 4, 4, 17, 4, 4, 4, 18, 19, 20, 4,
4, 4, 4, 4, 21, 22, 21, 22, 21, 22, 4, 4, 4, 4, 22, 23, 22, 23, 22, 23,
81, 24, 35, 36, 37, 38, 33, 46, 24, 25, 104, 25, 37, 38, 39, 40, 35, 103, 25, 26,
26, 27, 28, 29, 34, 42, 39, 40, 41, 54, 27, 28, 29, 30, 36, 102, 41, 42, 43, 22,
58, 30, 47, 31, 32, 55, 48, 49, 50, 80, 23, 31, 25, 32, 33, 44, 24, 59, 25, 25,
59, 79, 43, 44, 45, 21, 22, 23, 24, 24, 45, 57, 57, 60, 58, 25, 63, 89, 90, 46,
52, 52, 72, 53, 78, 24, 24, 63, 64, 65, 93, 94, 47, 48, 49, 50, 64, 66, 67, 68,
76, 67, 51, 20, 77, 71, 70, 73, 69, 74, 71, 72, 73, 74, 75, 76, 77, 78, 79, 91,

51, 92, 95, 52, 53, 54, 55, 81, 82, 83,
68, 75, 53, 53, 66, 62, 61, 60, 57, 56, 101, 99, 84, 56, 21, 100, 88, 96, 87, 97,
23, 23, 82, 3, 82, 82, 82, 82, 82, 82, 86, 98, 85, 58, 58, 80, 70, 69, 65, 62,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 61, 24, 34, 24, 105, 3, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105
} ; } ;


static yyconst flex_int16_t yy_chk[149] = static yyconst flex_int16_t yy_chk[171] =
{ 0, { 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 8, 8, 9, 9, 11, 11, 1, 1, 1, 1, 8, 8, 9, 9, 11, 11,
90, 11, 16, 16, 16, 17, 15, 19, 11, 14, 113, 11, 17, 17, 17, 18, 16, 112, 11, 14,
14, 14, 14, 14, 15, 18, 17, 17, 17, 26, 14, 14, 14, 14, 16, 111, 18, 18, 18, 23,
31, 14, 19, 14, 14, 26, 19, 19, 19, 89, 23, 14, 23, 14, 14, 19, 24, 27, 24, 23,
31, 88, 18, 18, 18, 22, 22, 23, 22, 23, 19, 25, 25, 27, 25, 24, 32, 66, 66, 19,
24, 24, 61, 24, 87, 22, 23, 46, 46, 46, 68, 68, 19, 19, 19, 20, 32, 34, 34, 34,
86, 85, 84, 83, 73, 59, 58, 61, 57, 61, 45, 45, 45, 46, 46, 46, 50, 50, 50, 67,

20, 67, 69, 20, 20, 20, 20, 52, 52, 52,
54, 61, 53, 52, 47, 42, 34, 32, 29, 28, 110, 109, 108, 107, 106, 96, 64, 69, 63, 69,
21, 10, 3, 82, 82, 82, 82, 82, 82, 82, 62, 69, 59, 58, 57, 51, 44, 36, 33, 30,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 29, 22, 15, 10, 3, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
82, 82, 82, 82, 82, 82, 82, 82 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105
} ; } ;


/* The intent behind this definition is that it'll catch /* The intent behind this definition is that it'll catch
@@ -504,7 +519,7 @@ typedef lol::EasyMeshParser::token_type token_type;
#define yyterminate() return token::T_END #define yyterminate() return token::T_END
#define YY_NO_UNISTD_H #define YY_NO_UNISTD_H
#define YY_USER_ACTION yylloc->columns(yyleng); #define YY_USER_ACTION yylloc->columns(yyleng);
#line 508 "generated/easymesh-scanner.cpp" #line 523 "generated/easymesh-scanner.cpp"


#define INITIAL 0 #define INITIAL 0


@@ -617,7 +632,7 @@ YY_DECL
yylloc->step(); yylloc->step();




#line 621 "generated/easymesh-scanner.cpp" #line 636 "generated/easymesh-scanner.cpp"


if ( !(yy_init) ) if ( !(yy_init) )
{ {
@@ -670,13 +685,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{ {
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 83 ) if ( yy_current_state >= 106 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp; ++yy_cp;
} }
while ( yy_current_state != 82 ); while ( yy_current_state != 105 );
yy_cp = (yy_last_accepting_cpos); yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state); yy_current_state = (yy_last_accepting_state);


@@ -764,141 +779,216 @@ YY_RULE_SETUP
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 65 "easymesh/easymesh-scanner.l" #line 65 "easymesh/easymesh-scanner.l"
{ return token::T_SCALEX; } { return token::T_TWISTX; }
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 66 "easymesh/easymesh-scanner.l" #line 66 "easymesh/easymesh-scanner.l"
{ return token::T_SCALEY; } { return token::T_TWISTY; }
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 67 "easymesh/easymesh-scanner.l" #line 67 "easymesh/easymesh-scanner.l"
{ return token::T_SCALEZ; } { return token::T_TWISTZ; }
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 68 "easymesh/easymesh-scanner.l" #line 68 "easymesh/easymesh-scanner.l"
{ return token::T_SCALE; } { return token::T_SHEARX; }
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 69 "easymesh/easymesh-scanner.l" #line 69 "easymesh/easymesh-scanner.l"
{ return token::T_TOGGLESCALEWINDING; } { return token::T_SHEARY; }
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 70 "easymesh/easymesh-scanner.l" #line 70 "easymesh/easymesh-scanner.l"
{ return token::T_MIRRORX; } { return token::T_SHEARZ; }
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 71 "easymesh/easymesh-scanner.l" #line 71 "easymesh/easymesh-scanner.l"
{ return token::T_MIRRORY; } { return token::T_STRETCHX; }
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 72 "easymesh/easymesh-scanner.l" #line 72 "easymesh/easymesh-scanner.l"
{ return token::T_MIRRORZ; } { return token::T_STRETCHY; }
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 73 "easymesh/easymesh-scanner.l" #line 73 "easymesh/easymesh-scanner.l"
{ return token::T_RADIALJITTER; } { return token::T_STRETCHZ; }
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 75 "easymesh/easymesh-scanner.l" #line 74 "easymesh/easymesh-scanner.l"
{ return token::T_CSGUNION; } { return token::T_BENDXY; }
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 76 "easymesh/easymesh-scanner.l" #line 75 "easymesh/easymesh-scanner.l"
{ return token::T_CSGSUBSTRACT; } { return token::T_BENDXZ; }
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 77 "easymesh/easymesh-scanner.l" #line 76 "easymesh/easymesh-scanner.l"
{ return token::T_CSGSUBSTRACTLOSS; } { return token::T_BENDYX; }
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 78 "easymesh/easymesh-scanner.l" #line 77 "easymesh/easymesh-scanner.l"
{ return token::T_CSGAND; } { return token::T_BENDYZ; }
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 79 "easymesh/easymesh-scanner.l" #line 78 "easymesh/easymesh-scanner.l"
{ return token::T_CSGXOR; } { return token::T_BENDZX; }
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 81 "easymesh/easymesh-scanner.l" #line 79 "easymesh/easymesh-scanner.l"
{ return token::T_BOX; } { return token::T_BENDZY; }
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 82 "easymesh/easymesh-scanner.l" #line 80 "easymesh/easymesh-scanner.l"
{ return token::T_CYLINDER; } { return token::T_SCALEX; }
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 83 "easymesh/easymesh-scanner.l" #line 81 "easymesh/easymesh-scanner.l"
{ return token::T_CAPSULE; } { return token::T_SCALEY; }
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 84 "easymesh/easymesh-scanner.l" #line 82 "easymesh/easymesh-scanner.l"
{ return token::T_COG; } { return token::T_SCALEZ; }
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 85 "easymesh/easymesh-scanner.l" #line 83 "easymesh/easymesh-scanner.l"
{ return token::T_DISC; } { return token::T_SCALE; }
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 86 "easymesh/easymesh-scanner.l" #line 84 "easymesh/easymesh-scanner.l"
{ return token::T_EXPANDEDSTAR; } { return token::T_TOGGLESCALEWINDING; }
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 87 "easymesh/easymesh-scanner.l" #line 85 "easymesh/easymesh-scanner.l"
{ return token::T_FLATCHAMFBOX; } { return token::T_MIRRORX; }
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 88 "easymesh/easymesh-scanner.l" #line 86 "easymesh/easymesh-scanner.l"
{ return token::T_QUAD; } { return token::T_MIRRORY; }
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 89 "easymesh/easymesh-scanner.l" #line 87 "easymesh/easymesh-scanner.l"
{ return token::T_STAR; } { return token::T_MIRRORZ; }
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 90 "easymesh/easymesh-scanner.l" #line 88 "easymesh/easymesh-scanner.l"
{ return token::T_SMOOTHCHAMFBOX; } { return token::T_RADIALJITTER; }
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 91 "easymesh/easymesh-scanner.l" #line 90 "easymesh/easymesh-scanner.l"
{ return token::T_SPHERE; } { return token::T_CSGUNION; }
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 92 "easymesh/easymesh-scanner.l" #line 91 "easymesh/easymesh-scanner.l"
{ return token::T_TRIANGLE; } { return token::T_CSGSUBSTRACT; }
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 92 "easymesh/easymesh-scanner.l"
{ return token::T_CSGSUBSTRACTLOSS; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 93 "easymesh/easymesh-scanner.l" #line 93 "easymesh/easymesh-scanner.l"
{ return token::T_CSGAND; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 94 "easymesh/easymesh-scanner.l"
{ return token::T_CSGXOR; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 96 "easymesh/easymesh-scanner.l"
{ return token::T_BOX; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 97 "easymesh/easymesh-scanner.l"
{ return token::T_CYLINDER; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 98 "easymesh/easymesh-scanner.l"
{ return token::T_CAPSULE; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 99 "easymesh/easymesh-scanner.l"
{ return token::T_COG; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 100 "easymesh/easymesh-scanner.l"
{ return token::T_DISC; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 101 "easymesh/easymesh-scanner.l"
{ return token::T_EXPANDEDSTAR; }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 102 "easymesh/easymesh-scanner.l"
{ return token::T_FLATCHAMFBOX; }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 103 "easymesh/easymesh-scanner.l"
{ return token::T_QUAD; }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 104 "easymesh/easymesh-scanner.l"
{ return token::T_STAR; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 105 "easymesh/easymesh-scanner.l"
{ return token::T_SMOOTHCHAMFBOX; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 106 "easymesh/easymesh-scanner.l"
{ return token::T_SPHERE; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 107 "easymesh/easymesh-scanner.l"
{ return token::T_TRIANGLE; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 108 "easymesh/easymesh-scanner.l"
{ return token::T_TORUS; } { return token::T_TORUS; }
YY_BREAK YY_BREAK
case 41: case 56:
YY_RULE_SETUP YY_RULE_SETUP
#line 95 "easymesh/easymesh-scanner.l" #line 110 "easymesh/easymesh-scanner.l"
{ {
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
yylval->u32val = 0x11000000u * (tmp >> 8) yylval->u32val = 0x11000000u * (tmp >> 8)
@@ -907,9 +997,9 @@ YY_RULE_SETUP
| 0x000000ffu; | 0x000000ffu;
return token::COLOR; } return token::COLOR; }
YY_BREAK YY_BREAK
case 42: case 57:
YY_RULE_SETUP YY_RULE_SETUP
#line 102 "easymesh/easymesh-scanner.l" #line 117 "easymesh/easymesh-scanner.l"
{ {
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
yylval->u32val = 0x11000000u * (tmp >> 12) yylval->u32val = 0x11000000u * (tmp >> 12)
@@ -918,64 +1008,64 @@ YY_RULE_SETUP
| 0x00000011u * (tmp & 0xf); | 0x00000011u * (tmp & 0xf);
return token::COLOR; } return token::COLOR; }
YY_BREAK YY_BREAK
case 43: case 58:
YY_RULE_SETUP YY_RULE_SETUP
#line 109 "easymesh/easymesh-scanner.l" #line 124 "easymesh/easymesh-scanner.l"
{ {
yylval->u32val = 0xffu yylval->u32val = 0xffu
| 0x100u * (uint32_t)std::strtol(yytext + 1, NULL, 16); | 0x100u * (uint32_t)std::strtol(yytext + 1, NULL, 16);
return token::COLOR; } return token::COLOR; }
YY_BREAK YY_BREAK
case 44: case 59:
YY_RULE_SETUP YY_RULE_SETUP
#line 113 "easymesh/easymesh-scanner.l" #line 128 "easymesh/easymesh-scanner.l"
{ {
yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16); yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16);
return token::COLOR; } return token::COLOR; }
YY_BREAK YY_BREAK
case 45: case 60:
YY_RULE_SETUP YY_RULE_SETUP
#line 116 "easymesh/easymesh-scanner.l" #line 131 "easymesh/easymesh-scanner.l"
{ {
yylval->fval = std::atof(yytext); return token::NUMBER; } yylval->fval = std::atof(yytext); return token::NUMBER; }
YY_BREAK YY_BREAK
case 46: case 61:
YY_RULE_SETUP YY_RULE_SETUP
#line 118 "easymesh/easymesh-scanner.l" #line 133 "easymesh/easymesh-scanner.l"
{ return token_type('-'); } { return token_type('-'); }
YY_BREAK YY_BREAK
case 47: case 62:
YY_RULE_SETUP YY_RULE_SETUP
#line 119 "easymesh/easymesh-scanner.l" #line 134 "easymesh/easymesh-scanner.l"
{ return token_type('['); } { return token_type('['); }
YY_BREAK YY_BREAK
case 48: case 63:
YY_RULE_SETUP YY_RULE_SETUP
#line 120 "easymesh/easymesh-scanner.l" #line 135 "easymesh/easymesh-scanner.l"
{ return token_type(']'); } { return token_type(']'); }
YY_BREAK YY_BREAK
case 49: case 64:
YY_RULE_SETUP YY_RULE_SETUP
#line 121 "easymesh/easymesh-scanner.l" #line 136 "easymesh/easymesh-scanner.l"
{ /* ignore this */ } { /* ignore this */ }
YY_BREAK YY_BREAK
case 50: case 65:
/* rule 50 can match eol */ /* rule 65 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 122 "easymesh/easymesh-scanner.l" #line 137 "easymesh/easymesh-scanner.l"
{ /* ignore this */ } { /* ignore this */ }
YY_BREAK YY_BREAK
case 51: case 66:
YY_RULE_SETUP YY_RULE_SETUP
#line 123 "easymesh/easymesh-scanner.l" #line 138 "easymesh/easymesh-scanner.l"
{ return token::T_ERROR; } { return token::T_ERROR; }
YY_BREAK YY_BREAK
case 52: case 67:
YY_RULE_SETUP YY_RULE_SETUP
#line 125 "easymesh/easymesh-scanner.l" #line 140 "easymesh/easymesh-scanner.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 979 "generated/easymesh-scanner.cpp" #line 1069 "generated/easymesh-scanner.cpp"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
yyterminate(); yyterminate();


@@ -1357,7 +1447,7 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{ {
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 83 ) if ( yy_current_state >= 106 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1385,11 +1475,11 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{ {
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 83 ) if ( yy_current_state >= 106 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 82); yy_is_jam = (yy_current_state == 105);


return yy_is_jam ? 0 : yy_current_state; return yy_is_jam ? 0 : yy_current_state;
} }
@@ -1876,7 +1966,7 @@ void EasyMeshfree (void * ptr )


#define YYTABLES_NAME "yytables" #define YYTABLES_NAME "yytables"


#line 125 "easymesh/easymesh-scanner.l" #line 140 "easymesh/easymesh-scanner.l"








+ 6
- 2
test/MeshViewerBuffer.txt Visa fil

@@ -1,7 +1,11 @@
//[sc#88f ab 4 4 4 tx 4 ab 4 4 4 tx -2 tax .4 .4 0] //[sc#88f ab 4 4 4 tx 4 ab 4 4 4 tx -2 tax .4 .4 0]
//[sc#88f ab 4 4 4] //[sc#88f ab 4 4 4]
//[sc#ff2 asph 2 4 tx 4 tax 1 1 0] //[sc#88f ab .25 1 1 tx .25 ab .25 1 1 tx .25 ab .25 1 1 tx .25 ab .25 1 1 tx .125 stx 10 0 0]
[sc#ff2 asph 2 4] [sc#ff2 scb#2ff acg 13 2 1 1 8 8 4 4 0 1 tax -2 0 0 0]
//[sc#88f ab 4 4 4 tx 4 ab 4 4 4 tx -2 shz 1 0 0 0]
//[sc#ff2 asph 4 4 shx 0 0 0 0]
//[sc#ff2 asph 4 4 tax .4 .4 0]
//[sc#ff2 asph 2 4]
//[sc#ff2 acap 1 4 4] //[sc#ff2 acap 1 4 4]
//[sc#ff2 scb#ff2 ac 10 4 4 4 0 0 1] //[sc#ff2 scb#ff2 ac 10 4 4 4 0 0 1]
//[sc#ff2 scb#ff2 ad 10 4 0] //[sc#ff2 scb#ff2 ad 10 4 0]


||||||
x
 
000:0
Laddar…
Avbryt
Spara