Changeset 1415
- Timestamp:
- May 29, 2012, 1:43:55 AM (11 years ago)
- Location:
- trunk/orbital
- Files:
-
- 10 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/orbital/Makefile.am
r1403 r1415 3 3 4 4 orbital_SOURCES = \ 5 orbital.cpp orbital.h mesh.h particlesystem.h tank.h player.h \ 6 gun.h snake.h starfield.h 5 orbital.cpp orbital.h \ 6 mesh.cpp mesh.h \ 7 particlesystem.h tank.h player.h gun.h snake.h starfield.h 7 8 nodist_orbital_SOURCES = \ 8 9 shiny.lolfx.cpp … … 10 11 orbital_LDADD = 11 12 orbital_LDFLAGS = $(top_builddir)/src/liblol.a @LOL_LIBS@ @PIPI_LIBS@ 12 orbital_DEPENDENCIES = $(top_builddir)/src/liblol.a 13 orbital_DEPENDENCIES = $(top_builddir)/src/liblol.a \ 14 generated/mesh-scanner.cpp \ 15 generated/mesh-parser.cpp 13 16 14 17 all-local: orbital$(EXEEXT) 15 18 test $(MAKE_FSELF) = no || make_fself orbital$(EXEEXT) orbital.self 16 19 17 EXTRA_DIST = $(PNG) $(WAV) 20 if TRUE 21 generated: .FORCE 22 $(MKDIR_P) generated 23 flex -o generated/mesh-scanner.cpp mesh.l 24 bison -o generated/mesh-parser.cpp -d -b generated/mesh mesh.yy 25 .FORCE: 26 endif 27 28 EXTRA_DIST = mesh.l mesh.yy 18 29 CLEANFILES = $(noinst_PROGRAMS:%$(EXEEXT)=%.self) \ 19 30 $(noinst_PROGRAMS:%$(EXEEXT)=%.elf) \ -
trunk/orbital/mesh.h
r1414 r1415 12 12 extern char const *lolfx_shiny; 13 13 14 #include "CommandParser.h"15 16 14 #if !defined __MESH_H__ 17 15 #define __MESH_H__ 18 16 19 class Mesh : public CommandParser 17 #include <string> 18 19 class Mesh 20 20 { 21 21 public: … … 25 25 {} 26 26 27 virtual void SwitchCommand(char const *&command) 28 { 29 vec4 v4; 30 vec3 v3; 31 float f1, f2, f3, f4, f5, f6, f7, f8; 32 33 const char *&p = command; 34 { 35 #define CASE(str) if (CheckCommand(str, p)) 36 CASE("scb") { p = GetArg(p, v4); SetCurColor2(v4); } 37 else CASE("sc") { p = GetArg(p, v4); SetCurColor(v4); } 38 else CASE("fl") { Flush(); } 39 else CASE("tx") { p = GetArg(p, f1); Translate(vec3(f1, 0, 0)); } 40 else CASE("ty") { p = GetArg(p, f1); Translate(vec3(0, f1, 0)); } 41 else CASE("tz") { p = GetArg(p, f1); Translate(vec3(0, 0, f1)); } 42 else CASE("t") { p = GetArg(p, v3); Translate(v3); } 43 else CASE("rx") { p = GetArg(p, f1); RotateX(f1); } 44 else CASE("ry") { p = GetArg(p, f1); RotateY(f1); } 45 else CASE("rz") { p = GetArg(p, f1); RotateZ(f1); } 46 else CASE("tax") { p = GetArg(p, f1, f2, f3); TaperX(f1, f2, f3); } 47 else CASE("tay") { p = GetArg(p, f1, f2, f3); TaperY(f1, f2, f3); } 48 else CASE("taz") { p = GetArg(p, f1, f2, f3); TaperZ(f1, f2, f3); } 49 else CASE("sx") { p = GetArg(p, f1); Scale(vec3(f1, 1, 1)); } 50 else CASE("sy") { p = GetArg(p, f1); Scale(vec3(1, f1, 1)); } 51 else CASE("sz") { p = GetArg(p, f1); Scale(vec3(1, 1, f1)); } 52 else CASE("s") { p = GetArg(p, v3); Scale(v3); } 53 else CASE("mx") { MirrorX(); } 54 else CASE("my") { MirrorY(); } 55 else CASE("mz") { MirrorZ(); } 56 else CASE("ac") { p = GetArg(p, f1, f2, f3); p = GetArg(p, f4, f5, f6); AppendCylinder((int)f1, f2, f3, f4, (int)f5, (int)f6); } 57 else CASE("ab") { p = GetArg(p, v3); AppendBox(v3); } 58 else CASE("ascb") { p = GetArg(p, v3, f1); AppendSmoothChamfBox(v3, f1); } 59 else CASE("afcb") { p = GetArg(p, v3, f1); AppendFlatChamfBox(v3, f1); } 60 else CASE("asph") { p = GetArg(p, f1); p = GetArg(p, v3); AppendSphere((int)f1, v3); } 61 else CASE("as") { p = GetArg(p, f1, f2, f3, f4, f5); AppendStar((int)f1, f2, f3, (int)f4, (int)f5); } 62 else CASE("aes") { p = GetArg(p, f1, f2, f3, f4); AppendExpandedStar((int)f1, f2, f3, f4); } 63 else CASE("ad") { p = GetArg(p, f1, f2, f3); AppendDisc((int)f1, f2, (int)f3); } 64 else CASE("at") { p = GetArg(p, f1, f2); AppendSimpleTriangle(f1, (int)f2); } 65 else CASE("aq") { p = GetArg(p, f1, f2); AppendSimpleQuad(f1, (int)f2); } 66 else CASE("acg") { p = GetArg(p, f1, f2, f3, f4); p = GetArg(p, f5, f6, f7, f8); AppendCog((int)f1, f2, f3, f4, f5, f6, f7, (int)f8); } 67 else CASE("irb") { MeshConvert(); } 68 else CASE("frb") { /* TODO */ } 69 #undef CASE 70 } 71 } 72 73 virtual void Flush() 27 void SendCommand(char const *command); 28 29 void Flush() 74 30 { 75 31 m_vert_cursor = m_vert.Count(); … … 649 605 SetCurVertColor(m_color2); 650 606 651 AppendQuad( 0, 1, 2, 3, m_vert.Count() - 4);607 AppendQuad(3, 2, 1, 0, m_vert.Count() - 4); 652 608 ComputeQuadNormals(m_quadidx.Count() - 4, 4); 653 609 }
Note: See TracChangeset
for help on using the changeset viewer.