diff --git a/Makefile b/Makefile index 2e795eb..0e96c15 100644 --- a/Makefile +++ b/Makefile @@ -111,18 +111,36 @@ portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims ## Materials #################### -build/assets/materials/static.h: assets/materials/static.skm.yaml $(TEXTURE_IMAGES) +build/assets/materials/static.h build/assets/materials/static_mat.c: assets/materials/static.skm.yaml $(TEXTURE_IMAGES) @mkdir -p $(@D) - $(SKELATOOL64) -n static -m $< -M $@ + $(SKELATOOL64) -n static -m $< -M build/assets/materials/static.h -build/assets/materials/hud.h: assets/materials/hud.skm.yaml $(TEXTURE_IMAGES) +build/assets/materials/hud.h build/assets/materials/hud_mat.c: assets/materials/hud.skm.yaml $(TEXTURE_IMAGES) @mkdir -p $(@D) - $(SKELATOOL64) -n hud -m $< -M $@ + $(SKELATOOL64) -n hud -m $< -M build/assets/materials/hud.h src/levels/level_def_gen.h: build/assets/materials/static.h build/src/scene/hud.o: build/assets/materials/hud.h +#################### +## Models +#################### +# +# Source engine scale is 64x +# + +MODEL_LIST = assets/models/cube/cube.blend \ + assets/models/portal_gun/v_portalgun.blend + +MODEL_HEADERS = $(MODEL_LIST:%.blend=build/%.h) +MODEL_OBJECTS = $(MODEL_LIST:%.blend=build/%_geo.o) + +build/assets/models/%.h build/assets/models/%_geo.c: build/assets/models/%.fbx assets/materials/objects.skm.yaml + $(SKELATOOL64) -s 2.56 -n $(<:build/assets/models/%.fbx=%) -m assets/materials/objects.skm.yaml -o $(<:%.fbx=%.h) $< + +build/src/models/models.o: $(MODEL_HEADERS) + #################### ## Test Chambers #################### @@ -169,7 +187,7 @@ $(BOOT_OBJ): $(BOOT) # without debugger -CODEOBJECTS = $(patsubst %.c, build/%.o, $(CODEFILES)) $(TEST_CHAMBER_OBJECTS) build/assets/materials/static_mat.o build/assets/materials/hud_mat.o +CODEOBJECTS = $(patsubst %.c, build/%.o, $(CODEFILES)) $(TEST_CHAMBER_OBJECTS) $(MODEL_OBJECTS) build/assets/materials/static_mat.o build/assets/materials/hud_mat.o CODEOBJECTS_NO_DEBUG = $(CODEOBJECTS) diff --git a/assets/images/cube.png b/assets/images/cube.png new file mode 100755 index 0000000..0fdd133 Binary files /dev/null and b/assets/images/cube.png differ diff --git a/assets/materials/objects.skm.yaml b/assets/materials/objects.skm.yaml new file mode 100644 index 0000000..361b1d0 --- /dev/null +++ b/assets/materials/objects.skm.yaml @@ -0,0 +1,36 @@ +materials: + cube: + gDPSetTile: + filename: + ../images/cube.png + siz: G_IM_SIZ_16b + fmt: G_IM_FMT_RGBA + s: + mirror: true + t: + mirror: true + gSPGeometryMode: + set: [G_LIGHTING, G_SHADE] + gDPSetCombineMode: + color: ["SHADE", "0", "TEXEL0", "0"] + + portal_gun_white: + gDPSetPrimColor: + r: 255 + g: 255 + b: 255 + gSPGeometryMode: + set: [G_LIGHTING, G_SHADE] + gDPSetCombineMode: + color: ["PRIMITIVE", "0", "SHADE", "0"] + + portal_gun_metal: + gDPSetPrimColor: + r: 32 + g: 32 + b: 32 + gSPGeometryMode: + set: [G_LIGHTING, G_SHADE] + gDPSetCombineMode: + color: ["PRIMITIVE", "0", "SHADE", "0"] + \ No newline at end of file diff --git a/assets/models/cube/cube.blend b/assets/models/cube/cube.blend new file mode 100644 index 0000000..6c92b40 Binary files /dev/null and b/assets/models/cube/cube.blend differ diff --git a/assets/models/portal_gun/v_portalgun.blend b/assets/models/portal_gun/v_portalgun.blend new file mode 100644 index 0000000..c4dbbfa Binary files /dev/null and b/assets/models/portal_gun/v_portalgun.blend differ diff --git a/src/models/cube.inc.h b/src/models/cube.inc.h deleted file mode 100644 index 601701e..0000000 --- a/src/models/cube.inc.h +++ /dev/null @@ -1,222 +0,0 @@ -Lights1 cube_cube_lights = gdSPDefLights1( - 0x7F, 0x7F, 0x7F, - 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); - -u64 cube_CubeTexture_rgba16[] = { - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38ca3, 0x8c63846184218421, 0x7c215ad74a535295, 0x8c638c638ca38ca3, 0x8ca394a394a394a3, - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38c63, 0x8c6384217c217c1f, 0x7c1f635b4a954253, 0x8c638c638ca38ca3, 0x8ca394a394a394a3, - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38ca3, 0x8c6384617c217c1f, 0x73df63194a954253, 0x8c638c638ca38ca3, 0x8ca394a394a394a3, - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38c63, 0x8ca384617c1f7c1f, 0x73df63194a954253, 0x8c638c638ca394a3, 0x94a394a394a394a3, - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38ca3, 0x8ca384617c217bdf, 0x73df63194a954213, 0x8c638c638ca38ca3, 0x8ca38ca394a394a3, - 0x94a394a394a394a3, 0x8c6394a394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38ca3, 0x8ca384637c2173df, 0x73dd63194a954253, 0x8c638c638c638ca3, 0x8ca38ca38ca38ca3, - 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a38ca38c638c63, 0x8ca384637c1f73df, 0x73dd63594ad74253, 0x7c218c638ca38ca3, 0x8c638ca38ca38c63, - 0x94a38ca38ca394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x94a38ca38ca38c63, 0x846184617c2173df, 0x73dd635b52d74a97, 0x5b1784618c638461, 0x842184217c217c21, - 0x94a38ca394a394a3, 0x94a394a394a394a3, 0x94a394a394a394a3, 0x8ca38ca38ca38461, 0x84617c217c2173df, 0x73df6b5b52d75319, 0x4a956b5b7c1f7c1f, 0x7bdf7bdf7bdf7bdf, - 0x8ca38ca394a394a3, 0x94a394a394a394a3, 0x94a394a38ca38ca3, 0x8ca38c6384618421, 0x7c217c217c217c1f, 0x73df6b5b53195b1b, 0x5b1952d773dd6b9b, 0x635b63595b193a55, - 0x8ca38ca394a394a3, 0x94a394a394a394a3, 0x94a394a394a38ca3, 0x8c63846184617c21, 0x7c217c217c1f741f, 0x7c1f6b9b5b19635b, 0x5b195b195b195b19, 0x5b19631963193ad9, - 0x94a38ca394a394a3, 0x94a394a394a394a3, 0x94a38ca38ca38c63, 0x846184617c217c21, 0x7c217c217c1f73df, 0x73df6b9d5b196319, 0x63195b195b195b19, 0x63196319635b3ad9, - 0x8ca38ca38ca38ca3, 0x94a394a394a394a3, 0x8ca38ca38c638461, 0x84617c217c217c21, 0x7c1f7c1f73df73dd, 0x635b5b195b195b19, 0x5b195b195b196319, 0x63196319635b3ad9, - 0x8ca38ca38ca38ca3, 0x8ca38ca394a38ca3, 0x8ca38c6384618461, 0x84217c217c217c1f, 0x7c1f7bdf6b9d5b19, 0x5b195b195b195b19, 0x5b195b195b195b19, 0x63195b19635b3ad9, - 0x8c638ca38ca38ca3, 0x8ca38ca38ca38ca3, 0x8ca3846184618421, 0x7c217c217c1f7c1f, 0x73df635b5b195b19, 0x5b195b195b195b19, 0x5b195b195b195b19, 0x5b195b1963193ad9, - 0x8c638ca38ca38ca3, 0x8ca38ca38ca38ca3, 0x8463846184617c21, 0x7c217c1f7c1f73df, 0x635b5b195b195b19, 0x5b195b195b195b19, 0x5b195b195b195b19, 0x5b195b195b193ad7, - 0x8c638ca38ca38ca3, 0x8ca38ca38ca38c63, 0x846184617c217c21, 0x7c1f7c1f73df635b, 0x5b195b195b195b19, 0x5b195b195b195b19, 0x5b195b195ad75ad7, 0x5ad752d752d73255, - 0x8c638c638c638c63, 0x8c6384638c638461, 0x84617c217c217c1f, 0x7c1f73df6b5b5b19, 0x5b195b195b195b19, 0x5b195b195b195b19, 0x5b1952d752d75295, 0x4a954a5342112211, - 0x8461842184218421, 0x7c217c217c217c21, 0x7c217c217c217c1f, 0x73df6b9d5b195b19, 0x5b195b195b195b19, 0x5b195b195b1952d7, 0x52d74a9542534211, 0x4a5352d56319635b, - 0x7c217c217c217c21, 0x7c1f7c1f73df73df, 0x741f7c217c1f741f, 0x73df63195b195b19, 0x5b195b195b195b19, 0x5b195ad752d75295, 0x425342115ad773dd, 0x846184638c638c63, - 0x7c217c1f7c1f73df, 0x73df73df73df73df, 0x73df73df7c1f73df, 0x6b5b5b195b195b19, 0x5b195b195b195b19, 0x5b1752d74a954211, 0x52957bdf8c638c63, 0x8c638c638c638ca3, - 0x5b17739d6b9b6b9b, 0x635b6b5b6b9b6b9b, 0x6b9b6b9d6b9d73dd, 0x6319631963196319, 0x5b195b195b195ad7, 0x52d74a9542116319, 0x7c218c638c638c63, 0x8c638c638ca38ca3, - 0x4a934a954a954a95, 0x4a954a954a954a97, 0x52d752d752d75b19, 0x631963195b195b19, 0x5b195b195ad752d7, 0x4a953a1163598461, 0x8c638c638c638c63, 0x8ca38ca38ca38ca3, - 0x4a934a5342534253, 0x3a53425342534ad7, 0x5b195b195b196319, 0x63195b195b195b19, 0x5b195b1952d74a95, 0x42115b1984618c63, 0x8c638c638c638c63, 0x8ca38ca38ca38ca3, - 0x7c217c1f7c1f7c1f, 0x7bdf7c1f73df52d7, 0x4a955b195b1b6319, 0x6319631963196319, 0x5b195b1952d74253, 0x4a937c218c638c63, 0x8c638c638ca38c63, 0x8c638c6184218421, - 0x8c638c638c638c63, 0x8c638c638c638421, 0x635b52d75b195b19, 0x6319631963195b19, 0x5b195ad74a953a11, 0x739d8c638c638c63, 0x8ca38ca38c638c61, 0x8c618c638c638421, - 0x8c638ca38c638c63, 0x8ca38c638c638c63, 0x7c217bdf5b195b19, 0x63195b195b195b19, 0x5b1952d74a535295, 0x84618c638c638ca3, 0x8ca38c6384618421, 0x842184218c618c63, - 0x8c638c638ca38ca3, 0x8ca38ca38c638c63, 0x7c2173dd5b196319, 0x63195b195b195b19, 0x5b1752d73a116b9b, 0x8c638c638c638ca3, 0x8ca38c6184218421, 0x842184218c618c63, - 0x8c638ca394a394a3, 0x94a38ca38ca38c63, 0x7c1f6b9d5b195b19, 0x631963195b195b19, 0x5ad74a953a117c1f, 0x8c638c638ca38ca3, 0x8c638c618c618c63, 0x8c6394a394a394a3, - 0x8c6394a394a394a3, 0x94a38c638ca38461, 0x7c1f6b9b63196319, 0x5b1963195b195b19, 0x52d74a954a538461, 0x8ca38c638ca38ca3, 0x8c638c618c618c61, 0x8c6394a394a394a3, - 0x8c6394a394a394a3, 0x94a394a38ca38461, 0x7c1f6b5b6319635b, 0x6319635b63195b19, 0x5ad74a5352d78c63, 0x8ca38c638ca38ca3, 0x8461842184218c63, 0x94a394a394a394a3, - 0x8ca394a394a394a3, 0x94a38ca38ca38421, 0x7c1f531942d74ad9, 0x4ad94ad942d942d7, 0x3a95321352d78c63, 0x8c638c638ca38ca3, 0x842184218c6194a3, 0x94a394a394a394a3, - -}; - -Vtx cube_CubeSimpleBevel_mesh_vtx_0[98] = { - {{{-73, -81, 73},0, {27, 1982},{0xB7, 0xB7, 0x49, 0xFF}}}, - {{{-73, -73, 81},0, {27, 2084},{0xB7, 0xB7, 0x49, 0xFF}}}, - {{{-81, -73, 73},0, {-75, 1982},{0xB7, 0xB7, 0x49, 0xFF}}}, - {{{-73, 73, 81},0, {27, 2084},{0xB7, 0x49, 0x49, 0xFF}}}, - {{{-73, 81, 73},0, {27, 1982},{0xB7, 0x49, 0x49, 0xFF}}}, - {{{-81, 73, 73},0, {-75, 1982},{0xB7, 0x49, 0x49, 0xFF}}}, - {{{-73, -81, -73},0, {27, 31},{0xB7, 0xB7, 0xB7, 0xFF}}}, - {{{-81, -73, -73},0, {-75, 31},{0xB7, 0xB7, 0xB7, 0xFF}}}, - {{{-73, -73, -81},0, {27, -71},{0xB7, 0xB7, 0xB7, 0xFF}}}, - {{{-73, 81, -73},0, {27, 31},{0xB7, 0x49, 0xB7, 0xFF}}}, - {{{-73, 73, -81},0, {27, -71},{0xB7, 0x49, 0xB7, 0xFF}}}, - {{{-81, 73, -73},0, {-75, 31},{0xB7, 0x49, 0xB7, 0xFF}}}, - {{{73, -81, 73},0, {1977, 1982},{0x49, 0xB7, 0x49, 0xFF}}}, - {{{81, -73, 73},0, {2079, 1982},{0x49, 0xB7, 0x49, 0xFF}}}, - {{{73, -73, 81},0, {1977, 2084},{0x49, 0xB7, 0x49, 0xFF}}}, - {{{73, 81, 73},0, {1977, 1982},{0x49, 0x49, 0x49, 0xFF}}}, - {{{73, 73, 81},0, {1977, 2084},{0x49, 0x49, 0x49, 0xFF}}}, - {{{81, 73, 73},0, {2079, 1982},{0x49, 0x49, 0x49, 0xFF}}}, - {{{73, -81, -73},0, {1977, 31},{0x49, 0xB7, 0xB7, 0xFF}}}, - {{{73, -73, -81},0, {1977, -71},{0x49, 0xB7, 0xB7, 0xFF}}}, - {{{81, -73, -73},0, {2079, 31},{0x49, 0xB7, 0xB7, 0xFF}}}, - {{{73, 81, -73},0, {1977, 31},{0x49, 0x49, 0xB7, 0xFF}}}, - {{{81, 73, -73},0, {2079, 31},{0x49, 0x49, 0xB7, 0xFF}}}, - {{{73, 73, -81},0, {1977, -71},{0x49, 0x49, 0xB7, 0xFF}}}, - {{{-73, 81, 73},0, {27, 1982},{0x0, 0x5A, 0x5A, 0xFF}}}, - {{{-73, 73, 81},0, {27, 2084},{0x0, 0x5A, 0x5A, 0xFF}}}, - {{{73, 73, 81},0, {1977, 2084},{0x0, 0x5A, 0x5A, 0xFF}}}, - {{{73, 81, 73},0, {1977, 1982},{0x0, 0x5A, 0x5A, 0xFF}}}, - {{{73, 73, 81},0, {1979, 33},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{-73, 73, 81},0, {27, 33},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{-73, -73, 81},0, {27, 1984},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{73, 73, 81},0, {1979, 33},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{-73, -73, 81},0, {27, 1984},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{73, -73, 81},0, {1979, 1984},{0x0, 0x0, 0x7F, 0xFF}}}, - {{{81, 73, -73},0, {1979, 32},{0x7F, 0x0, 0x0, 0xFF}}}, - {{{81, 73, 73},0, {29, 32},{0x7F, 0x0, 0x0, 0xFF}}}, - {{{81, -73, 73},0, {29, 1982},{0x7F, 0x0, 0x0, 0xFF}}}, - {{{81, -73, -73},0, {1979, 1982},{0x7F, 0x0, 0x0, 0xFF}}}, - {{{-73, 81, -73},0, {27, 31},{0x0, 0x7F, 0x0, 0xFF}}}, - {{{-73, 81, 73},0, {27, 1982},{0x0, 0x7F, 0x0, 0xFF}}}, - {{{73, 81, 73},0, {1977, 1982},{0x0, 0x7F, 0x0, 0xFF}}}, - {{{73, 81, -73},0, {1977, 31},{0x0, 0x7F, 0x0, 0xFF}}}, - {{{-81, 73, 73},0, {29, 32},{0x81, 0x0, 0x0, 0xFF}}}, - {{{-81, 73, -73},0, {1979, 32},{0x81, 0x0, 0x0, 0xFF}}}, - {{{-81, -73, -73},0, {1979, 1982},{0x81, 0x0, 0x0, 0xFF}}}, - {{{-81, -73, 73},0, {29, 1982},{0x81, 0x0, 0x0, 0xFF}}}, - {{{73, -73, 81},0, {1979, 1984},{0x5A, 0x0, 0x5A, 0xFF}}}, - {{{81, -73, 73},0, {2081, 1984},{0x5A, 0x0, 0x5A, 0xFF}}}, - {{{81, 73, 73},0, {2081, 33},{0x5A, 0x0, 0x5A, 0xFF}}}, - {{{73, 73, 81},0, {1979, 33},{0x5A, 0x0, 0x5A, 0xFF}}}, - {{{-73, -81, 73},0, {27, 1982},{0xA6, 0xA6, 0x0, 0xFF}}}, - {{{-81, -73, 73},0, {-75, 1982},{0xA6, 0xA6, 0x0, 0xFF}}}, - {{{-81, -73, -73},0, {-75, 31},{0xA6, 0xA6, 0x0, 0xFF}}}, - {{{-73, -81, -73},0, {27, 31},{0xA6, 0xA6, 0x0, 0xFF}}}, - {{{81, -73, -73},0, {2081, 1984},{0x5A, 0x0, 0xA6, 0xFF}}}, - {{{73, -73, -81},0, {1979, 1984},{0x5A, 0x0, 0xA6, 0xFF}}}, - {{{73, 73, -81},0, {1979, 33},{0x5A, 0x0, 0xA6, 0xFF}}}, - {{{81, 73, -73},0, {2081, 33},{0x5A, 0x0, 0xA6, 0xFF}}}, - {{{73, 81, 73},0, {1977, 1982},{0x5A, 0x5A, 0x0, 0xFF}}}, - {{{81, 73, 73},0, {2079, 1982},{0x5A, 0x5A, 0x0, 0xFF}}}, - {{{81, 73, -73},0, {2079, 31},{0x5A, 0x5A, 0x0, 0xFF}}}, - {{{73, 81, -73},0, {1977, 31},{0x5A, 0x5A, 0x0, 0xFF}}}, - {{{-73, -73, -81},0, {27, 1984},{0xA6, 0x0, 0xA6, 0xFF}}}, - {{{-81, -73, -73},0, {-75, 1984},{0xA6, 0x0, 0xA6, 0xFF}}}, - {{{-81, 73, -73},0, {-75, 33},{0xA6, 0x0, 0xA6, 0xFF}}}, - {{{-73, 73, -81},0, {27, 33},{0xA6, 0x0, 0xA6, 0xFF}}}, - {{{73, -81, -73},0, {1977, 31},{0x5A, 0xA6, 0x0, 0xFF}}}, - {{{81, -73, -73},0, {2079, 31},{0x5A, 0xA6, 0x0, 0xFF}}}, - {{{81, -73, 73},0, {2079, 1982},{0x5A, 0xA6, 0x0, 0xFF}}}, - {{{73, -81, 73},0, {1977, 1982},{0x5A, 0xA6, 0x0, 0xFF}}}, - {{{-73, 73, 81},0, {27, 33},{0xA6, 0x0, 0x5A, 0xFF}}}, - {{{-81, 73, 73},0, {-75, 33},{0xA6, 0x0, 0x5A, 0xFF}}}, - {{{-81, -73, 73},0, {-75, 1984},{0xA6, 0x0, 0x5A, 0xFF}}}, - {{{-73, -73, 81},0, {27, 1984},{0xA6, 0x0, 0x5A, 0xFF}}}, - {{{73, 81, -73},0, {1977, 31},{0x0, 0x5A, 0xA6, 0xFF}}}, - {{{73, 73, -81},0, {1977, -71},{0x0, 0x5A, 0xA6, 0xFF}}}, - {{{-73, 73, -81},0, {27, -71},{0x0, 0x5A, 0xA6, 0xFF}}}, - {{{-73, 81, -73},0, {27, 31},{0x0, 0x5A, 0xA6, 0xFF}}}, - {{{-73, -81, -73},0, {27, 31},{0x0, 0xA6, 0xA6, 0xFF}}}, - {{{-73, -73, -81},0, {27, -71},{0x0, 0xA6, 0xA6, 0xFF}}}, - {{{73, -73, -81},0, {1977, -71},{0x0, 0xA6, 0xA6, 0xFF}}}, - {{{73, -81, -73},0, {1977, 31},{0x0, 0xA6, 0xA6, 0xFF}}}, - {{{-73, 81, -73},0, {27, 31},{0xA6, 0x5A, 0x0, 0xFF}}}, - {{{-81, 73, -73},0, {-75, 31},{0xA6, 0x5A, 0x0, 0xFF}}}, - {{{-81, 73, 73},0, {-75, 1982},{0xA6, 0x5A, 0x0, 0xFF}}}, - {{{-73, 81, 73},0, {27, 1982},{0xA6, 0x5A, 0x0, 0xFF}}}, - {{{73, -81, 73},0, {1977, 1982},{0x0, 0xA6, 0x5A, 0xFF}}}, - {{{73, -73, 81},0, {1977, 2084},{0x0, 0xA6, 0x5A, 0xFF}}}, - {{{-73, -73, 81},0, {27, 2084},{0x0, 0xA6, 0x5A, 0xFF}}}, - {{{-73, -81, 73},0, {27, 1982},{0x0, 0xA6, 0x5A, 0xFF}}}, - {{{-73, 73, -81},0, {27, 33},{0x0, 0x0, 0x81, 0xFF}}}, - {{{73, 73, -81},0, {1979, 33},{0x0, 0x0, 0x81, 0xFF}}}, - {{{73, -73, -81},0, {1979, 1984},{0x0, 0x0, 0x81, 0xFF}}}, - {{{-73, -73, -81},0, {27, 1984},{0x0, 0x0, 0x81, 0xFF}}}, - {{{73, -81, -73},0, {1977, 31},{0x0, 0x81, 0x0, 0xFF}}}, - {{{73, -81, 73},0, {1977, 1982},{0x0, 0x81, 0x0, 0xFF}}}, - {{{-73, -81, 73},0, {27, 1982},{0x0, 0x81, 0x0, 0xFF}}}, - {{{-73, -81, -73},0, {27, 31},{0x0, 0x81, 0x0, 0xFF}}}, -}; - -Gfx cube_CubeSimpleBevel_mesh_tri_0[] = { - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 0, 15, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(9, 10, 11, 0), - gsSP1Triangle(12, 13, 14, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 15, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(9, 10, 11, 0), - gsSP1Triangle(9, 11, 12, 0), - gsSP1Triangle(13, 14, 15, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 31, 15, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(3, 5, 6, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(7, 9, 10, 0), - gsSP1Triangle(11, 12, 13, 0), - gsSP1Triangle(11, 13, 14, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 46, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(4, 6, 7, 0), - gsSP1Triangle(8, 9, 10, 0), - gsSP1Triangle(8, 10, 11, 0), - gsSP1Triangle(12, 13, 14, 0), - gsSP1Triangle(12, 14, 15, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 62, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(4, 6, 7, 0), - gsSP1Triangle(8, 9, 10, 0), - gsSP1Triangle(8, 10, 11, 0), - gsSP1Triangle(12, 13, 14, 0), - gsSP1Triangle(12, 14, 15, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 78, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(4, 6, 7, 0), - gsSP1Triangle(8, 9, 10, 0), - gsSP1Triangle(8, 10, 11, 0), - gsSP1Triangle(12, 13, 14, 0), - gsSP1Triangle(12, 14, 15, 0), - gsSPVertex(cube_CubeSimpleBevel_mesh_vtx_0 + 94, 4, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx mat_cube_cube[] = { - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsSPTexture(65535, 65535, 0, 0, 1), - gsDPTileSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, cube_CubeTexture_rgba16), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0), - gsDPLoadSync(), - gsDPLoadBlock(7, 0, 0, 1023, 256), - gsDPPipeSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0), - gsDPSetTileSize(0, 0, 0, 124, 124), - gsSPSetLights1(cube_cube_lights), - gsSPEndDisplayList(), -}; - -Gfx cube_CubeSimpleBevel_mesh[] = { - gsSPDisplayList(mat_cube_cube), - gsSPDisplayList(cube_CubeSimpleBevel_mesh_tri_0), - gsDPPipeSync(), - gsSPSetGeometryMode(G_LIGHTING), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), - gsSPTexture(65535, 65535, 0, 0, 0), - gsSPEndDisplayList(), -}; diff --git a/src/models/ground.h b/src/models/ground.h deleted file mode 100644 index 3644a1d..0000000 --- a/src/models/ground.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _ground_H -#define _ground_H - -#include - -extern Vtx ground_Plane_normal[]; -extern Gfx ground_model_gfx[]; - -#endif \ No newline at end of file diff --git a/src/models/ground_geo.inc.h b/src/models/ground_geo.inc.h deleted file mode 100644 index 84d9385..0000000 --- a/src/models/ground_geo.inc.h +++ /dev/null @@ -1,15 +0,0 @@ -Vtx ground_Plane_normal[] = { - {{{499, 0, 499}, 0, {0, 4096}, {0, 127, 0, 255}}}, - {{{499, 0, -499}, 0, {4096, 4096}, {0, 127, 0, 255}}}, - {{{-499, 0, -499}, 0, {4096, 0}, {0, 127, 0, 255}}}, - {{{-499, 0, 499}, 0, {0, 0}, {0, 127, 0, 255}}}, -}; - - -Gfx ground_model_gfx[] = { - // Material DefaultMaterial - // End Material DefaultMaterial - gsSPVertex(&ground_Plane_normal[0], 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; \ No newline at end of file diff --git a/src/models/models.c b/src/models/models.c index eb69b85..2acda8b 100644 --- a/src/models/models.c +++ b/src/models/models.c @@ -2,10 +2,11 @@ #include "sk64/skelatool_animator.h" -#include "shadow_caster_geo.inc.h" -#include "ground_geo.inc.h" -#include "subject_geo.inc.h" -#include "sphere_geo.inc.h" #include "portal_mask.inc.h" #include "portal_outline.inc.h" -#include "cube.inc.h" \ No newline at end of file + +#include "../../build/assets/models/cube/cube.h" +#include "../../build/assets/models/portal_gun/v_portalgun.h" + +Gfx* cube_gfx = &cube_cube_model_gfx[0]; +Gfx* v_portal_gun_gfx = &portal_gun_v_portalgun_model_gfx[0]; \ No newline at end of file diff --git a/src/models/models.h b/src/models/models.h index 2ee46f1..9e7b097 100644 --- a/src/models/models.h +++ b/src/models/models.h @@ -1,9 +1,10 @@ - -#include "shadow_caster.h" -#include "ground.h" -#include "subject.h" -#include "sphere.h" +#ifndef __MODELS_H__ +#define __MODELS_H__ extern Gfx portal_mask_Circle_mesh[]; extern Gfx portal_outline_portal_outline_mesh[]; -extern Gfx cube_CubeSimpleBevel_mesh[]; \ No newline at end of file + +extern Gfx* cube_gfx; +extern Gfx* v_portal_gun_gfx; + +#endif \ No newline at end of file diff --git a/src/models/shadow_caster.h b/src/models/shadow_caster.h deleted file mode 100644 index 785354a..0000000 --- a/src/models/shadow_caster.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _shadow_caster_H -#define _shadow_caster_H - -#include - -extern Vtx shadow_caster_ShadowCaster_normal[]; -extern Gfx shadow_caster_model_gfx[]; - -#endif \ No newline at end of file diff --git a/src/models/shadow_caster_geo.inc.h b/src/models/shadow_caster_geo.inc.h deleted file mode 100644 index d7e93b9..0000000 --- a/src/models/shadow_caster_geo.inc.h +++ /dev/null @@ -1,40 +0,0 @@ -Vtx shadow_caster_ShadowCaster_normal[] = { - {{{-100, -10, -100}, 0, {768, 2048}, {-128, 0, 0, 255}}}, - {{{-100, -10, 100}, 0, {1280, 2048}, {-128, 0, 0, 255}}}, - {{{-100, 10, 100}, 0, {1280, 1536}, {-128, 0, 0, 255}}}, - {{{-100, 10, -100}, 0, {768, 1536}, {-128, 0, 0, 255}}}, - {{{-100, 10, -100}, 0, {768, 1536}, {0, 127, 0, 255}}}, - {{{-100, 10, 100}, 0, {1280, 1536}, {0, 127, 0, 255}}}, - {{{100, 10, 100}, 0, {1280, 1024}, {0, 127, 0, 255}}}, - {{{100, 10, -100}, 0, {768, 1024}, {0, 127, 0, 255}}}, - {{{100, 10, -100}, 0, {768, 1024}, {127, 0, 0, 255}}}, - {{{100, 10, 100}, 0, {1280, 1024}, {127, 0, 0, 255}}}, - {{{100, -10, 100}, 0, {1280, 512}, {127, 0, 0, 255}}}, - {{{100, -10, -100}, 0, {768, 512}, {127, 0, 0, 255}}}, - {{{100, -10, -100}, 0, {768, 512}, {0, -128, 0, 255}}}, - {{{100, -10, 100}, 0, {1280, 512}, {0, -128, 0, 255}}}, - {{{-100, -10, 100}, 0, {1280, 0}, {0, -128, 0, 255}}}, - {{{-100, -10, -100}, 0, {768, 0}, {0, -128, 0, 255}}}, - {{{-100, 10, -100}, 0, {256, 1024}, {0, 0, -128, 255}}}, - {{{100, 10, -100}, 0, {768, 1024}, {0, 0, -128, 255}}}, - {{{100, -10, -100}, 0, {768, 512}, {0, 0, -128, 255}}}, - {{{-100, -10, -100}, 0, {256, 512}, {0, 0, -128, 255}}}, - {{{100, 10, 100}, 0, {1280, 1024}, {0, 0, 127, 255}}}, - {{{-100, 10, 100}, 0, {1792, 1024}, {0, 0, 127, 255}}}, - {{{-100, -10, 100}, 0, {1792, 512}, {0, 0, 127, 255}}}, - {{{100, -10, 100}, 0, {1280, 512}, {0, 0, 127, 255}}}, -}; - - -Gfx shadow_caster_model_gfx[] = { - // Material DefaultMaterial - // End Material DefaultMaterial - gsSPVertex(&shadow_caster_ShadowCaster_normal[0], 24, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), - gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), - gsSPEndDisplayList(), -}; diff --git a/src/models/sphere.h b/src/models/sphere.h deleted file mode 100644 index ab4f3b2..0000000 --- a/src/models/sphere.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _sphere_H -#define _sphere_H - -#include - -extern Gfx sphere_model_gfx[]; - -#endif \ No newline at end of file diff --git a/src/models/sphere_geo.inc.h b/src/models/sphere_geo.inc.h deleted file mode 100644 index 0eb46fb..0000000 --- a/src/models/sphere_geo.inc.h +++ /dev/null @@ -1,81 +0,0 @@ -Vtx sphere_Icosphere_normal[] = { - {{{0, 0, -100}, 0, {372, 2048}, {24, -73, -101, 255}}}, - {{{72, -52, -44}, 0, {558, 1725}, {24, -73, -101, 255}}}, - {{{-27, -85, -44}, 0, {186, 1725}, {24, -73, -101, 255}}}, - {{{72, -52, -44}, 0, {558, 1725}, {77, 0, -101, 255}}}, - {{{0, 0, -100}, 0, {744, 2048}, {77, 0, -101, 255}}}, - {{{72, 52, -44}, 0, {930, 1725}, {77, 0, -101, 255}}}, - {{{0, 0, -100}, 0, {1861, 2048}, {-62, -45, -101, 255}}}, - {{{-27, -85, -44}, 0, {2048, 1725}, {-62, -45, -101, 255}}}, - {{{-89, 0, -44}, 0, {1675, 1725}, {-62, -45, -101, 255}}}, - {{{0, 0, -100}, 0, {1489, 2048}, {-62, 45, -101, 255}}}, - {{{-89, 0, -44}, 0, {1675, 1725}, {-62, 45, -101, 255}}}, - {{{-27, 85, -44}, 0, {1303, 1725}, {-62, 45, -101, 255}}}, - {{{0, 0, -100}, 0, {1117, 2048}, {24, 73, -101, 255}}}, - {{{-27, 85, -44}, 0, {1303, 1725}, {24, 73, -101, 255}}}, - {{{72, 52, -44}, 0, {930, 1725}, {24, 73, -101, 255}}}, - {{{72, -52, -44}, 0, {558, 1725}, {125, 0, -24, 255}}}, - {{{72, 52, -44}, 0, {930, 1725}, {125, 0, -24, 255}}}, - {{{89, 0, 44}, 0, {744, 1403}, {125, 0, -24, 255}}}, - {{{-27, -85, -44}, 0, {186, 1725}, {38, -119, -24, 255}}}, - {{{72, -52, -44}, 0, {558, 1725}, {38, -119, -24, 255}}}, - {{{27, -85, 44}, 0, {372, 1403}, {38, -119, -24, 255}}}, - {{{-89, 0, -44}, 0, {1675, 1725}, {-101, -73, -24, 255}}}, - {{{-27, -85, -44}, 0, {2048, 1725}, {-101, -73, -24, 255}}}, - {{{-72, -52, 44}, 0, {1861, 1403}, {-101, -73, -24, 255}}}, - {{{-27, 85, -44}, 0, {1303, 1725}, {-101, 73, -24, 255}}}, - {{{-89, 0, -44}, 0, {1675, 1725}, {-101, 73, -24, 255}}}, - {{{-72, 52, 44}, 0, {1489, 1403}, {-101, 73, -24, 255}}}, - {{{72, 52, -44}, 0, {930, 1725}, {38, 119, -24, 255}}}, - {{{-27, 85, -44}, 0, {1303, 1725}, {38, 119, -24, 255}}}, - {{{27, 85, 44}, 0, {1117, 1403}, {38, 119, -24, 255}}}, - {{{72, -52, -44}, 0, {558, 1725}, {101, -73, 24, 255}}}, - {{{89, 0, 44}, 0, {744, 1403}, {101, -73, 24, 255}}}, - {{{27, -85, 44}, 0, {372, 1403}, {101, -73, 24, 255}}}, - {{{-27, -85, -44}, 0, {186, 1725}, {-38, -119, 24, 255}}}, - {{{27, -85, 44}, 0, {372, 1403}, {-38, -119, 24, 255}}}, - {{{-72, -52, 44}, 0, {0, 1403}, {-38, -119, 24, 255}}}, - {{{-89, 0, -44}, 0, {1675, 1725}, {-125, 0, 24, 255}}}, - {{{-72, -52, 44}, 0, {1861, 1403}, {-125, 0, 24, 255}}}, - {{{-72, 52, 44}, 0, {1489, 1403}, {-125, 0, 24, 255}}}, - {{{-27, 85, -44}, 0, {1303, 1725}, {-38, 119, 24, 255}}}, - {{{-72, 52, 44}, 0, {1489, 1403}, {-38, 119, 24, 255}}}, - {{{27, 85, 44}, 0, {1117, 1403}, {-38, 119, 24, 255}}}, - {{{72, 52, -44}, 0, {930, 1725}, {101, 73, 24, 255}}}, - {{{27, 85, 44}, 0, {1117, 1403}, {101, 73, 24, 255}}}, - {{{89, 0, 44}, 0, {744, 1403}, {101, 73, 24, 255}}}, - {{{27, -85, 44}, 0, {372, 1403}, {62, -45, 101, 255}}}, - {{{89, 0, 44}, 0, {744, 1403}, {62, -45, 101, 255}}}, - {{{0, 0, 100}, 0, {558, 1080}, {62, -45, 101, 255}}}, - {{{-72, -52, 44}, 0, {0, 1403}, {-24, -73, 101, 255}}}, - {{{27, -85, 44}, 0, {372, 1403}, {-24, -73, 101, 255}}}, - {{{0, 0, 100}, 0, {186, 1080}, {-24, -73, 101, 255}}}, - {{{-72, 52, 44}, 0, {1489, 1403}, {-77, 0, 101, 255}}}, - {{{-72, -52, 44}, 0, {1861, 1403}, {-77, 0, 101, 255}}}, - {{{0, 0, 100}, 0, {1675, 1080}, {-77, 0, 101, 255}}}, - {{{27, 85, 44}, 0, {1117, 1403}, {-24, 73, 101, 255}}}, - {{{-72, 52, 44}, 0, {1489, 1403}, {-24, 73, 101, 255}}}, - {{{0, 0, 100}, 0, {1303, 1080}, {-24, 73, 101, 255}}}, - {{{89, 0, 44}, 0, {744, 1403}, {62, 45, 101, 255}}}, - {{{27, 85, 44}, 0, {1117, 1403}, {62, 45, 101, 255}}}, - {{{0, 0, 100}, 0, {930, 1080}, {62, 45, 101, 255}}}, -}; - - -Gfx sphere_model_gfx[] = { - // Material DefaultMaterial - // End Material DefaultMaterial - gsSPVertex(&sphere_Icosphere_normal[0], 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0), - gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 21, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 27, 28, 29, 0), - gsSPVertex(&sphere_Icosphere_normal[30], 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0), - gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 21, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 27, 28, 29, 0), - gsSPEndDisplayList(), -}; diff --git a/src/models/subject.h b/src/models/subject.h deleted file mode 100644 index 7173106..0000000 --- a/src/models/subject.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _subject_H -#define _subject_H - -#include - -extern Gfx subject_model_gfx[]; - -#endif \ No newline at end of file diff --git a/src/models/subject_geo.inc.h b/src/models/subject_geo.inc.h deleted file mode 100644 index b69efbb..0000000 --- a/src/models/subject_geo.inc.h +++ /dev/null @@ -1,1294 +0,0 @@ -Vtx subject_Suzanne_normal[] = { - {{{46, -15, 49}, 0, {1824, 839}, {125, -1, 26, 255}}}, - {{{43, -23, 50}, 0, {1783, 840}, {93, -83, 26, 255}}}, - {{{49, -30, 42}, 0, {1761, 900}, {77, -65, 78, 255}}}, - {{{56, -15, 41}, 0, {1852, 902}, {102, 0, 76, 255}}}, - {{{-49, -30, 42}, 0, {1753, 306}, {-77, -65, 78, 255}}}, - {{{-43, -23, 50}, 0, {1777, 365}, {-93, -83, 26, 255}}}, - {{{-46, -15, 49}, 0, {1819, 364}, {-125, -1, 26, 255}}}, - {{{-56, -15, 41}, 0, {1844, 300}, {-102, 0, 76, 255}}}, - {{{54, -34, 31}, 0, {1746, 979}, {87, -70, 61, 255}}}, - {{{62, -15, 30}, 0, {1884, 973}, {111, 0, 63, 255}}}, - {{{-54, -34, 31}, 0, {1735, 227}, {-87, -70, 61, 255}}}, - {{{-62, -15, 30}, 0, {1873, 227}, {-111, 0, 63, 255}}}, - {{{35, -36, 46}, 0, {1697, 838}, {12, -96, 83, 255}}}, - {{{35, -41, 35}, 0, {1635, 881}, {14, -110, 62, 255}}}, - {{{-35, -41, 35}, 0, {1628, 330}, {-14, -110, 62, 255}}}, - {{{-35, -36, 46}, 0, {1692, 371}, {-12, -96, 83, 255}}}, - {{{35, -26, 52}, 0, {1749, 809}, {4, -123, 33, 255}}}, - {{{-35, -26, 52}, 0, {1745, 397}, {-4, -123, 33, 255}}}, - {{{27, -23, 53}, 0, {1749, 767}, {-83, -88, 38, 255}}}, - {{{20, -30, 48}, 0, {1696, 750}, {-57, -69, 90, 255}}}, - {{{-20, -30, 48}, 0, {1694, 458}, {57, -69, 90, 255}}}, - {{{-27, -23, 53}, 0, {1747, 440}, {83, -88, 38, 255}}}, - {{{15, -34, 38}, 0, {1620, 726}, {-70, -81, 69, 255}}}, - {{{-15, -34, 38}, 0, {1620, 486}, {70, -81, 69, 255}}}, - {{{14, -15, 48}, 0, {1751, 678}, {-88, 0, 92, 255}}}, - {{{7, -15, 39}, 0, {1725, 609}, {-104, 0, 74, 255}}}, - {{{-7, -15, 39}, 0, {1730, 598}, {104, 0, 74, 255}}}, - {{{-14, -15, 48}, 0, {1753, 528}, {88, 0, 92, 255}}}, - {{{24, -15, 53}, 0, {1776, 732}, {-121, -1, 41, 255}}}, - {{{-24, -15, 53}, 0, {1776, 473}, {121, -1, 41, 255}}}, - {{{27, -6, 53}, 0, {1823, 733}, {-84, 88, 36, 255}}}, - {{{20, 0, 48}, 0, {1843, 682}, {-58, 67, 92, 255}}}, - {{{-20, 0, 48}, 0, {1845, 521}, {58, 67, 92, 255}}}, - {{{-27, -6, 53}, 0, {1823, 470}, {84, 88, 36, 255}}}, - {{{15, 4, 38}, 0, {1881, 615}, {-67, 80, 73, 255}}}, - {{{-15, 4, 38}, 0, {1886, 586}, {67, 80, 73, 255}}}, - {{{35, 5, 46}, 0, {1908, 743}, {13, 94, 85, 255}}}, - {{{35, 12, 35}, 0, {1983, 726}, {15, 107, 68, 255}}}, - {{{-35, 12, 35}, 0, {1982, 470}, {-15, 107, 68, 255}}}, - {{{-35, 5, 46}, 0, {1907, 456}, {-13, 94, 85, 255}}}, - {{{35, -3, 52}, 0, {1855, 762}, {4, 124, 30, 255}}}, - {{{-35, -3, 52}, 0, {1853, 440}, {-4, 124, 30, 255}}}, - {{{43, -6, 50}, 0, {1855, 807}, {93, 83, 24, 255}}}, - {{{49, 0, 42}, 0, {1912, 833}, {77, 63, 79, 255}}}, - {{{-49, 0, 42}, 0, {1907, 366}, {-77, 63, 79, 255}}}, - {{{-43, -6, 50}, 0, {1852, 395}, {-93, 83, 24, 255}}}, - {{{54, 4, 31}, 0, {1983, 872}, {86, 68, 65, 255}}}, - {{{-54, 4, 31}, 0, {1976, 324}, {-86, 68, 65, 255}}}, - {{{44, -5, 52}, 0, {1848, 803}, {92, 83, 30, 255}}}, - {{{47, -15, 51}, 0, {1821, 832}, {124, -1, 29, 255}}}, - {{{-44, -5, 52}, 0, {1844, 400}, {-92, 83, 30, 255}}}, - {{{-47, -15, 51}, 0, {1816, 371}, {-124, -1, 29, 255}}}, - {{{35, -1, 54}, 0, {1842, 765}, {4, 119, 45, 255}}}, - {{{-35, -1, 54}, 0, {1840, 437}, {-4, 119, 45, 255}}}, - {{{26, -5, 56}, 0, {1818, 744}, {-80, 82, 55, 255}}}, - {{{-26, -5, 56}, 0, {1817, 459}, {80, 82, 55, 255}}}, - {{{22, -15, 56}, 0, {1783, 747}, {-116, -1, 52, 255}}}, - {{{-22, -15, 56}, 0, {1782, 458}, {116, -1, 52, 255}}}, - {{{26, -23, 56}, 0, {1761, 770}, {-79, -83, 55, 255}}}, - {{{-26, -23, 56}, 0, {1758, 436}, {79, -83, 55, 255}}}, - {{{35, -27, 54}, 0, {1760, 802}, {4, -119, 45, 255}}}, - {{{-35, -27, 54}, 0, {1757, 404}, {-4, -119, 45, 255}}}, - {{{44, -23, 52}, 0, {1785, 831}, {91, -84, 30, 255}}}, - {{{-44, -23, 52}, 0, {1780, 374}, {-91, -84, 30, 255}}}, - {{{35, -15, 56}, 0, {1801, 785}, {23, 0, 125, 255}}}, - {{{-35, -15, 56}, 0, {1798, 419}, {-23, 0, 125, 255}}}, - {{{17, -136, 29}, 0, {1106, 1937}, {20, -124, 20, 255}}}, - {{{16, -132, 37}, 0, {1098, 1920}, {21, -96, 81, 255}}}, - {{{0, -134, 38}, 0, {1062, 1925}, {0, -101, 78, 255}}}, - {{{0, -137, 31}, 0, {1062, 1944}, {0, -125, 26, 255}}}, - {{{-16, -132, 37}, 0, {1026, 1920}, {-21, -96, 81, 255}}}, - {{{-17, -136, 29}, 0, {1019, 1937}, {-20, -124, 20, 255}}}, - {{{32, -134, 26}, 0, {1130, 1928}, {83, -94, 18, 255}}}, - {{{23, -130, 37}, 0, {1111, 1916}, {46, -79, 89, 255}}}, - {{{-23, -130, 37}, 0, {1013, 1916}, {-46, -79, 89, 255}}}, - {{{-32, -134, 26}, 0, {995, 1928}, {-83, -94, 18, 255}}}, - {{{36, -128, 27}, 0, {1136, 1921}, {124, -18, 25, 255}}}, - {{{26, -121, 40}, 0, {1118, 1899}, {71, -27, 102, 255}}}, - {{{-26, -121, 40}, 0, {1006, 1899}, {-71, -27, 102, 255}}}, - {{{-36, -128, 27}, 0, {988, 1921}, {-124, -18, 25, 255}}}, - {{{35, -109, 31}, 0, {1154, 1891}, {124, 12, 25, 255}}}, - {{{24, -109, 42}, 0, {1122, 1874}, {72, -4, 105, 255}}}, - {{{-24, -109, 42}, 0, {1002, 1874}, {-72, -4, 105, 255}}}, - {{{-35, -109, 31}, 0, {970, 1891}, {-124, 12, 25, 255}}}, - {{{31, -83, 31}, 0, {1194, 1825}, {123, 28, 18, 255}}}, - {{{21, -84, 45}, 0, {1137, 1798}, {75, 14, 102, 255}}}, - {{{-21, -84, 45}, 0, {987, 1798}, {-75, 14, 102, 255}}}, - {{{-31, -83, 31}, 0, {930, 1825}, {-123, 28, 18, 255}}}, - {{{20, -58, 30}, 0, {1240, 1709}, {115, -49, 21, 255}}}, - {{{43, -53, 27}, 0, {1325, 1637}, {46, -119, 5, 255}}}, - {{{39, -44, 41}, 0, {1272, 1581}, {48, -66, 98, 255}}}, - {{{12, -49, 55}, 0, {1132, 1618}, {8, -24, 125, 255}}}, - {{{-39, -44, 41}, 0, {853, 1578}, {-48, -66, 98, 255}}}, - {{{-43, -53, 27}, 0, {798, 1634}, {-46, -119, 5, 255}}}, - {{{-20, -58, 30}, 0, {884, 1708}, {-115, -49, 21, 255}}}, - {{{-12, -49, 55}, 0, {993, 1617}, {-8, -24, 125, 255}}}, - {{{63, -43, 28}, 0, {1385, 1570}, {75, -101, 21, 255}}}, - {{{61, -34, 36}, 0, {1361, 1529}, {63, -51, 98, 255}}}, - {{{-61, -34, 36}, 0, {763, 1522}, {-63, -51, 98, 255}}}, - {{{-63, -43, 28}, 0, {737, 1564}, {-75, -101, 21, 255}}}, - {{{82, -24, 18}, 0, {1465, 1504}, {116, -51, -8, 255}}}, - {{{72, -19, 34}, 0, {1400, 1474}, {70, -41, 98, 255}}}, - {{{-72, -19, 34}, 0, {724, 1465}, {-70, -41, 98, 255}}}, - {{{-82, -24, 18}, 0, {656, 1494}, {-116, -51, -8, 255}}}, - {{{85, 3, 33}, 0, {1448, 1413}, {112, 54, 27, 255}}}, - {{{74, -1, 39}, 0, {1408, 1409}, {62, -18, 110, 255}}}, - {{{-74, -1, 39}, 0, {719, 1397}, {-62, -18, 110, 255}}}, - {{{-85, 3, 33}, 0, {677, 1399}, {-112, 54, 27, 255}}}, - {{{71, 8, 36}, 0, {1428, 1366}, {65, 106, 27, 255}}}, - {{{68, 1, 46}, 0, {1386, 1384}, {43, -4, 120, 255}}}, - {{{-68, 1, 46}, 0, {742, 1372}, {-43, -4, 120, 255}}}, - {{{-71, 8, 36}, 0, {700, 1352}, {-65, 106, 27, 255}}}, - {{{49, 20, 42}, 0, {1357, 1285}, {76, 100, 21, 255}}}, - {{{43, 15, 53}, 0, {1308, 1316}, {40, -3, 121, 255}}}, - {{{-43, 15, 53}, 0, {824, 1306}, {-40, -3, 121, 255}}}, - {{{-49, 20, 42}, 0, {776, 1272}, {-76, 100, 21, 255}}}, - {{{32, 36, 47}, 0, {1283, 1237}, {29, 122, 21, 255}}}, - {{{31, 24, 57}, 0, {1266, 1279}, {34, 27, 120, 255}}}, - {{{-31, 24, 57}, 0, {869, 1271}, {-34, 27, 120, 255}}}, - {{{-32, 36, 47}, 0, {853, 1227}, {-29, 122, 21, 255}}}, - {{{15, 32, 49}, 0, {1238, 1233}, {-76, 99, 24, 255}}}, - {{{20, 22, 59}, 0, {1230, 1274}, {-21, 20, 124, 255}}}, - {{{-20, 22, 59}, 0, {906, 1267}, {21, 20, 124, 255}}}, - {{{-15, 32, 49}, 0, {899, 1225}, {76, 99, 24, 255}}}, - {{{6, 9, 49}, 0, {1132, 1248}, {-101, 74, 23, 255}}}, - {{{10, 3, 58}, 0, {1146, 1316}, {-9, -3, 127, 255}}}, - {{{-10, 3, 58}, 0, {989, 1313}, {9, -3, 127, 255}}}, - {{{-6, 9, 49}, 0, {1005, 1245}, {101, 74, 23, 255}}}, - {{{0, 3, 48}, 0, {1068, 1257}, {0, 122, 36, 255}}}, - {{{0, -4, 56}, 0, {1067, 1343}, {0, -3, 127, 255}}}, - {{{16, 1, 51}, 0, {1182, 1351}, {33, -26, 120, 255}}}, - {{{24, 7, 49}, 0, {1228, 1341}, {34, -16, 122, 255}}}, - {{{-24, 7, 49}, 0, {905, 1335}, {-34, -16, 122, 255}}}, - {{{-16, 1, 51}, 0, {951, 1347}, {-33, -26, 120, 255}}}, - {{{32, 8, 48}, 0, {1260, 1347}, {17, -12, 126, 255}}}, - {{{-32, 8, 48}, 0, {872, 1340}, {-17, -12, 126, 255}}}, - {{{42, 4, 46}, 0, {1299, 1367}, {25, -1, 125, 255}}}, - {{{-42, 4, 46}, 0, {832, 1358}, {-25, -1, 125, 255}}}, - {{{60, -1, 40}, 0, {1356, 1407}, {30, -39, 117, 255}}}, - {{{-60, -1, 40}, 0, {772, 1397}, {-30, -39, 117, 255}}}, - {{{64, -9, 38}, 0, {1368, 1437}, {46, -27, 116, 255}}}, - {{{-64, -9, 38}, 0, {758, 1428}, {-46, -27, 116, 255}}}, - {{{62, -20, 38}, 0, {1360, 1478}, {56, -26, 111, 255}}}, - {{{-62, -20, 38}, 0, {766, 1470}, {-56, -26, 111, 255}}}, - {{{49, -33, 41}, 0, {1309, 1529}, {53, -48, 105, 255}}}, - {{{-49, -33, 41}, 0, {817, 1524}, {-53, -48, 105, 255}}}, - {{{37, -37, 44}, 0, {1257, 1551}, {39, -43, 113, 255}}}, - {{{-37, -37, 44}, 0, {869, 1547}, {-39, -43, 113, 255}}}, - {{{20, -30, 48}, 0, {1173, 1518}, {-17, -27, 123, 255}}}, - {{{-20, -30, 48}, 0, {955, 1516}, {17, -27, 123, 255}}}, - {{{16, -25, 49}, 0, {1154, 1490}, {-39, -21, 119, 255}}}, - {{{0, -34, 46}, 0, {1064, 1538}, {0, 1, 127, 255}}}, - {{{-16, -25, 49}, 0, {974, 1488}, {39, -21, 119, 255}}}, - {{{12, -9, 50}, 0, {1143, 1399}, {3, -25, 125, 255}}}, - {{{-12, -9, 50}, 0, {988, 1397}, {-3, -25, 125, 255}}}, - {{{0, -18, 50}, 0, {1065, 1444}, {0, -28, 124, 255}}}, - {{{13, -18, 49}, 0, {1140, 1451}, {-20, -25, 123, 255}}}, - {{{-13, -18, 49}, 0, {990, 1449}, {20, -25, 123, 255}}}, - {{{6, -127, 43}, 0, {1076, 1906}, {-3, -52, 116, 255}}}, - {{{0, -128, 42}, 0, {1062, 1908}, {0, -42, 120, 255}}}, - {{{-6, -127, 43}, 0, {1049, 1906}, {3, -52, 116, 255}}}, - {{{11, -123, 45}, 0, {1087, 1896}, {11, -41, 120, 255}}}, - {{{-11, -123, 45}, 0, {1037, 1896}, {-11, -41, 120, 255}}}, - {{{10, -111, 47}, 0, {1087, 1868}, {19, -21, 124, 255}}}, - {{{-10, -111, 47}, 0, {1037, 1868}, {-19, -21, 124, 255}}}, - {{{7, -84, 49}, 0, {1089, 1786}, {17, 0, 126, 255}}}, - {{{11, -108, 47}, 0, {1090, 1861}, {23, -7, 125, 255}}}, - {{{-11, -108, 47}, 0, {1034, 1861}, {-23, -7, 125, 255}}}, - {{{-7, -84, 49}, 0, {1035, 1786}, {-17, 0, 126, 255}}}, - {{{8, -68, 48}, 0, {1102, 1723}, {63, -55, 96, 255}}}, - {{{0, -72, 48}, 0, {1062, 1737}, {0, -58, 113, 255}}}, - {{{0, -84, 49}, 0, {1062, 1785}, {0, 0, 127, 255}}}, - {{{-8, -68, 48}, 0, {1023, 1723}, {-63, -55, 96, 255}}}, - {{{0, -107, 47}, 0, {1062, 1855}, {0, -4, 127, 255}}}, - {{{0, -116, 47}, 0, {1062, 1873}, {0, -54, 115, 255}}}, - {{{12, -62, 49}, 0, {1123, 1692}, {92, -46, 75, 255}}}, - {{{13, -62, 53}, 0, {1101, 1687}, {118, -27, 40, 255}}}, - {{{9, -66, 52}, 0, {1096, 1706}, {74, -93, 46, 255}}}, - {{{-9, -66, 52}, 0, {1029, 1706}, {-74, -93, 46, 255}}}, - {{{-13, -62, 53}, 0, {1024, 1687}, {-118, -27, 40, 255}}}, - {{{-12, -62, 49}, 0, {1002, 1692}, {-92, -46, 75, 255}}}, - {{{10, -54, 48}, 0, {1114, 1651}, {32, 44, 115, 255}}}, - {{{10, -52, 52}, 0, {1100, 1663}, {79, 99, 14, 255}}}, - {{{-10, -52, 52}, 0, {1025, 1663}, {-79, 99, 14, 255}}}, - {{{-10, -54, 48}, 0, {1011, 1651}, {-32, 44, 115, 255}}}, - {{{0, -53, 48}, 0, {1064, 1636}, {0, 72, 105, 255}}}, - {{{3, -51, 52}, 0, {1082, 1655}, {-38, 120, 19, 255}}}, - {{{-3, -51, 52}, 0, {1042, 1655}, {38, 120, 19, 255}}}, - {{{0, -59, 49}, 0, {1059, 1657}, {0, 97, 83, 255}}}, - {{{0, -58, 53}, 0, {1063, 1668}, {0, 100, 79, 255}}}, - {{{0, -71, 52}, 0, {1062, 1722}, {0, -109, 65, 255}}}, - {{{7, -64, 54}, 0, {1087, 1696}, {28, -72, 101, 255}}}, - {{{0, -68, 54}, 0, {1062, 1708}, {0, -67, 108, 255}}}, - {{{-7, -64, 54}, 0, {1038, 1696}, {-28, -72, 101, 255}}}, - {{{0, -59, 56}, 0, {1063, 1680}, {0, 14, 127, 255}}}, - {{{4, -54, 55}, 0, {1081, 1666}, {-25, 77, 98, 255}}}, - {{{-4, -54, 55}, 0, {1044, 1666}, {25, 77, 98, 255}}}, - {{{9, -55, 55}, 0, {1092, 1670}, {46, 60, 102, 255}}}, - {{{-9, -55, 55}, 0, {1033, 1670}, {-46, 60, 102, 255}}}, - {{{10, -62, 56}, 0, {1092, 1686}, {54, -23, 113, 255}}}, - {{{-10, -62, 56}, 0, {1033, 1685}, {-54, -23, 113, 255}}}, - {{{16, -63, 45}, 0, {1150, 1704}, {95, 3, 85, 255}}}, - {{{-16, -63, 45}, 0, {975, 1703}, {-95, 3, 85, 255}}}, - {{{17, -70, 45}, 0, {1145, 1742}, {82, 18, 95, 255}}}, - {{{-17, -70, 45}, 0, {979, 1741}, {-82, 18, 95, 255}}}, - {{{25, -70, 29}, 0, {1220, 1774}, {120, 41, 14, 255}}}, - {{{-25, -70, 29}, 0, {903, 1774}, {-120, 41, 14, 255}}}, - {{{23, -64, 29}, 0, {1231, 1745}, {122, 36, 13, 255}}}, - {{{-23, -64, 29}, 0, {893, 1744}, {-122, 36, 13, 255}}}, - {{{0, -116, 46}, 0, {1062, 1876}, {0, -115, 54, 255}}}, - {{{9, -113, 46}, 0, {1083, 1874}, {-14, -78, 99, 255}}}, - {{{-9, -113, 46}, 0, {1042, 1874}, {14, -78, 99, 255}}}, - {{{9, -121, 45}, 0, {1083, 1893}, {-83, 7, 96, 255}}}, - {{{-9, -121, 45}, 0, {1042, 1893}, {83, 7, 96, 255}}}, - {{{4, -126, 42}, 0, {1072, 1903}, {-47, 69, 96, 255}}}, - {{{-4, -126, 42}, 0, {1052, 1903}, {47, 69, 96, 255}}}, - {{{0, -126, 42}, 0, {1062, 1905}, {0, 82, 97, 255}}}, - {{{4, -124, 37}, 0, {1068, 1894}, {-41, 60, 104, 255}}}, - {{{0, -125, 37}, 0, {1062, 1895}, {0, 67, 108, 255}}}, - {{{-4, -124, 37}, 0, {1057, 1894}, {41, 60, 104, 255}}}, - {{{9, -120, 38}, 0, {1073, 1890}, {-86, 14, 93, 255}}}, - {{{-9, -120, 38}, 0, {1051, 1890}, {86, 14, 93, 255}}}, - {{{9, -114, 40}, 0, {1074, 1884}, {-66, -90, 62, 255}}}, - {{{-9, -114, 40}, 0, {1051, 1884}, {66, -90, 62, 255}}}, - {{{0, -117, 39}, 0, {1062, 1885}, {0, -89, 91, 255}}}, - {{{18, -23, 51}, 0, {1171, 1480}, {-2, -7, 127, 255}}}, - {{{17, -17, 52}, 0, {1163, 1448}, {21, -11, 125, 255}}}, - {{{-18, -23, 51}, 0, {958, 1477}, {2, -7, 127, 255}}}, - {{{-17, -17, 52}, 0, {966, 1445}, {-21, -11, 125, 255}}}, - {{{17, -9, 52}, 0, {1173, 1410}, {30, -13, 123, 255}}}, - {{{-17, -9, 52}, 0, {958, 1406}, {-30, -13, 123, 255}}}, - {{{21, -1, 52}, 0, {1197, 1376}, {20, -10, 125, 255}}}, - {{{-21, -1, 52}, 0, {934, 1372}, {-20, -10, 125, 255}}}, - {{{22, -28, 52}, 0, {1189, 1501}, {1, -19, 126, 255}}}, - {{{-22, -28, 52}, 0, {939, 1499}, {-1, -19, 126, 255}}}, - {{{37, -33, 48}, 0, {1252, 1524}, {25, -26, 122, 255}}}, - {{{-37, -33, 48}, 0, {874, 1520}, {-25, -26, 122, 255}}}, - {{{47, -29, 46}, 0, {1295, 1509}, {36, -5, 122, 255}}}, - {{{-47, -29, 46}, 0, {831, 1504}, {-36, -5, 122, 255}}}, - {{{57, -19, 42}, 0, {1338, 1474}, {38, -11, 121, 255}}}, - {{{-57, -19, 42}, 0, {788, 1467}, {-38, -11, 121, 255}}}, - {{{58, -10, 42}, 0, {1343, 1438}, {23, -8, 125, 255}}}, - {{{-58, -10, 42}, 0, {784, 1429}, {-23, -8, 125, 255}}}, - {{{56, -4, 43}, 0, {1336, 1412}, {39, 4, 121, 255}}}, - {{{-56, -4, 43}, 0, {792, 1403}, {-39, 4, 121, 255}}}, - {{{42, 0, 51}, 0, {1288, 1384}, {22, -14, 125, 255}}}, - {{{-42, 0, 51}, 0, {842, 1376}, {-22, -14, 125, 255}}}, - {{{33, 3, 49}, 0, {1258, 1368}, {21, 14, 125, 255}}}, - {{{-33, 3, 49}, 0, {873, 1361}, {-21, 14, 125, 255}}}, - {{{27, 2, 51}, 0, {1230, 1364}, {23, 4, 125, 255}}}, - {{{-27, 2, 51}, 0, {901, 1358}, {-23, 4, 125, 255}}}, - {{{23, -3, 49}, 0, {1209, 1389}, {64, -49, 99, 255}}}, - {{{28, 0, 50}, 0, {1232, 1375}, {39, -43, 113, 255}}}, - {{{-23, -3, 49}, 0, {922, 1384}, {-64, -49, 99, 255}}}, - {{{-28, 0, 50}, 0, {899, 1369}, {-39, -43, 113, 255}}}, - {{{33, 1, 49}, 0, {1256, 1378}, {0, -63, 111, 255}}}, - {{{-33, 1, 49}, 0, {875, 1371}, {0, -63, 111, 255}}}, - {{{41, 0, 49}, 0, {1283, 1391}, {-17, -97, 80, 255}}}, - {{{-41, 0, 49}, 0, {847, 1384}, {17, -97, 80, 255}}}, - {{{53, -5, 42}, 0, {1323, 1420}, {-24, -78, 97, 255}}}, - {{{-53, -5, 42}, 0, {805, 1412}, {24, -78, 97, 255}}}, - {{{55, -11, 41}, 0, {1330, 1441}, {-45, -16, 118, 255}}}, - {{{-55, -11, 41}, 0, {798, 1433}, {45, -16, 118, 255}}}, - {{{54, -18, 41}, 0, {1326, 1467}, {-32, 28, 120, 255}}}, - {{{-54, -18, 41}, 0, {800, 1460}, {32, 28, 120, 255}}}, - {{{46, -27, 44}, 0, {1289, 1500}, {-10, 69, 107, 255}}}, - {{{-46, -27, 44}, 0, {837, 1495}, {10, 69, 107, 255}}}, - {{{37, -30, 46}, 0, {1254, 1512}, {19, 78, 99, 255}}}, - {{{-37, -30, 46}, 0, {872, 1507}, {-19, 78, 99, 255}}}, - {{{24, -26, 49}, 0, {1198, 1493}, {54, 71, 90, 255}}}, - {{{-24, -26, 49}, 0, {930, 1489}, {-54, 71, 90, 255}}}, - {{{20, -22, 49}, 0, {1183, 1470}, {87, 38, 84, 255}}}, - {{{-20, -22, 49}, 0, {945, 1467}, {-87, 38, 84, 255}}}, - {{{19, -9, 49}, 0, {1186, 1414}, {95, -27, 80, 255}}}, - {{{-19, -9, 49}, 0, {944, 1410}, {-95, -27, 80, 255}}}, - {{{19, -16, 49}, 0, {1182, 1446}, {103, 1, 75, 255}}}, - {{{-19, -16, 49}, 0, {947, 1442}, {-103, 1, 75, 255}}}, - {{{10, 6, 35}, 0, {1132, 1161}, {-64, 110, 5, 255}}}, - {{{0, 1, 34}, 0, {1071, 1159}, {0, 112, 60, 255}}}, - {{{-10, 6, 35}, 0, {1009, 1158}, {64, 110, 5, 255}}}, - {{{19, 26, 35}, 0, {1248, 1164}, {-61, 65, -91, 255}}}, - {{{-19, 26, 35}, 0, {892, 1155}, {61, 65, -91, 255}}}, - {{{33, 29, 33}, 0, {1327, 1189}, {14, 83, -95, 255}}}, - {{{-33, 29, 33}, 0, {812, 1176}, {-14, 83, -95, 255}}}, - {{{48, 15, 29}, 0, {1417, 1252}, {39, 116, -33, 255}}}, - {{{-48, 15, 29}, 0, {717, 1236}, {-39, 116, -33, 255}}}, - {{{67, 5, 23}, 0, {1487, 1348}, {44, 116, -28, 255}}}, - {{{-67, 5, 23}, 0, {640, 1329}, {-44, 116, -28, 255}}}, - {{{79, 1, 20}, 0, {1507, 1408}, {94, 76, -39, 255}}}, - {{{-79, 1, 20}, 0, {616, 1391}, {-94, 76, -39, 255}}}, - {{{77, -23, 11}, 0, {1494, 1522}, {120, -39, -19, 255}}}, - {{{-77, -23, 11}, 0, {624, 1513}, {-120, -39, -19, 255}}}, - {{{60, -39, 15}, 0, {1429, 1603}, {73, -103, -12, 255}}}, - {{{-60, -39, 15}, 0, {691, 1599}, {-73, -103, -12, 255}}}, - {{{43, -48, 21}, 0, {1358, 1657}, {56, -114, -13, 255}}}, - {{{-43, -48, 21}, 0, {764, 1655}, {-56, -114, -13, 255}}}, - {{{0, -96, 6}, 0, {1283, 2016}, {0, -40, -121, 255}}}, - {{{0, -87, 2}, 0, {1330, 2002}, {0, -103, -75, 255}}}, - {{{17, -80, 0}, 0, {1352, 1892}, {92, -75, -45, 255}}}, - {{{12, -93, 10}, 0, {1272, 1949}, {43, -32, -116, 255}}}, - {{{-17, -80, 0}, 0, {771, 1893}, {-92, -75, -45, 255}}}, - {{{0, -87, 2}, 0, {796, 2003}, {0, -103, -75, 255}}}, - {{{0, -96, 6}, 0, {842, 2017}, {0, -40, -121, 255}}}, - {{{-12, -93, 10}, 0, {852, 1950}, {-43, -32, -116, 255}}}, - {{{0, -119, 8}, 0, {1162, 2047}, {0, -38, -122, 255}}}, - {{{14, -115, 10}, 0, {1182, 1980}, {16, -22, -124, 255}}}, - {{{0, -119, 8}, 0, {963, 2047}, {0, -38, -122, 255}}}, - {{{-14, -115, 10}, 0, {943, 1981}, {-16, -22, -124, 255}}}, - {{{0, -137, 20}, 0, {1062, 1997}, {0, -108, -67, 255}}}, - {{{16, -134, 17}, 0, {1121, 1962}, {12, -98, -80, 255}}}, - {{{-16, -134, 17}, 0, {1004, 1962}, {-12, -98, -80, 255}}}, - {{{32, -130, 13}, 0, {1142, 1937}, {71, -59, -87, 255}}}, - {{{-32, -130, 13}, 0, {982, 1937}, {-71, -59, -87, 255}}}, - {{{28, -110, 12}, 0, {1181, 1929}, {77, 2, -101, 255}}}, - {{{-28, -110, 12}, 0, {943, 1929}, {-77, 2, -101, 255}}}, - {{{24, -89, 13}, 0, {1252, 1887}, {99, -1, -80, 255}}}, - {{{-24, -89, 13}, 0, {872, 1888}, {-99, -1, -80, 255}}}, - {{{23, -74, 14}, 0, {1283, 1819}, {122, 0, -35, 255}}}, - {{{-23, -74, 14}, 0, {840, 1820}, {-122, 0, -35, 255}}}, - {{{21, -67, 17}, 0, {1289, 1780}, {124, -29, 0, 255}}}, - {{{21, -62, 21}, 0, {1276, 1747}, {122, -25, 28, 255}}}, - {{{-21, -62, 21}, 0, {847, 1746}, {-122, -25, 28, 255}}}, - {{{-21, -67, 17}, 0, {834, 1780}, {-124, -29, 0, 255}}}, - {{{20, -56, 24}, 0, {1268, 1720}, {104, -70, 22, 255}}}, - {{{-20, -56, 24}, 0, {856, 1719}, {-104, -70, 22, 255}}}, - {{{0, -32, -108}, 0, {1937, 1885}, {0, -38, -122, 255}}}, - {{{33, -34, -92}, 0, {1815, 1798}, {54, -41, -108, 255}}}, - {{{34, -54, -79}, 0, {1738, 1843}, {66, -83, -70, 255}}}, - {{{0, -59, -93}, 0, {1826, 1972}, {0, -89, -91, 255}}}, - {{{-34, -54, -79}, 0, {375, 1859}, {-66, -83, -70, 255}}}, - {{{-33, -34, -92}, 0, {289, 1817}, {-54, -41, -108, 255}}}, - {{{0, -32, -108}, 0, {161, 1923}, {0, -38, -122, 255}}}, - {{{0, -59, -93}, 0, {291, 2004}, {0, -89, -91, 255}}}, - {{{29, -70, -52}, 0, {1614, 1882}, {66, -105, -27, 255}}}, - {{{0, -77, -61}, 0, {1649, 2025}, {0, -120, -43, 255}}}, - {{{-29, -70, -52}, 0, {504, 1891}, {-66, -105, -27, 255}}}, - {{{0, -77, -61}, 0, {476, 2040}, {0, -120, -43, 255}}}, - {{{21, -78, -9}, 0, {1407, 1889}, {75, -103, -2, 255}}}, - {{{0, -85, -7}, 0, {1377, 2002}, {0, -126, -21, 255}}}, - {{{-21, -78, -9}, 0, {716, 1892}, {-75, -103, -2, 255}}}, - {{{0, -85, -7}, 0, {749, 2005}, {0, -126, -21, 255}}}, - {{{73, -44, -18}, 0, {1556, 1652}, {91, -88, 9, 255}}}, - {{{85, -16, -20}, 0, {1615, 1570}, {124, -25, 10, 255}}}, - {{{-73, -44, -18}, 0, {556, 1650}, {-91, -88, 9, 255}}}, - {{{-85, -16, -20}, 0, {494, 1562}, {-124, -25, 10, 255}}}, - {{{0, 16, -111}, 0, {2036, 1704}, {0, 40, -121, 255}}}, - {{{46, 4, -96}, 0, {1861, 1672}, {58, 25, -111, 255}}}, - {{{-46, 4, -96}, 0, {221, 1681}, {-58, 25, -111, 255}}}, - {{{0, 16, -111}, 0, {24, 1729}, {0, 40, -121, 255}}}, - {{{0, 50, 3}, 0, {1867, 1223}, {0, 105, 72, 255}}}, - {{{45, 45, -2}, 0, {1767, 1354}, {59, 93, 63, 255}}}, - {{{45, 53, -32}, 0, {1831, 1429}, {53, 116, 4, 255}}}, - {{{0, 58, -33}, 0, {1972, 1341}, {0, 127, 2, 255}}}, - {{{-45, 53, -32}, 0, {253, 1401}, {-53, 116, 4, 255}}}, - {{{-45, 45, -2}, 0, {328, 1317}, {-59, 93, 63, 255}}}, - {{{0, 50, 3}, 0, {217, 1161}, {0, 105, 72, 255}}}, - {{{0, 58, -33}, 0, {90, 1296}, {0, 127, 2, 255}}}, - {{{45, 47, -64}, 0, {1874, 1515}, {54, 102, -53, 255}}}, - {{{0, 50, -80}, 0, {2047, 1526}, {0, 106, -70, 255}}}, - {{{-45, 47, -64}, 0, {202, 1501}, {-54, 102, -53, 255}}}, - {{{0, 50, -80}, 0, {0, 1517}, {0, 106, -70, 255}}}, - {{{67, 5, 23}, 0, {1535, 1362}, {44, 116, -28, 255}}}, - {{{72, 1, 7}, 0, {1569, 1431}, {97, 79, 20, 255}}}, - {{{63, 5, 2}, 0, {1616, 1405}, {60, 99, 53, 255}}}, - {{{-72, 1, 7}, 0, {547, 1412}, {-97, 79, 20, 255}}}, - {{{-67, 5, 23}, 0, {590, 1338}, {-44, 116, -28, 255}}}, - {{{-63, 5, 2}, 0, {497, 1381}, {-60, 99, 53, 255}}}, - {{{79, 16, -13}, 0, {1669, 1481}, {95, 68, 50, 255}}}, - {{{64, 30, -20}, 0, {1732, 1447}, {83, 87, 42, 255}}}, - {{{-79, 16, -13}, 0, {436, 1463}, {-95, 68, 50, 255}}}, - {{{-64, 30, -20}, 0, {365, 1423}, {-83, 87, 42, 255}}}, - {{{79, 22, -37}, 0, {1730, 1522}, {109, 66, -3, 255}}}, - {{{64, 35, -45}, 0, {1788, 1503}, {86, 93, -7, 255}}}, - {{{-79, 22, -37}, 0, {367, 1508}, {-109, 66, -3, 255}}}, - {{{-64, 35, -45}, 0, {301, 1486}, {-86, 93, -7, 255}}}, - {{{79, 14, -61}, 0, {1759, 1580}, {111, 39, -48, 255}}}, - {{{64, 28, -70}, 0, {1816, 1569}, {82, 68, -69, 255}}}, - {{{-79, 14, -61}, 0, {333, 1573}, {-111, 39, -48, 255}}}, - {{{-64, 28, -70}, 0, {269, 1561}, {-82, 68, -69, 255}}}, - {{{77, -12, -69}, 0, {1725, 1648}, {80, -3, -99, 255}}}, - {{{61, -6, -84}, 0, {1792, 1669}, {75, -1, -103, 255}}}, - {{{-61, -6, -84}, 0, {297, 1673}, {-75, -1, -103, 255}}}, - {{{-77, -12, -69}, 0, {362, 1646}, {-80, -3, -99, 255}}}, - {{{46, 12, 17}, 0, {1626, 1302}, {50, 105, 51, 255}}}, - {{{-46, 12, 17}, 0, {491, 1264}, {-50, 105, 51, 255}}}, - {{{48, 15, 29}, 0, {1577, 1270}, {39, 116, -33, 255}}}, - {{{-48, 15, 29}, 0, {549, 1231}, {-39, 116, -33, 255}}}, - {{{0, 17, 31}, 0, {1731, 1126}, {0, 79, 100, 255}}}, - {{{0, 17, 31}, 0, {379, 1056}, {0, 79, 100, 255}}}, - {{{10, 6, 35}, 0, {1670, 1135}, {-64, 110, 5, 255}}}, - {{{19, 26, 35}, 0, {1578, 1138}, {-61, 65, -91, 255}}}, - {{{33, 29, 33}, 0, {1547, 1190}, {14, 83, -95, 255}}}, - {{{-33, 29, 33}, 0, {587, 1140}, {-14, 83, -95, 255}}}, - {{{-19, 26, 35}, 0, {555, 1078}, {61, 65, -91, 255}}}, - {{{-10, 6, 35}, 0, {449, 1070}, {64, 110, 5, 255}}}, - {{{0, 1, 34}, 0, {1679, 1089}, {0, 112, 60, 255}}}, - {{{0, 1, 34}, 0, {442, 1016}, {0, 112, 60, 255}}}, - {{{85, -7, -30}, 0, {1658, 1568}, {127, -5, 0, 255}}}, - {{{-85, -7, -30}, 0, {448, 1561}, {-127, -5, 0, 255}}}, - {{{82, -6, -46}, 0, {1698, 1598}, {114, 38, 41, 255}}}, - {{{-82, -6, -46}, 0, {407, 1592}, {-114, 38, 41, 255}}}, - {{{42, -59, -46}, 0, {1610, 1807}, {74, -102, -18, 255}}}, - {{{40, -56, -11}, 0, {1465, 1761}, {73, -102, 20, 255}}}, - {{{-42, -59, -46}, 0, {505, 1812}, {-74, -102, -18, 255}}}, - {{{-40, -56, -11}, 0, {654, 1762}, {-73, -102, 20, 255}}}, - {{{59, -51, -42}, 0, {1608, 1736}, {35, -122, -7, 255}}}, - {{{-59, -51, -42}, 0, {503, 1738}, {-35, -122, -7, 255}}}, - {{{64, -40, -68}, 0, {1714, 1727}, {51, -78, -86, 255}}}, - {{{48, -37, -80}, 0, {1757, 1765}, {69, -63, -86, 255}}}, - {{{-48, -37, -80}, 0, {351, 1777}, {-69, -63, -86, 255}}}, - {{{-64, -40, -68}, 0, {402, 1730}, {-51, -78, -86, 255}}}, - {{{102, 8, -57}, 0, {1036, 194}, {2, 111, 62, 255}}}, - {{{89, 1, -49}, 0, {885, 215}, {-36, 94, 78, 255}}}, - {{{92, -3, -47}, 0, {898, 265}, {58, -8, 113, 255}}}, - {{{101, 1, -54}, 0, {1005, 242}, {69, -8, 107, 255}}}, - {{{-92, -3, -47}, 0, {646, 269}, {-58, -8, 113, 255}}}, - {{{-89, 1, -49}, 0, {658, 218}, {36, 94, 78, 255}}}, - {{{-102, 8, -57}, 0, {506, 202}, {-2, 111, 62, 255}}}, - {{{-101, 1, -54}, 0, {538, 249}, {-69, -8, 107, 255}}}, - {{{118, 4, -64}, 0, {1173, 285}, {40, -11, 120, 255}}}, - {{{123, 11, -68}, 0, {1238, 245}, {46, 110, 46, 255}}}, - {{{-118, 4, -64}, 0, {371, 297}, {-40, -11, 120, 255}}}, - {{{-123, 11, -68}, 0, {304, 259}, {-46, 110, 46, 255}}}, - {{{126, -10, -66}, 0, {1200, 421}, {-15, -11, 126, 255}}}, - {{{135, -7, -68}, 0, {1269, 426}, {101, 22, 75, 255}}}, - {{{-126, -10, -66}, 0, {347, 435}, {15, -11, 126, 255}}}, - {{{-135, -7, -68}, 0, {278, 442}, {-101, 22, 75, 255}}}, - {{{121, -31, -66}, 0, {1124, 519}, {-3, 35, 123, 255}}}, - {{{128, -34, -68}, 0, {1154, 534}, {86, -63, 69, 255}}}, - {{{-121, -31, -66}, 0, {427, 530}, {3, 35, 123, 255}}}, - {{{-128, -34, -68}, 0, {397, 546}, {-86, -63, 69, 255}}}, - {{{103, -43, -56}, 0, {1024, 590}, {62, 35, 105, 255}}}, - {{{103, -49, -58}, 0, {1040, 619}, {60, -99, 52, 255}}}, - {{{-103, -43, -56}, 0, {529, 599}, {-62, 35, 105, 255}}}, - {{{-103, -49, -58}, 0, {513, 628}, {-60, -99, 52, 255}}}, - {{{82, -46, -39}, 0, {898, 653}, {43, 45, 111, 255}}}, - {{{77, -53, -38}, 0, {890, 698}, {-5, -82, 97, 255}}}, - {{{-82, -46, -39}, 0, {657, 659}, {-43, 45, 111, 255}}}, - {{{-77, -53, -38}, 0, {666, 704}, {5, -82, 97, 255}}}, - {{{103, -39, -62}, 0, {1035, 551}, {-21, 122, 31, 255}}}, - {{{88, -41, -46}, 0, {927, 614}, {29, 112, 53, 255}}}, - {{{-88, -41, -46}, 0, {626, 620}, {-29, 112, 53, 255}}}, - {{{-103, -39, -62}, 0, {517, 559}, {21, 122, 31, 255}}}, - {{{118, -30, -70}, 0, {1111, 500}, {-97, 82, 5, 255}}}, - {{{-118, -30, -70}, 0, {439, 511}, {97, 82, 5, 255}}}, - {{{123, -14, -70}, 0, {1163, 435}, {-125, -11, 21, 255}}}, - {{{-123, -14, -70}, 0, {385, 447}, {125, -11, 21, 255}}}, - {{{117, -3, -69}, 0, {1137, 355}, {-18, -98, 79, 255}}}, - {{{-117, -3, -69}, 0, {409, 366}, {18, -98, 79, 255}}}, - {{{102, -5, -61}, 0, {1026, 318}, {71, -84, 64, 255}}}, - {{{-102, -5, -61}, 0, {519, 326}, {-71, -84, 64, 255}}}, - {{{94, -9, -54}, 0, {937, 327}, {88, -70, 60, 255}}}, - {{{-94, -9, -54}, 0, {609, 333}, {-88, -70, 60, 255}}}, - {{{71, -41, -43}, 0, {1630, 1685}, {95, 10, 84, 255}}}, - {{{72, -39, -32}, 0, {1603, 1664}, {110, -62, -17, 255}}}, - {{{-71, -41, -43}, 0, {478, 1688}, {-95, 10, 84, 255}}}, - {{{-72, -39, -32}, 0, {505, 1664}, {-110, -62, -17, 255}}}, - {{{59, -51, -42}, 0, {800, 794}, {35, -122, -7, 255}}}, - {{{71, -41, -43}, 0, {808, 642}, {95, 10, 84, 255}}}, - {{{-59, -51, -42}, 0, {757, 798}, {-35, -122, -7, 255}}}, - {{{-71, -41, -43}, 0, {747, 646}, {-95, 10, 84, 255}}}, - {{{82, -6, -46}, 0, {802, 282}, {114, 38, 41, 255}}}, - {{{84, -10, -46}, 0, {822, 324}, {95, -33, 78, 255}}}, - {{{-84, -10, -46}, 0, {725, 327}, {-95, -33, 78, 255}}}, - {{{-82, -6, -46}, 0, {744, 284}, {-114, 38, 41, 255}}}, - {{{81, -41, -53}, 0, {890, 576}, {75, 72, 73, 255}}}, - {{{-81, -41, -53}, 0, {662, 582}, {-75, 72, 73, 255}}}, - {{{84, -37, -53}, 0, {888, 553}, {113, -7, 59, 255}}}, - {{{71, -35, -44}, 0, {787, 593}, {117, -22, 44, 255}}}, - {{{-71, -35, -44}, 0, {766, 596}, {-117, -22, 44, 255}}}, - {{{-84, -37, -53}, 0, {665, 558}, {-113, -7, 59, 255}}}, - {{{75, -30, -53}, 0, {841, 516}, {109, 4, 65, 255}}}, - {{{82, -30, -53}, 0, {876, 526}, {73, 92, 48, 255}}}, - {{{-75, -30, -53}, 0, {710, 520}, {-109, 4, 65, 255}}}, - {{{-82, -30, -53}, 0, {676, 531}, {-73, 92, 48, 255}}}, - {{{83, -22, -53}, 0, {856, 440}, {95, -74, 41, 255}}}, - {{{79, -19, -46}, 0, {787, 418}, {111, -54, 31, 255}}}, - {{{-79, -19, -46}, 0, {762, 420}, {-111, -54, 31, 255}}}, - {{{-83, -22, -53}, 0, {694, 444}, {-95, -74, 41, 255}}}, - {{{89, -15, -52}, 0, {883, 373}, {89, -69, 60, 255}}}, - {{{-89, -15, -52}, 0, {665, 377}, {-89, -69, 60, 255}}}, - {{{79, -19, -46}, 0, {1671, 1632}, {111, -54, 31, 255}}}, - {{{84, -10, -46}, 0, {1689, 1618}, {95, -33, 78, 255}}}, - {{{-84, -10, -46}, 0, {409, 1608}, {-95, -33, 78, 255}}}, - {{{-79, -19, -46}, 0, {429, 1625}, {-111, -54, 31, 255}}}, - {{{71, -35, -44}, 0, {1642, 1669}, {117, -22, 44, 255}}}, - {{{-71, -35, -44}, 0, {463, 1673}, {-117, -22, 44, 255}}}, - {{{89, -16, -57}, 0, {918, 400}, {85, -55, 77, 255}}}, - {{{95, -10, -60}, 0, {969, 359}, {81, -52, 83, 255}}}, - {{{-89, -16, -57}, 0, {630, 405}, {-85, -55, 77, 255}}}, - {{{-95, -10, -60}, 0, {578, 365}, {-81, -52, 83, 255}}}, - {{{84, -22, -57}, 0, {892, 451}, {73, -54, 89, 255}}}, - {{{-84, -22, -57}, 0, {657, 456}, {-73, -54, 89, 255}}}, - {{{76, -30, -57}, 0, {867, 503}, {100, 32, 72, 255}}}, - {{{-76, -30, -57}, 0, {684, 507}, {-100, 32, 72, 255}}}, - {{{82, -31, -57}, 0, {896, 512}, {56, 47, 104, 255}}}, - {{{-82, -31, -57}, 0, {655, 517}, {-56, 47, 104, 255}}}, - {{{85, -37, -57}, 0, {912, 548}, {47, 47, 108, 255}}}, - {{{-85, -37, -57}, 0, {640, 554}, {-47, 47, 108, 255}}}, - {{{81, -41, -57}, 0, {903, 564}, {84, 44, 85, 255}}}, - {{{-81, -41, -57}, 0, {650, 569}, {-84, 44, 85, 255}}}, - {{{88, -41, -52}, 0, {932, 586}, {-6, 121, 38, 255}}}, - {{{-88, -41, -52}, 0, {621, 592}, {6, 121, 38, 255}}}, - {{{103, -6, -67}, 0, {1049, 350}, {62, -43, 103, 255}}}, - {{{-103, -6, -67}, 0, {497, 359}, {-62, -43, 103, 255}}}, - {{{118, -5, -74}, 0, {1128, 385}, {-31, -74, 99, 255}}}, - {{{-118, -5, -74}, 0, {419, 396}, {31, -74, 99, 255}}}, - {{{125, -15, -75}, 0, {1130, 434}, {-95, -12, 84, 255}}}, - {{{-125, -15, -75}, 0, {418, 446}, {95, -12, 84, 255}}}, - {{{121, -30, -74}, 0, {1104, 482}, {-69, 57, 91, 255}}}, - {{{-121, -30, -74}, 0, {446, 492}, {69, 57, 91, 255}}}, - {{{104, -39, -68}, 0, {1041, 526}, {11, 94, 85, 255}}}, - {{{-104, -39, -68}, 0, {510, 535}, {-11, 94, 85, 255}}}, - {{{93, -33, -59}, 0, {964, 515}, {49, 14, 117, 255}}}, - {{{89, -28, -58}, 0, {931, 488}, {25, 0, 125, 255}}}, - {{{-93, -33, -59}, 0, {587, 522}, {-49, 14, 117, 255}}}, - {{{-89, -28, -58}, 0, {619, 494}, {-25, 0, 125, 255}}}, - {{{99, -26, -62}, 0, {1001, 470}, {55, -4, 115, 255}}}, - {{{96, -22, -61}, 0, {973, 442}, {41, 0, 120, 255}}}, - {{{-99, -26, -62}, 0, {549, 477}, {-55, -4, 115, 255}}}, - {{{-96, -22, -61}, 0, {576, 449}, {-41, 0, 120, 255}}}, - {{{105, -20, -64}, 0, {1031, 435}, {44, -9, 119, 255}}}, - {{{101, -16, -63}, 0, {1012, 404}, {40, 11, 120, 255}}}, - {{{-105, -20, -64}, 0, {518, 443}, {-44, -9, 119, 255}}}, - {{{-101, -16, -63}, 0, {536, 412}, {-40, 11, 120, 255}}}, - {{{110, -18, -64}, 0, {1062, 426}, {55, -1, 115, 255}}}, - {{{108, -12, -64}, 0, {1058, 394}, {45, 38, 113, 255}}}, - {{{-110, -18, -64}, 0, {487, 436}, {-55, -1, 115, 255}}}, - {{{-108, -12, -64}, 0, {489, 403}, {-45, 38, 113, 255}}}, - {{{78, -51, -58}, 0, {991, 760}, {-10, -108, -67, 255}}}, - {{{103, -48, -75}, 0, {1112, 648}, {-5, -89, -91, 255}}}, - {{{-78, -51, -58}, 0, {567, 767}, {10, -108, -67, 255}}}, - {{{-103, -48, -75}, 0, {442, 659}, {5, -89, -91, 255}}}, - {{{131, -34, -78}, 0, {1189, 559}, {78, -62, -79, 255}}}, - {{{-131, -34, -78}, 0, {362, 572}, {-78, -62, -79, 255}}}, - {{{136, -9, -75}, 0, {1263, 491}, {118, 10, -47, 255}}}, - {{{-136, -9, -75}, 0, {287, 507}, {-118, 10, -47, 255}}}, - {{{123, 11, -68}, 0, {1448, 491}, {46, 110, 46, 255}}}, - {{{124, 7, -80}, 0, {1353, 530}, {39, 79, -92, 255}}}, - {{{-123, 11, -68}, 0, {101, 514}, {-46, 110, 46, 255}}}, - {{{-124, 7, -80}, 0, {198, 548}, {-39, 79, -92, 255}}}, - {{{102, 8, -57}, 0, {1526, 712}, {2, 111, 62, 255}}}, - {{{102, 4, -74}, 0, {1387, 674}, {-53, 71, -91, 255}}}, - {{{-102, 8, -57}, 0, {39, 737}, {-2, 111, 62, 255}}}, - {{{-102, 4, -74}, 0, {171, 692}, {53, 71, -91, 255}}}, - {{{89, 1, -49}, 0, {1517, 875}, {-36, 94, 78, 255}}}, - {{{85, -1, -64}, 0, {1375, 834}, {-83, 73, -63, 255}}}, - {{{-89, 1, -49}, 0, {68, 892}, {36, 94, 78, 255}}}, - {{{-85, -1, -64}, 0, {190, 839}, {83, 73, -63, 255}}}, - {{{89, 1, -49}, 0, {1709, 1624}, {-36, 94, 78, 255}}}, - {{{85, -1, -64}, 0, {1709, 1624}, {-83, 73, -63, 255}}}, - {{{-82, -6, -46}, 0, {104, 977}, {-114, 38, 41, 255}}}, - {{{-77, -12, -69}, 0, {297, 895}, {-80, -3, -99, 255}}}, - {{{77, -12, -69}, 0, {1270, 889}, {80, -3, -99, 255}}}, - {{{64, -40, -68}, 0, {1020, 916}, {51, -78, -86, 255}}}, - {{{-64, -40, -68}, 0, {541, 921}, {-51, -78, -86, 255}}}, -}; - - -Gfx subject_model_gfx[] = { - // Material DefaultMaterial - // End Material DefaultMaterial - gsSPVertex(&subject_Suzanne_normal[0], 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(3, 2, 8, 0, 3, 8, 9, 0), - gsSP2Triangles(10, 4, 7, 0, 10, 7, 11, 0), - gsSP2Triangles(2, 12, 13, 0, 2, 13, 8, 0), - gsSP2Triangles(14, 15, 4, 0, 14, 4, 10, 0), - gsSP2Triangles(1, 16, 12, 0, 1, 12, 2, 0), - gsSP2Triangles(15, 17, 5, 0, 15, 5, 4, 0), - gsSP2Triangles(16, 18, 19, 0, 16, 19, 12, 0), - gsSP2Triangles(20, 21, 17, 0, 20, 17, 15, 0), - gsSP2Triangles(12, 19, 22, 0, 12, 22, 13, 0), - gsSP2Triangles(23, 20, 15, 0, 23, 15, 14, 0), - gsSP2Triangles(19, 24, 25, 0, 19, 25, 22, 0), - gsSP2Triangles(26, 27, 20, 0, 26, 20, 23, 0), - gsSP2Triangles(18, 28, 24, 0, 18, 24, 19, 0), - gsSP2Triangles(27, 29, 21, 0, 27, 21, 20, 0), - gsSP2Triangles(28, 30, 31, 0, 28, 31, 24, 0), - gsSPVertex(&subject_Suzanne_normal[0], 1, 0), - gsSPVertex(&subject_Suzanne_normal[3], 1, 1), - gsSPVertex(&subject_Suzanne_normal[6], 2, 2), - gsSPVertex(&subject_Suzanne_normal[9], 1, 4), - gsSPVertex(&subject_Suzanne_normal[11], 1, 5), - gsSPVertex(&subject_Suzanne_normal[24], 4, 6), - gsSPVertex(&subject_Suzanne_normal[29], 22, 10), - gsSP2Triangles(13, 14, 10, 0, 13, 10, 9, 0), - gsSP2Triangles(6, 12, 15, 0, 6, 15, 7, 0), - gsSP2Triangles(16, 13, 9, 0, 16, 9, 8, 0), - gsSP2Triangles(12, 17, 18, 0, 12, 18, 15, 0), - gsSP2Triangles(19, 20, 13, 0, 19, 13, 16, 0), - gsSP2Triangles(11, 21, 17, 0, 11, 17, 12, 0), - gsSP2Triangles(20, 22, 14, 0, 20, 14, 13, 0), - gsSP2Triangles(21, 23, 24, 0, 21, 24, 17, 0), - gsSP2Triangles(25, 26, 22, 0, 25, 22, 20, 0), - gsSP2Triangles(17, 24, 27, 0, 17, 27, 18, 0), - gsSP2Triangles(28, 25, 20, 0, 28, 20, 19, 0), - gsSP2Triangles(24, 1, 4, 0, 24, 4, 27, 0), - gsSP2Triangles(5, 3, 25, 0, 5, 25, 28, 0), - gsSP2Triangles(23, 0, 1, 0, 23, 1, 24, 0), - gsSP2Triangles(3, 2, 26, 0, 3, 26, 25, 0), - gsSP2Triangles(0, 23, 29, 0, 0, 29, 30, 0), - gsSP1Triangle(31, 26, 2, 0), - gsSPVertex(&subject_Suzanne_normal[0], 2, 0), - gsSPVertex(&subject_Suzanne_normal[5], 2, 2), - gsSPVertex(&subject_Suzanne_normal[16], 3, 4), - gsSPVertex(&subject_Suzanne_normal[21], 1, 7), - gsSPVertex(&subject_Suzanne_normal[28], 3, 8), - gsSPVertex(&subject_Suzanne_normal[33], 1, 11), - gsSPVertex(&subject_Suzanne_normal[40], 3, 12), - gsSPVertex(&subject_Suzanne_normal[45], 1, 15), - gsSPVertex(&subject_Suzanne_normal[48], 16, 16), - gsSP2Triangles(18, 3, 19, 0, 14, 12, 20, 0), - gsSP2Triangles(14, 20, 16, 0, 21, 13, 15, 0), - gsSP2Triangles(21, 15, 18, 0, 12, 10, 22, 0), - gsSP2Triangles(12, 22, 20, 0, 23, 11, 13, 0), - gsSP2Triangles(23, 13, 21, 0, 10, 8, 24, 0), - gsSP2Triangles(10, 24, 22, 0, 25, 9, 11, 0), - gsSP2Triangles(25, 11, 23, 0, 8, 6, 26, 0), - gsSP2Triangles(8, 26, 24, 0, 27, 7, 9, 0), - gsSP2Triangles(27, 9, 25, 0, 6, 4, 28, 0), - gsSP2Triangles(6, 28, 26, 0, 29, 5, 7, 0), - gsSP2Triangles(29, 7, 27, 0, 4, 1, 30, 0), - gsSP2Triangles(4, 30, 28, 0, 31, 2, 5, 0), - gsSP2Triangles(31, 5, 29, 0, 1, 0, 17, 0), - gsSP2Triangles(1, 17, 30, 0, 19, 3, 2, 0), - gsSP1Triangle(19, 2, 31, 0), - gsSPVertex(&subject_Suzanne_normal[48], 32, 0), - gsSP2Triangles(16, 14, 1, 0, 3, 15, 17, 0), - gsSP2Triangles(12, 14, 16, 0, 17, 15, 13, 0), - gsSP2Triangles(16, 10, 12, 0, 13, 11, 17, 0), - gsSP2Triangles(16, 8, 10, 0, 11, 9, 17, 0), - gsSP2Triangles(16, 6, 8, 0, 9, 7, 17, 0), - gsSP2Triangles(16, 4, 6, 0, 7, 5, 17, 0), - gsSP2Triangles(16, 0, 4, 0, 5, 2, 17, 0), - gsSP2Triangles(16, 1, 0, 0, 2, 3, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSP2Triangles(24, 25, 19, 0, 24, 19, 18, 0), - gsSP2Triangles(22, 26, 27, 0, 22, 27, 23, 0), - gsSP2Triangles(28, 29, 25, 0, 28, 25, 24, 0), - gsSP2Triangles(26, 30, 31, 0, 26, 31, 27, 0), - gsSPVertex(&subject_Suzanne_normal[76], 32, 0), - gsSP2Triangles(4, 5, 1, 0, 4, 1, 0, 0), - gsSP2Triangles(2, 6, 7, 0, 2, 7, 3, 0), - gsSP2Triangles(8, 9, 5, 0, 8, 5, 4, 0), - gsSP2Triangles(6, 10, 11, 0, 6, 11, 7, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), - gsSP2Triangles(13, 20, 21, 0, 13, 21, 14, 0), - gsSP2Triangles(22, 23, 17, 0, 22, 17, 16, 0), - gsSP2Triangles(20, 24, 25, 0, 20, 25, 21, 0), - gsSP2Triangles(26, 27, 23, 0, 26, 23, 22, 0), - gsSP2Triangles(24, 28, 29, 0, 24, 29, 25, 0), - gsSP2Triangles(30, 31, 27, 0, 30, 27, 26, 0), - gsSPVertex(&subject_Suzanne_normal[104], 32, 0), - gsSP2Triangles(0, 4, 5, 0, 0, 5, 1, 0), - gsSP2Triangles(6, 7, 3, 0, 6, 3, 2, 0), - gsSP2Triangles(4, 8, 9, 0, 4, 9, 5, 0), - gsSP2Triangles(10, 11, 7, 0, 10, 7, 6, 0), - gsSP2Triangles(8, 12, 13, 0, 8, 13, 9, 0), - gsSP2Triangles(14, 15, 11, 0, 14, 11, 10, 0), - gsSP2Triangles(12, 16, 17, 0, 12, 17, 13, 0), - gsSP2Triangles(18, 19, 15, 0, 18, 15, 14, 0), - gsSP2Triangles(16, 20, 21, 0, 16, 21, 17, 0), - gsSP2Triangles(22, 23, 19, 0, 22, 19, 18, 0), - gsSP2Triangles(20, 24, 25, 0, 20, 25, 21, 0), - gsSP2Triangles(25, 24, 23, 0, 25, 23, 22, 0), - gsSP2Triangles(26, 27, 17, 0, 26, 17, 21, 0), - gsSP2Triangles(18, 28, 29, 0, 18, 29, 22, 0), - gsSP2Triangles(27, 30, 13, 0, 27, 13, 17, 0), - gsSP2Triangles(14, 31, 28, 0, 14, 28, 18, 0), - gsSPVertex(&subject_Suzanne_normal[90], 3, 0), - gsSPVertex(&subject_Suzanne_normal[95], 1, 3), - gsSPVertex(&subject_Suzanne_normal[97], 2, 4), - gsSPVertex(&subject_Suzanne_normal[101], 2, 6), - gsSPVertex(&subject_Suzanne_normal[105], 2, 8), - gsSPVertex(&subject_Suzanne_normal[109], 2, 10), - gsSPVertex(&subject_Suzanne_normal[113], 2, 12), - gsSPVertex(&subject_Suzanne_normal[117], 2, 14), - gsSPVertex(&subject_Suzanne_normal[134], 16, 16), - gsSP2Triangles(18, 12, 14, 0, 18, 14, 16, 0), - gsSP2Triangles(15, 13, 19, 0, 15, 19, 17, 0), - gsSP2Triangles(20, 10, 12, 0, 20, 12, 18, 0), - gsSP2Triangles(13, 11, 21, 0, 13, 21, 19, 0), - gsSP2Triangles(22, 8, 10, 0, 22, 10, 20, 0), - gsSP2Triangles(11, 9, 23, 0, 11, 23, 21, 0), - gsSP2Triangles(24, 6, 8, 0, 24, 8, 22, 0), - gsSP2Triangles(9, 7, 25, 0, 9, 25, 23, 0), - gsSP2Triangles(26, 4, 6, 0, 26, 6, 24, 0), - gsSP2Triangles(7, 5, 27, 0, 7, 27, 25, 0), - gsSP2Triangles(28, 0, 4, 0, 28, 4, 26, 0), - gsSP2Triangles(5, 2, 29, 0, 5, 29, 27, 0), - gsSP2Triangles(30, 1, 0, 0, 30, 0, 28, 0), - gsSP2Triangles(2, 3, 31, 0, 2, 31, 29, 0), - gsSPVertex(&subject_Suzanne_normal[67], 2, 0), - gsSPVertex(&subject_Suzanne_normal[70], 1, 2), - gsSPVertex(&subject_Suzanne_normal[73], 2, 3), - gsSPVertex(&subject_Suzanne_normal[77], 2, 5), - gsSPVertex(&subject_Suzanne_normal[91], 1, 7), - gsSPVertex(&subject_Suzanne_normal[95], 1, 8), - gsSPVertex(&subject_Suzanne_normal[125], 2, 9), - gsSPVertex(&subject_Suzanne_normal[129], 2, 11), - gsSPVertex(&subject_Suzanne_normal[133], 1, 13), - gsSPVertex(&subject_Suzanne_normal[148], 17, 14), - gsSP2Triangles(14, 16, 17, 0, 14, 17, 7, 0), - gsSP2Triangles(17, 18, 15, 0, 17, 15, 8, 0), - gsSP2Triangles(12, 9, 11, 0, 12, 11, 19, 0), - gsSP2Triangles(11, 10, 13, 0, 11, 13, 20, 0), - gsSP2Triangles(19, 11, 21, 0, 19, 21, 22, 0), - gsSP2Triangles(21, 11, 20, 0, 21, 20, 23, 0), - gsSP2Triangles(17, 16, 22, 0, 17, 22, 21, 0), - gsSP2Triangles(23, 18, 17, 0, 23, 17, 21, 0), - gsSP2Triangles(24, 25, 1, 0, 24, 1, 0, 0), - gsSP2Triangles(1, 25, 26, 0, 1, 26, 2, 0), - gsSP2Triangles(27, 24, 0, 0, 27, 0, 3, 0), - gsSP2Triangles(2, 26, 28, 0, 2, 28, 4, 0), - gsSP2Triangles(29, 27, 3, 0, 29, 3, 5, 0), - gsSP2Triangles(4, 28, 30, 0, 4, 30, 6, 0), - gsSPVertex(&subject_Suzanne_normal[77], 2, 0), - gsSPVertex(&subject_Suzanne_normal[81], 2, 2), - gsSPVertex(&subject_Suzanne_normal[85], 2, 4), - gsSPVertex(&subject_Suzanne_normal[163], 25, 6), - gsSP2Triangles(4, 8, 9, 0, 4, 9, 2, 0), - gsSP2Triangles(10, 11, 5, 0, 10, 5, 3, 0), - gsSP2Triangles(6, 0, 2, 0, 6, 2, 9, 0), - gsSP2Triangles(3, 1, 7, 0, 3, 7, 10, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 8, 0), - gsSP2Triangles(14, 13, 15, 0, 14, 15, 11, 0), - gsSP2Triangles(9, 8, 14, 0, 9, 14, 16, 0), - gsSP2Triangles(14, 11, 10, 0, 14, 10, 16, 0), - gsSP2Triangles(17, 6, 9, 0, 17, 9, 16, 0), - gsSP2Triangles(10, 7, 17, 0, 10, 17, 16, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 12, 0), - gsSP2Triangles(21, 22, 23, 0, 21, 23, 15, 0), - gsSP2Triangles(24, 25, 19, 0, 24, 19, 18, 0), - gsSP2Triangles(22, 26, 27, 0, 22, 27, 23, 0), - gsSP2Triangles(28, 29, 25, 0, 28, 25, 24, 0), - gsSP2Triangles(26, 30, 28, 0, 26, 28, 27, 0), - gsSPVertex(&subject_Suzanne_normal[91], 1, 0), - gsSPVertex(&subject_Suzanne_normal[95], 1, 1), - gsSPVertex(&subject_Suzanne_normal[151], 1, 2), - gsSPVertex(&subject_Suzanne_normal[169], 2, 3), - gsSPVertex(&subject_Suzanne_normal[172], 1, 5), - gsSPVertex(&subject_Suzanne_normal[175], 5, 6), - gsSPVertex(&subject_Suzanne_normal[181], 21, 11), - gsSP2Triangles(18, 19, 16, 0, 18, 16, 15, 0), - gsSP2Triangles(17, 19, 18, 0, 17, 18, 15, 0), - gsSP2Triangles(4, 3, 8, 0, 4, 8, 20, 0), - gsSP2Triangles(9, 5, 4, 0, 9, 4, 20, 0), - gsSP2Triangles(20, 8, 21, 0, 20, 21, 22, 0), - gsSP2Triangles(23, 9, 20, 0, 23, 20, 22, 0), - gsSP2Triangles(19, 24, 25, 0, 19, 25, 16, 0), - gsSP2Triangles(26, 24, 19, 0, 26, 19, 17, 0), - gsSP2Triangles(16, 25, 27, 0, 16, 27, 12, 0), - gsSP2Triangles(28, 26, 17, 0, 28, 17, 13, 0), - gsSP2Triangles(12, 27, 29, 0, 12, 29, 7, 0), - gsSP2Triangles(30, 28, 13, 0, 30, 13, 10, 0), - gsSP2Triangles(7, 29, 21, 0, 7, 21, 8, 0), - gsSP2Triangles(23, 30, 10, 0, 23, 10, 9, 0), - gsSP2Triangles(24, 29, 27, 0, 24, 27, 25, 0), - gsSP2Triangles(28, 30, 24, 0, 28, 24, 26, 0), - gsSP2Triangles(24, 22, 21, 0, 24, 21, 29, 0), - gsSP2Triangles(23, 22, 24, 0, 23, 24, 30, 0), - gsSP2Triangles(15, 11, 0, 0, 15, 0, 2, 0), - gsSP2Triangles(1, 14, 15, 0, 1, 15, 2, 0), - gsSP2Triangles(11, 6, 31, 0, 11, 31, 0, 0), - gsSPVertex(&subject_Suzanne_normal[84], 5, 0), - gsSPVertex(&subject_Suzanne_normal[91], 1, 5), - gsSPVertex(&subject_Suzanne_normal[94], 2, 6), - gsSPVertex(&subject_Suzanne_normal[161], 5, 8), - gsSPVertex(&subject_Suzanne_normal[168], 2, 13), - gsSPVertex(&subject_Suzanne_normal[172], 1, 15), - gsSPVertex(&subject_Suzanne_normal[174], 2, 16), - gsSPVertex(&subject_Suzanne_normal[180], 1, 18), - gsSPVertex(&subject_Suzanne_normal[184], 1, 19), - gsSPVertex(&subject_Suzanne_normal[201], 12, 20), - gsSP2Triangles(21, 18, 19, 0, 21, 19, 7, 0), - gsSP2Triangles(17, 14, 22, 0, 17, 22, 20, 0), - gsSP2Triangles(23, 15, 18, 0, 23, 18, 21, 0), - gsSP2Triangles(14, 12, 1, 0, 14, 1, 22, 0), - gsSP2Triangles(2, 13, 15, 0, 2, 15, 23, 0), - gsSP2Triangles(0, 24, 22, 0, 0, 22, 1, 0), - gsSP2Triangles(23, 25, 3, 0, 23, 3, 2, 0), - gsSP2Triangles(24, 26, 20, 0, 24, 20, 22, 0), - gsSP2Triangles(21, 27, 25, 0, 21, 25, 23, 0), - gsSP2Triangles(4, 5, 20, 0, 4, 20, 26, 0), - gsSP2Triangles(21, 7, 6, 0, 21, 6, 27, 0), - gsSP2Triangles(10, 16, 28, 0, 10, 28, 29, 0), - gsSP2Triangles(28, 16, 11, 0, 28, 11, 30, 0), - gsSP2Triangles(8, 10, 29, 0, 8, 29, 31, 0), - gsSP1Triangle(30, 11, 9, 0), - gsSPVertex(&subject_Suzanne_normal[150], 1, 0), - gsSPVertex(&subject_Suzanne_normal[152], 3, 1), - gsSPVertex(&subject_Suzanne_normal[156], 7, 4), - gsSPVertex(&subject_Suzanne_normal[209], 21, 11), - gsSP2Triangles(13, 10, 15, 0, 6, 9, 14, 0), - gsSP2Triangles(6, 14, 16, 0, 15, 10, 8, 0), - gsSP2Triangles(15, 8, 17, 0, 7, 6, 16, 0), - gsSP2Triangles(7, 16, 18, 0, 17, 8, 7, 0), - gsSP2Triangles(17, 7, 18, 0, 18, 16, 19, 0), - gsSP2Triangles(18, 19, 20, 0, 21, 17, 18, 0), - gsSP2Triangles(21, 18, 20, 0, 16, 14, 22, 0), - gsSP2Triangles(16, 22, 19, 0, 23, 15, 17, 0), - gsSP2Triangles(23, 17, 21, 0, 14, 12, 24, 0), - gsSP2Triangles(14, 24, 22, 0, 25, 13, 15, 0), - gsSP2Triangles(25, 15, 23, 0, 12, 11, 26, 0), - gsSP2Triangles(12, 26, 24, 0, 26, 11, 13, 0), - gsSP2Triangles(26, 13, 25, 0, 26, 20, 19, 0), - gsSP2Triangles(26, 19, 24, 0, 21, 20, 26, 0), - gsSP2Triangles(21, 26, 25, 0, 24, 19, 22, 0), - gsSP2Triangles(23, 21, 25, 0, 4, 0, 27, 0), - gsSP2Triangles(4, 27, 28, 0, 29, 1, 5, 0), - gsSP2Triangles(29, 5, 30, 0, 2, 4, 28, 0), - gsSP2Triangles(2, 28, 31, 0, 30, 5, 3, 0), - gsSPVertex(&subject_Suzanne_normal[130], 1, 0), - gsSPVertex(&subject_Suzanne_normal[133], 1, 1), - gsSPVertex(&subject_Suzanne_normal[140], 1, 2), - gsSPVertex(&subject_Suzanne_normal[142], 9, 3), - gsSPVertex(&subject_Suzanne_normal[152], 3, 12), - gsSPVertex(&subject_Suzanne_normal[225], 1, 15), - gsSPVertex(&subject_Suzanne_normal[227], 15, 16), - gsSP2Triangles(17, 14, 19, 0, 0, 13, 18, 0), - gsSP2Triangles(0, 18, 20, 0, 19, 14, 1, 0), - gsSP2Triangles(19, 1, 21, 0, 11, 9, 22, 0), - gsSP2Triangles(11, 22, 15, 0, 23, 10, 12, 0), - gsSP2Triangles(23, 12, 16, 0, 9, 7, 24, 0), - gsSP2Triangles(9, 24, 22, 0, 25, 8, 10, 0), - gsSP2Triangles(25, 10, 23, 0, 7, 5, 26, 0), - gsSP2Triangles(7, 26, 24, 0, 27, 6, 8, 0), - gsSP2Triangles(27, 8, 25, 0, 5, 3, 28, 0), - gsSP2Triangles(5, 28, 26, 0, 29, 4, 6, 0), - gsSP2Triangles(29, 6, 27, 0, 3, 2, 30, 0), - gsSP1Triangle(3, 30, 28, 0), - gsSPVertex(&subject_Suzanne_normal[130], 12, 0), - gsSPVertex(&subject_Suzanne_normal[143], 1, 12), - gsSPVertex(&subject_Suzanne_normal[231], 2, 13), - gsSPVertex(&subject_Suzanne_normal[240], 17, 15), - gsSP2Triangles(17, 11, 12, 0, 17, 12, 15, 0), - gsSP2Triangles(10, 8, 18, 0, 10, 18, 16, 0), - gsSP2Triangles(19, 9, 11, 0, 19, 11, 17, 0), - gsSP2Triangles(8, 6, 20, 0, 8, 20, 18, 0), - gsSP2Triangles(21, 7, 9, 0, 21, 9, 19, 0), - gsSP2Triangles(6, 4, 22, 0, 6, 22, 20, 0), - gsSP2Triangles(23, 5, 7, 0, 23, 7, 21, 0), - gsSP2Triangles(4, 1, 24, 0, 4, 24, 22, 0), - gsSP2Triangles(25, 2, 5, 0, 25, 5, 23, 0), - gsSP2Triangles(1, 0, 13, 0, 1, 13, 24, 0), - gsSP2Triangles(14, 3, 2, 0, 14, 2, 25, 0), - gsSP2Triangles(24, 13, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(28, 14, 25, 0, 28, 25, 29, 0), - gsSP2Triangles(22, 24, 27, 0, 22, 27, 30, 0), - gsSP2Triangles(29, 25, 23, 0, 29, 23, 31, 0), - gsSP1Triangle(20, 22, 30, 0), - gsSPVertex(&subject_Suzanne_normal[225], 1, 0), - gsSPVertex(&subject_Suzanne_normal[233], 14, 1), - gsSPVertex(&subject_Suzanne_normal[248], 1, 15), - gsSPVertex(&subject_Suzanne_normal[255], 16, 16), - gsSP2Triangles(13, 16, 18, 0, 17, 15, 14, 0), - gsSP2Triangles(17, 14, 19, 0, 11, 13, 18, 0), - gsSP2Triangles(11, 18, 20, 0, 19, 14, 12, 0), - gsSP2Triangles(19, 12, 21, 0, 9, 11, 20, 0), - gsSP2Triangles(9, 20, 22, 0, 21, 12, 10, 0), - gsSP2Triangles(21, 10, 23, 0, 7, 9, 22, 0), - gsSP2Triangles(7, 22, 24, 0, 23, 10, 8, 0), - gsSP2Triangles(23, 8, 25, 0, 5, 7, 24, 0), - gsSP2Triangles(5, 24, 26, 0, 25, 8, 6, 0), - gsSP2Triangles(25, 6, 27, 0, 3, 5, 26, 0), - gsSP2Triangles(3, 26, 28, 0, 27, 6, 4, 0), - gsSP2Triangles(27, 4, 29, 0, 1, 3, 28, 0), - gsSP2Triangles(1, 28, 30, 0, 29, 4, 2, 0), - gsSP2Triangles(29, 2, 31, 0, 0, 1, 30, 0), - gsSPVertex(&subject_Suzanne_normal[116], 1, 0), - gsSPVertex(&subject_Suzanne_normal[120], 1, 1), - gsSPVertex(&subject_Suzanne_normal[123], 2, 2), - gsSPVertex(&subject_Suzanne_normal[127], 2, 4), - gsSPVertex(&subject_Suzanne_normal[225], 8, 6), - gsSPVertex(&subject_Suzanne_normal[234], 1, 14), - gsSPVertex(&subject_Suzanne_normal[251], 1, 15), - gsSPVertex(&subject_Suzanne_normal[253], 1, 16), - gsSPVertex(&subject_Suzanne_normal[269], 14, 17), - gsSP2Triangles(6, 17, 19, 0, 18, 14, 8, 0), - gsSP2Triangles(18, 8, 20, 0, 12, 10, 21, 0), - gsSP2Triangles(12, 21, 15, 0, 22, 11, 13, 0), - gsSP2Triangles(22, 13, 16, 0, 10, 7, 23, 0), - gsSP2Triangles(10, 23, 21, 0, 24, 9, 11, 0), - gsSP2Triangles(24, 11, 22, 0, 7, 6, 19, 0), - gsSP2Triangles(7, 19, 23, 0, 20, 8, 9, 0), - gsSP2Triangles(20, 9, 24, 0, 5, 3, 25, 0), - gsSP2Triangles(5, 25, 26, 0, 27, 4, 5, 0), - gsSP2Triangles(27, 5, 26, 0, 3, 1, 28, 0), - gsSP2Triangles(3, 28, 25, 0, 29, 2, 4, 0), - gsSP2Triangles(29, 4, 27, 0, 1, 0, 30, 0), - gsSP1Triangle(1, 30, 28, 0), - gsSPVertex(&subject_Suzanne_normal[89], 1, 0), - gsSPVertex(&subject_Suzanne_normal[93], 1, 1), - gsSPVertex(&subject_Suzanne_normal[96], 1, 2), - gsSPVertex(&subject_Suzanne_normal[99], 2, 3), - gsSPVertex(&subject_Suzanne_normal[103], 2, 5), - gsSPVertex(&subject_Suzanne_normal[107], 2, 7), - gsSPVertex(&subject_Suzanne_normal[111], 2, 9), - gsSPVertex(&subject_Suzanne_normal[115], 2, 11), - gsSPVertex(&subject_Suzanne_normal[119], 1, 13), - gsSPVertex(&subject_Suzanne_normal[123], 1, 14), - gsSPVertex(&subject_Suzanne_normal[281], 15, 15), - gsSP2Triangles(17, 13, 14, 0, 17, 14, 15, 0), - gsSP2Triangles(12, 10, 18, 0, 12, 18, 16, 0), - gsSP2Triangles(19, 11, 13, 0, 19, 13, 17, 0), - gsSP2Triangles(10, 8, 20, 0, 10, 20, 18, 0), - gsSP2Triangles(21, 9, 11, 0, 21, 11, 19, 0), - gsSP2Triangles(8, 6, 22, 0, 8, 22, 20, 0), - gsSP2Triangles(23, 7, 9, 0, 23, 9, 21, 0), - gsSP2Triangles(6, 4, 24, 0, 6, 24, 22, 0), - gsSP2Triangles(25, 5, 7, 0, 25, 7, 23, 0), - gsSP2Triangles(4, 2, 26, 0, 4, 26, 24, 0), - gsSP2Triangles(27, 3, 5, 0, 27, 5, 25, 0), - gsSP2Triangles(2, 0, 28, 0, 2, 28, 26, 0), - gsSP2Triangles(29, 1, 3, 0, 29, 3, 27, 0), - gsSPVertex(&subject_Suzanne_normal[66], 1, 0), - gsSPVertex(&subject_Suzanne_normal[69], 1, 1), - gsSPVertex(&subject_Suzanne_normal[71], 2, 2), - gsSPVertex(&subject_Suzanne_normal[75], 2, 4), - gsSPVertex(&subject_Suzanne_normal[79], 2, 6), - gsSPVertex(&subject_Suzanne_normal[83], 1, 8), - gsSPVertex(&subject_Suzanne_normal[296], 23, 9), - gsSP2Triangles(9, 10, 11, 0, 9, 11, 12, 0), - gsSP2Triangles(13, 14, 15, 0, 13, 15, 16, 0), - gsSP2Triangles(17, 9, 12, 0, 17, 12, 18, 0), - gsSP2Triangles(16, 15, 19, 0, 16, 19, 20, 0), - gsSP2Triangles(21, 17, 18, 0, 21, 18, 22, 0), - gsSP2Triangles(20, 19, 21, 0, 20, 21, 23, 0), - gsSP2Triangles(0, 1, 21, 0, 0, 21, 22, 0), - gsSP2Triangles(21, 1, 2, 0, 21, 2, 23, 0), - gsSP2Triangles(3, 0, 22, 0, 3, 22, 24, 0), - gsSP2Triangles(23, 2, 4, 0, 23, 4, 25, 0), - gsSP2Triangles(5, 3, 24, 0, 5, 24, 26, 0), - gsSP2Triangles(25, 4, 6, 0, 25, 6, 27, 0), - gsSP2Triangles(7, 5, 26, 0, 7, 26, 28, 0), - gsSP2Triangles(27, 6, 8, 0, 27, 8, 29, 0), - gsSP2Triangles(26, 18, 12, 0, 26, 12, 28, 0), - gsSP2Triangles(16, 20, 27, 0, 16, 27, 29, 0), - gsSP2Triangles(26, 24, 22, 0, 26, 22, 18, 0), - gsSP2Triangles(23, 25, 27, 0, 23, 27, 20, 0), - gsSP2Triangles(30, 28, 12, 0, 30, 12, 11, 0), - gsSP2Triangles(16, 29, 31, 0, 16, 31, 13, 0), - gsSPVertex(&subject_Suzanne_normal[80], 1, 0), - gsSPVertex(&subject_Suzanne_normal[83], 2, 1), - gsSPVertex(&subject_Suzanne_normal[87], 3, 3), - gsSPVertex(&subject_Suzanne_normal[93], 2, 6), - gsSPVertex(&subject_Suzanne_normal[205], 4, 8), - gsSPVertex(&subject_Suzanne_normal[294], 2, 12), - gsSPVertex(&subject_Suzanne_normal[315], 18, 14), - gsSP2Triangles(2, 0, 14, 0, 2, 14, 16, 0), - gsSP2Triangles(15, 1, 3, 0, 15, 3, 17, 0), - gsSP2Triangles(8, 18, 19, 0, 8, 19, 10, 0), - gsSP2Triangles(20, 21, 9, 0, 20, 9, 11, 0), - gsSP2Triangles(2, 16, 18, 0, 2, 18, 8, 0), - gsSP2Triangles(21, 17, 3, 0, 21, 3, 9, 0), - gsSP2Triangles(4, 10, 19, 0, 4, 19, 22, 0), - gsSP2Triangles(20, 11, 7, 0, 20, 7, 23, 0), - gsSP2Triangles(4, 22, 12, 0, 4, 12, 5, 0), - gsSP2Triangles(13, 23, 7, 0, 13, 7, 6, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), - gsSPVertex(&subject_Suzanne_normal[290], 4, 0), - gsSPVertex(&subject_Suzanne_normal[297], 2, 4), - gsSPVertex(&subject_Suzanne_normal[300], 2, 6), - gsSPVertex(&subject_Suzanne_normal[317], 3, 8), - gsSPVertex(&subject_Suzanne_normal[322], 1, 11), - gsSPVertex(&subject_Suzanne_normal[325], 5, 12), - gsSPVertex(&subject_Suzanne_normal[332], 15, 17), - gsSP2Triangles(15, 14, 18, 0, 15, 18, 19, 0), - gsSP2Triangles(20, 16, 17, 0, 20, 17, 21, 0), - gsSP2Triangles(19, 18, 22, 0, 19, 22, 23, 0), - gsSP2Triangles(24, 20, 21, 0, 24, 21, 25, 0), - gsSP2Triangles(23, 22, 5, 0, 23, 5, 4, 0), - gsSP2Triangles(6, 24, 25, 0, 6, 25, 7, 0), - gsSP2Triangles(8, 5, 22, 0, 8, 22, 10, 0), - gsSP2Triangles(24, 6, 9, 0, 24, 9, 11, 0), - gsSP2Triangles(0, 2, 26, 0, 0, 26, 27, 0), - gsSP2Triangles(28, 3, 1, 0, 28, 1, 29, 0), - gsSP2Triangles(30, 31, 13, 0, 30, 13, 12, 0), - gsSPVertex(&subject_Suzanne_normal[288], 2, 0), - gsSPVertex(&subject_Suzanne_normal[330], 2, 2), - gsSPVertex(&subject_Suzanne_normal[345], 28, 4), - gsSP2Triangles(2, 6, 7, 0, 2, 7, 3, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(11, 10, 16, 0, 11, 16, 17, 0), - gsSP2Triangles(18, 12, 15, 0, 18, 15, 19, 0), - gsSP2Triangles(17, 16, 5, 0, 17, 5, 4, 0), - gsSP2Triangles(6, 18, 19, 0, 6, 19, 7, 0), - gsSP2Triangles(20, 0, 21, 0, 20, 21, 22, 0), - gsSP2Triangles(23, 1, 24, 0, 23, 24, 25, 0), - gsSP2Triangles(22, 21, 26, 0, 22, 26, 27, 0), - gsSP2Triangles(28, 23, 25, 0, 28, 25, 29, 0), - gsSP2Triangles(27, 26, 30, 0, 27, 30, 31, 0), - gsSPVertex(&subject_Suzanne_normal[346], 2, 0), - gsSPVertex(&subject_Suzanne_normal[350], 2, 2), - gsSPVertex(&subject_Suzanne_normal[353], 2, 4), - gsSPVertex(&subject_Suzanne_normal[357], 1, 6), - gsSPVertex(&subject_Suzanne_normal[359], 1, 7), - gsSPVertex(&subject_Suzanne_normal[361], 1, 8), - gsSPVertex(&subject_Suzanne_normal[363], 1, 9), - gsSPVertex(&subject_Suzanne_normal[365], 2, 10), - gsSPVertex(&subject_Suzanne_normal[368], 20, 12), - gsSP2Triangles(17, 13, 14, 0, 17, 14, 18, 0), - gsSP2Triangles(16, 15, 19, 0, 16, 19, 20, 0), - gsSP2Triangles(21, 17, 18, 0, 21, 18, 22, 0), - gsSP2Triangles(23, 24, 20, 0, 23, 20, 19, 0), - gsSP2Triangles(22, 25, 26, 0, 22, 26, 21, 0), - gsSP2Triangles(0, 6, 20, 0, 0, 20, 24, 0), - gsSP2Triangles(22, 7, 1, 0, 22, 1, 25, 0), - gsSP2Triangles(6, 3, 16, 0, 6, 16, 20, 0), - gsSP2Triangles(18, 4, 7, 0, 18, 7, 22, 0), - gsSP2Triangles(3, 2, 12, 0, 3, 12, 16, 0), - gsSP2Triangles(14, 5, 4, 0, 14, 4, 18, 0), - gsSP2Triangles(2, 27, 9, 0, 2, 9, 12, 0), - gsSP2Triangles(11, 28, 5, 0, 11, 5, 14, 0), - gsSP2Triangles(29, 8, 9, 0, 29, 9, 27, 0), - gsSP2Triangles(11, 10, 30, 0, 11, 30, 28, 0), - gsSP1Triangle(31, 27, 2, 0), - gsSPVertex(&subject_Suzanne_normal[288], 4, 0), - gsSPVertex(&subject_Suzanne_normal[342], 1, 4), - gsSPVertex(&subject_Suzanne_normal[344], 1, 5), - gsSPVertex(&subject_Suzanne_normal[349], 2, 6), - gsSPVertex(&subject_Suzanne_normal[354], 2, 8), - gsSPVertex(&subject_Suzanne_normal[362], 1, 10), - gsSPVertex(&subject_Suzanne_normal[364], 1, 11), - gsSPVertex(&subject_Suzanne_normal[367], 1, 12), - gsSPVertex(&subject_Suzanne_normal[369], 1, 13), - gsSPVertex(&subject_Suzanne_normal[371], 1, 14), - gsSPVertex(&subject_Suzanne_normal[383], 17, 15), - gsSP2Triangles(19, 7, 6, 0, 8, 16, 20, 0), - gsSP2Triangles(8, 20, 9, 0, 21, 22, 23, 0), - gsSP2Triangles(21, 23, 17, 0, 24, 25, 26, 0), - gsSP2Triangles(24, 26, 18, 0, 21, 17, 15, 0), - gsSP2Triangles(21, 15, 19, 0, 16, 18, 26, 0), - gsSP2Triangles(16, 26, 20, 0, 27, 21, 19, 0), - gsSP2Triangles(20, 26, 28, 0, 0, 2, 4, 0), - gsSP2Triangles(0, 4, 10, 0, 5, 3, 1, 0), - gsSP2Triangles(5, 1, 11, 0, 4, 29, 12, 0), - gsSP2Triangles(4, 12, 10, 0, 13, 30, 5, 0), - gsSP2Triangles(13, 5, 11, 0, 29, 31, 14, 0), - gsSP1Triangle(29, 14, 12, 0), - gsSPVertex(&subject_Suzanne_normal[292], 4, 0), - gsSPVertex(&subject_Suzanne_normal[319], 6, 4), - gsSPVertex(&subject_Suzanne_normal[333], 1, 10), - gsSPVertex(&subject_Suzanne_normal[335], 1, 11), - gsSPVertex(&subject_Suzanne_normal[337], 1, 12), - gsSPVertex(&subject_Suzanne_normal[339], 1, 13), - gsSPVertex(&subject_Suzanne_normal[341], 1, 14), - gsSPVertex(&subject_Suzanne_normal[343], 1, 15), - gsSPVertex(&subject_Suzanne_normal[369], 1, 16), - gsSPVertex(&subject_Suzanne_normal[371], 1, 17), - gsSPVertex(&subject_Suzanne_normal[373], 1, 18), - gsSPVertex(&subject_Suzanne_normal[375], 1, 19), - gsSPVertex(&subject_Suzanne_normal[377], 1, 20), - gsSPVertex(&subject_Suzanne_normal[379], 1, 21), - gsSPVertex(&subject_Suzanne_normal[382], 1, 22), - gsSPVertex(&subject_Suzanne_normal[398], 9, 23), - gsSP2Triangles(18, 25, 23, 0, 18, 23, 16, 0), - gsSP2Triangles(21, 19, 17, 0, 21, 17, 24, 0), - gsSP2Triangles(18, 20, 22, 0, 18, 22, 25, 0), - gsSP2Triangles(12, 10, 26, 0, 12, 26, 27, 0), - gsSP2Triangles(28, 11, 13, 0, 28, 13, 29, 0), - gsSP2Triangles(14, 27, 26, 0, 14, 26, 30, 0), - gsSP2Triangles(28, 29, 15, 0, 28, 15, 31, 0), - gsSP2Triangles(0, 2, 27, 0, 0, 27, 14, 0), - gsSP2Triangles(29, 3, 1, 0, 29, 1, 15, 0), - gsSP2Triangles(2, 5, 4, 0, 2, 4, 27, 0), - gsSP2Triangles(7, 6, 3, 0, 7, 3, 29, 0), - gsSP2Triangles(4, 12, 27, 0, 29, 13, 7, 0), - gsSP2Triangles(2, 8, 5, 0, 6, 9, 3, 0), - gsSPVertex(&subject_Suzanne_normal[326], 2, 0), - gsSPVertex(&subject_Suzanne_normal[329], 2, 2), - gsSPVertex(&subject_Suzanne_normal[333], 1, 4), - gsSPVertex(&subject_Suzanne_normal[335], 1, 5), - gsSPVertex(&subject_Suzanne_normal[346], 2, 6), - gsSPVertex(&subject_Suzanne_normal[379], 4, 8), - gsSPVertex(&subject_Suzanne_normal[401], 1, 12), - gsSPVertex(&subject_Suzanne_normal[403], 1, 13), - gsSPVertex(&subject_Suzanne_normal[405], 18, 14), - gsSP2Triangles(8, 16, 17, 0, 8, 17, 9, 0), - gsSP2Triangles(18, 19, 11, 0, 18, 11, 10, 0), - gsSP2Triangles(6, 9, 17, 0, 6, 17, 0, 0), - gsSP2Triangles(18, 10, 7, 0, 18, 7, 3, 0), - gsSP2Triangles(14, 12, 17, 0, 14, 17, 16, 0), - gsSP2Triangles(18, 13, 15, 0, 18, 15, 19, 0), - gsSP2Triangles(4, 1, 17, 0, 4, 17, 12, 0), - gsSP2Triangles(18, 2, 5, 0, 18, 5, 13, 0), - gsSP2Triangles(0, 17, 1, 0, 2, 18, 3, 0), - gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(20, 23, 28, 0, 20, 28, 29, 0), - gsSP2Triangles(30, 27, 26, 0, 30, 26, 31, 0), - gsSPVertex(&subject_Suzanne_normal[414], 1, 0), - gsSPVertex(&subject_Suzanne_normal[419], 31, 1), - gsSP2Triangles(2, 1, 5, 0, 2, 5, 6, 0), - gsSP2Triangles(7, 3, 4, 0, 7, 4, 8, 0), - gsSP2Triangles(6, 5, 9, 0, 6, 9, 10, 0), - gsSP2Triangles(11, 7, 8, 0, 11, 8, 12, 0), - gsSP2Triangles(10, 9, 13, 0, 10, 13, 14, 0), - gsSP2Triangles(15, 11, 12, 0, 15, 12, 16, 0), - gsSP2Triangles(14, 13, 17, 0, 14, 17, 18, 0), - gsSP2Triangles(19, 15, 16, 0, 19, 16, 20, 0), - gsSP2Triangles(13, 21, 22, 0, 13, 22, 17, 0), - gsSP2Triangles(23, 24, 15, 0, 23, 15, 19, 0), - gsSP2Triangles(9, 25, 21, 0, 9, 21, 13, 0), - gsSP2Triangles(24, 26, 11, 0, 24, 11, 15, 0), - gsSP2Triangles(5, 27, 25, 0, 5, 25, 9, 0), - gsSP2Triangles(26, 28, 7, 0, 26, 7, 11, 0), - gsSP2Triangles(1, 29, 27, 0, 1, 27, 5, 0), - gsSP2Triangles(28, 30, 3, 0, 28, 3, 7, 0), - gsSP2Triangles(0, 31, 29, 0, 0, 29, 1, 0), - gsSPVertex(&subject_Suzanne_normal[341], 4, 0), - gsSPVertex(&subject_Suzanne_normal[397], 2, 4), - gsSPVertex(&subject_Suzanne_normal[405], 2, 6), - gsSPVertex(&subject_Suzanne_normal[413], 3, 8), - gsSPVertex(&subject_Suzanne_normal[418], 1, 11), - gsSPVertex(&subject_Suzanne_normal[421], 1, 12), - gsSPVertex(&subject_Suzanne_normal[435], 4, 13), - gsSPVertex(&subject_Suzanne_normal[448], 15, 17), - gsSP2Triangles(17, 19, 11, 0, 17, 11, 12, 0), - gsSP2Triangles(9, 8, 20, 0, 9, 20, 18, 0), - gsSP2Triangles(21, 10, 11, 0, 21, 11, 19, 0), - gsSP2Triangles(0, 6, 22, 0, 0, 22, 23, 0), - gsSP2Triangles(24, 7, 2, 0, 24, 2, 25, 0), - gsSP2Triangles(26, 14, 13, 0, 26, 13, 27, 0), - gsSP2Triangles(15, 16, 28, 0, 15, 28, 29, 0), - gsSP2Triangles(1, 0, 23, 0, 1, 23, 4, 0), - gsSP2Triangles(25, 2, 3, 0, 25, 3, 5, 0), - gsSP1Triangle(30, 31, 8, 0), - gsSPVertex(&subject_Suzanne_normal[412], 2, 0), - gsSPVertex(&subject_Suzanne_normal[415], 2, 2), - gsSPVertex(&subject_Suzanne_normal[435], 1, 4), - gsSPVertex(&subject_Suzanne_normal[437], 1, 5), - gsSPVertex(&subject_Suzanne_normal[440], 2, 6), - gsSPVertex(&subject_Suzanne_normal[451], 2, 8), - gsSPVertex(&subject_Suzanne_normal[458], 1, 10), - gsSPVertex(&subject_Suzanne_normal[460], 21, 11), - gsSP2Triangles(12, 1, 0, 0, 2, 14, 15, 0), - gsSP2Triangles(2, 15, 3, 0, 4, 6, 16, 0), - gsSP2Triangles(4, 16, 10, 0, 17, 7, 5, 0), - gsSP2Triangles(17, 5, 11, 0, 18, 19, 10, 0), - gsSP2Triangles(18, 10, 16, 0, 11, 20, 21, 0), - gsSP2Triangles(11, 21, 17, 0, 22, 19, 18, 0), - gsSP2Triangles(22, 18, 23, 0, 21, 20, 24, 0), - gsSP2Triangles(21, 24, 25, 0, 26, 27, 19, 0), - gsSP2Triangles(26, 19, 22, 0, 20, 28, 29, 0), - gsSP2Triangles(20, 29, 24, 0, 13, 27, 26, 0), - gsSP2Triangles(13, 26, 30, 0, 29, 28, 14, 0), - gsSP2Triangles(29, 14, 31, 0, 1, 13, 30, 0), - gsSP2Triangles(1, 30, 8, 0, 31, 14, 2, 0), - gsSP1Triangle(31, 2, 9, 0), - gsSPVertex(&subject_Suzanne_normal[397], 4, 0), - gsSPVertex(&subject_Suzanne_normal[451], 6, 4), - gsSPVertex(&subject_Suzanne_normal[471], 3, 10), - gsSPVertex(&subject_Suzanne_normal[475], 1, 13), - gsSPVertex(&subject_Suzanne_normal[478], 18, 14), - gsSP2Triangles(0, 17, 18, 0, 0, 18, 2, 0), - gsSP2Triangles(19, 20, 1, 0, 19, 1, 3, 0), - gsSP2Triangles(0, 7, 21, 0, 0, 21, 17, 0), - gsSP2Triangles(22, 9, 1, 0, 22, 1, 20, 0), - gsSP2Triangles(7, 6, 21, 0, 22, 8, 9, 0), - gsSP2Triangles(4, 15, 23, 0, 4, 23, 24, 0), - gsSP2Triangles(25, 16, 5, 0, 25, 5, 26, 0), - gsSP2Triangles(15, 13, 27, 0, 15, 27, 23, 0), - gsSP2Triangles(28, 14, 16, 0, 28, 16, 25, 0), - gsSP2Triangles(13, 10, 29, 0, 13, 29, 27, 0), - gsSP2Triangles(30, 12, 14, 0, 30, 14, 28, 0), - gsSP2Triangles(10, 11, 31, 0, 10, 31, 29, 0), - gsSPVertex(&subject_Suzanne_normal[440], 2, 0), - gsSPVertex(&subject_Suzanne_normal[445], 1, 2), - gsSPVertex(&subject_Suzanne_normal[447], 6, 3), - gsSPVertex(&subject_Suzanne_normal[465], 3, 9), - gsSPVertex(&subject_Suzanne_normal[470], 1, 12), - gsSPVertex(&subject_Suzanne_normal[472], 3, 13), - gsSPVertex(&subject_Suzanne_normal[488], 1, 16), - gsSPVertex(&subject_Suzanne_normal[490], 1, 17), - gsSPVertex(&subject_Suzanne_normal[494], 14, 18), - gsSP2Triangles(20, 15, 14, 0, 20, 14, 18, 0), - gsSP2Triangles(13, 11, 21, 0, 13, 21, 19, 0), - gsSP2Triangles(22, 12, 15, 0, 22, 15, 20, 0), - gsSP2Triangles(11, 9, 23, 0, 11, 23, 21, 0), - gsSP2Triangles(24, 10, 12, 0, 24, 12, 22, 0), - gsSP2Triangles(9, 0, 25, 0, 9, 25, 23, 0), - gsSP2Triangles(26, 1, 10, 0, 26, 10, 24, 0), - gsSP2Triangles(5, 7, 16, 0, 5, 16, 27, 0), - gsSP2Triangles(17, 8, 6, 0, 17, 6, 28, 0), - gsSP2Triangles(3, 5, 27, 0, 3, 27, 29, 0), - gsSP2Triangles(28, 6, 4, 0, 28, 4, 30, 0), - gsSP2Triangles(2, 3, 29, 0, 2, 29, 31, 0), - gsSPVertex(&subject_Suzanne_normal[439], 8, 0), - gsSPVertex(&subject_Suzanne_normal[448], 1, 8), - gsSPVertex(&subject_Suzanne_normal[495], 4, 9), - gsSPVertex(&subject_Suzanne_normal[501], 2, 13), - gsSPVertex(&subject_Suzanne_normal[506], 17, 15), - gsSP2Triangles(15, 8, 7, 0, 15, 7, 17, 0), - gsSP2Triangles(4, 6, 16, 0, 4, 16, 18, 0), - gsSP2Triangles(17, 7, 5, 0, 17, 5, 19, 0), - gsSP2Triangles(0, 4, 18, 0, 0, 18, 20, 0), - gsSP2Triangles(19, 5, 3, 0, 19, 3, 21, 0), - gsSP2Triangles(1, 0, 20, 0, 1, 20, 13, 0), - gsSP2Triangles(21, 3, 2, 0, 21, 2, 14, 0), - gsSP2Triangles(9, 11, 22, 0, 9, 22, 23, 0), - gsSP2Triangles(24, 12, 10, 0, 24, 10, 25, 0), - gsSP2Triangles(23, 22, 26, 0, 23, 26, 27, 0), - gsSP2Triangles(28, 24, 25, 0, 28, 25, 29, 0), - gsSP2Triangles(27, 26, 30, 0, 27, 30, 31, 0), - gsSPVertex(&subject_Suzanne_normal[487], 13, 0), - gsSPVertex(&subject_Suzanne_normal[501], 4, 13), - gsSPVertex(&subject_Suzanne_normal[513], 4, 17), - gsSPVertex(&subject_Suzanne_normal[518], 11, 21), - gsSP2Triangles(26, 22, 23, 0, 26, 23, 27, 0), - gsSP2Triangles(25, 24, 28, 0, 25, 28, 29, 0), - gsSP2Triangles(30, 26, 27, 0, 30, 27, 31, 0), - gsSP2Triangles(15, 1, 25, 0, 15, 25, 29, 0), - gsSP2Triangles(27, 3, 16, 0, 27, 16, 31, 0), - gsSP2Triangles(0, 21, 25, 0, 0, 25, 1, 0), - gsSP2Triangles(27, 23, 2, 0, 27, 2, 3, 0), - gsSP2Triangles(0, 4, 18, 0, 0, 18, 21, 0), - gsSP2Triangles(20, 5, 2, 0, 20, 2, 23, 0), - gsSP2Triangles(8, 18, 4, 0, 8, 4, 6, 0), - gsSP2Triangles(5, 20, 9, 0, 5, 9, 7, 0), - gsSP2Triangles(10, 12, 13, 0, 10, 13, 17, 0), - gsSP1Triangle(11, 19, 14, 0), - gsSPVertex(&subject_Suzanne_normal[432], 1, 0), - gsSPVertex(&subject_Suzanne_normal[434], 1, 1), - gsSPVertex(&subject_Suzanne_normal[436], 1, 2), - gsSPVertex(&subject_Suzanne_normal[438], 1, 3), - gsSPVertex(&subject_Suzanne_normal[498], 1, 4), - gsSPVertex(&subject_Suzanne_normal[500], 14, 5), - gsSPVertex(&subject_Suzanne_normal[515], 1, 19), - gsSPVertex(&subject_Suzanne_normal[517], 1, 20), - gsSPVertex(&subject_Suzanne_normal[519], 1, 21), - gsSPVertex(&subject_Suzanne_normal[521], 1, 22), - gsSPVertex(&subject_Suzanne_normal[523], 1, 23), - gsSPVertex(&subject_Suzanne_normal[525], 8, 24), - gsSP2Triangles(4, 7, 5, 0, 18, 6, 16, 0), - gsSP2Triangles(18, 16, 20, 0, 19, 21, 17, 0), - gsSP2Triangles(19, 17, 7, 0, 14, 22, 20, 0), - gsSP2Triangles(14, 20, 16, 0, 21, 23, 15, 0), - gsSP2Triangles(21, 15, 17, 0, 12, 24, 22, 0), - gsSP2Triangles(12, 22, 14, 0, 23, 26, 13, 0), - gsSP2Triangles(23, 13, 15, 0, 10, 25, 24, 0), - gsSP2Triangles(10, 24, 12, 0, 26, 27, 11, 0), - gsSP2Triangles(26, 11, 13, 0, 8, 25, 10, 0), - gsSP2Triangles(11, 27, 9, 0, 0, 2, 28, 0), - gsSP2Triangles(0, 28, 29, 0, 30, 3, 1, 0), - gsSP1Triangle(30, 1, 31, 0), - gsSPVertex(&subject_Suzanne_normal[379], 1, 0), - gsSPVertex(&subject_Suzanne_normal[399], 1, 1), - gsSPVertex(&subject_Suzanne_normal[424], 1, 2), - gsSPVertex(&subject_Suzanne_normal[426], 1, 3), - gsSPVertex(&subject_Suzanne_normal[428], 1, 4), - gsSPVertex(&subject_Suzanne_normal[430], 1, 5), - gsSPVertex(&subject_Suzanne_normal[432], 1, 6), - gsSPVertex(&subject_Suzanne_normal[434], 1, 7), - gsSPVertex(&subject_Suzanne_normal[529], 24, 8), - gsSP2Triangles(4, 6, 9, 0, 4, 9, 12, 0), - gsSP2Triangles(11, 7, 5, 0, 11, 5, 13, 0), - gsSP2Triangles(2, 4, 12, 0, 2, 12, 14, 0), - gsSP2Triangles(13, 5, 3, 0, 13, 3, 15, 0), - gsSP2Triangles(16, 2, 14, 0, 16, 14, 17, 0), - gsSP2Triangles(15, 3, 18, 0, 15, 18, 19, 0), - gsSP2Triangles(20, 16, 17, 0, 20, 17, 21, 0), - gsSP2Triangles(19, 18, 22, 0, 19, 22, 23, 0), - gsSP2Triangles(24, 20, 21, 0, 24, 21, 25, 0), - gsSP2Triangles(23, 22, 26, 0, 23, 26, 27, 0), - gsSP2Triangles(21, 9, 8, 0, 21, 8, 25, 0), - gsSP2Triangles(10, 11, 23, 0, 10, 23, 27, 0), - gsSP2Triangles(21, 17, 12, 0, 21, 12, 9, 0), - gsSP2Triangles(13, 19, 23, 0, 13, 23, 11, 0), - gsSP2Triangles(17, 14, 12, 0, 13, 15, 19, 0), - gsSP2Triangles(0, 1, 28, 0, 0, 28, 29, 0), - gsSP2Triangles(26, 30, 31, 0, 26, 31, 27, 0), - gsSPVertex(&subject_Suzanne_normal[436], 1, 0), - gsSPVertex(&subject_Suzanne_normal[438], 1, 1), - gsSPVertex(&subject_Suzanne_normal[457], 1, 2), - gsSPVertex(&subject_Suzanne_normal[459], 1, 3), - gsSPVertex(&subject_Suzanne_normal[529], 1, 4), - gsSPVertex(&subject_Suzanne_normal[531], 1, 5), - gsSPVertex(&subject_Suzanne_normal[546], 1, 6), - gsSPVertex(&subject_Suzanne_normal[548], 1, 7), - gsSPVertex(&subject_Suzanne_normal[552], 4, 8), - gsSP2Triangles(9, 6, 4, 0, 9, 4, 10, 0), - gsSP2Triangles(5, 7, 8, 0, 5, 8, 11, 0), - gsSP2Triangles(2, 10, 4, 0, 2, 4, 0, 0), - gsSP2Triangles(5, 11, 3, 0, 5, 3, 1, 0), - gsSPEndDisplayList(), -}; diff --git a/src/scene/cube.c b/src/scene/cube.c index 860beec..ed7b56d 100644 --- a/src/scene/cube.c +++ b/src/scene/cube.c @@ -64,7 +64,7 @@ void cubeRender(void* data, struct RenderState* renderState) { transformToMatrixL(&cube->rigidBody.transform, matrix, SCENE_SCALE); gSPMatrix(renderState->dl++, matrix, G_MTX_MODELVIEW | G_MTX_PUSH | G_MTX_MUL); - gSPDisplayList(renderState->dl++, cube_CubeSimpleBevel_mesh); + gSPDisplayList(renderState->dl++, cube_gfx); gSPPopMatrix(renderState->dl++, G_MTX_MODELVIEW); } diff --git a/src/scene/scene.c b/src/scene/scene.c index 2f93c3c..2bc76b4 100644 --- a/src/scene/scene.c +++ b/src/scene/scene.c @@ -24,6 +24,11 @@ #include "dynamic_scene.h" struct Vector3 gStartPosition = {5.0f, 1.2f, -5.0f}; +struct Vector3 gPortalGunOffset = {0.100957, -0.113587, -0.28916}; +struct Vector3 gPortalGunForward = {0.1f, -0.1f, 1.0f}; +struct Vector3 gPortalGunUp = {0.0f, 1.0f, 0.0f}; + +Lights1 gSceneLights = gdSPDefLights1(128, 128, 128, 128, 128, 128, 0, 127, 0); void sceneInit(struct Scene* scene) { cameraInit(&scene->camera, 45.0f, 0.125f * SCENE_SCALE, 80.0f * SCENE_SCALE); @@ -85,7 +90,24 @@ void sceneRenderPerformanceMetrics(struct Scene* scene, struct RenderState* rend gDPPipeSync(renderState->dl++); } +void sceneRenderPortalGun(struct Scene* scene, struct RenderState* renderState) { + struct Transform gunTransform; + transformPoint(&scene->player.body.transform, &gPortalGunOffset, &gunTransform.position); + struct Quaternion relativeRotation; + quatLook(&gPortalGunForward, &gPortalGunUp, &relativeRotation); + quatMultiply(&scene->player.body.transform.rotation, &relativeRotation, &gunTransform.rotation); + gunTransform.scale = gOneVec; + Mtx* matrix = renderStateRequestMatrices(renderState, 1); + transformToMatrixL(&gunTransform, matrix, SCENE_SCALE); + + gSPMatrix(renderState->dl++, matrix, G_MTX_MODELVIEW | G_MTX_PUSH | G_MTX_MUL); + gSPDisplayList(renderState->dl++, v_portal_gun_gfx); + gSPPopMatrix(renderState->dl++, G_MTX_MODELVIEW); +} + void sceneRender(struct Scene* scene, struct RenderState* renderState, struct GraphicsTask* task) { + gSPSetLights1(renderState->dl++, gSceneLights); + struct RenderProps renderProperties; renderPropsInit(&renderProperties, &scene->camera, (float)SCREEN_WD / (float)SCREEN_HT, renderState); @@ -99,11 +121,13 @@ void sceneRender(struct Scene* scene, struct RenderState* renderState, struct Gr sceneRenderWithProperties(scene, &renderProperties, renderState); - gDPPipeSync(renderState->dl++); + sceneRenderPortalGun(scene, renderState); + gDPPipeSync(renderState->dl++); gDPSetRenderMode(renderState->dl++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gSPGeometryMode(renderState->dl++, G_ZBUFFER | G_LIGHTING | G_CULL_BOTH, G_SHADE); + hudRender(renderState); // sceneRenderPerformanceMetrics(scene, renderState, task);