Roi Atalla avatar Roi Atalla committed c5d9b58

Example 8.1 ported, with the appropriate changes to Mesh to support different vaos.

Comments (0)

Files changed (9)

src/main/java/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example2/Example7_2.java

 
 public class Example7_2 extends GLProgram {
 	public static void main(String[] args) {
-		new Example7_2().run();
+		new Example7_2().run(true);
 	}
 	
 	private final TreeData[] forest = {

src/main/java/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/Example8_1.java

+package com.ra4king.opengl.arcsynthesis.gl33.chapter8.example1;
+
+import static org.lwjgl.opengl.GL11.*;
+import static org.lwjgl.opengl.GL20.*;
+
+import org.lwjgl.input.Keyboard;
+
+import com.ra4king.opengl.GLProgram;
+import com.ra4king.opengl.util.Mesh;
+import com.ra4king.opengl.util.ShaderProgram;
+import com.ra4king.opengl.util.math.Matrix4;
+import com.ra4king.opengl.util.math.MatrixStack;
+
+public class Example8_1 extends GLProgram {
+	public static void main(String[] args) {
+		new Example8_1().run(true);
+	}
+	
+	private ShaderProgram program;
+	
+	private int modelToCameraMatrixUniform;
+	private int cameraToClipMatrixUniform;
+	private int baseColorUniform;
+	
+	private Matrix4 cameraToClipMatrix;
+	
+	private Mesh[] gimbals;
+	private Mesh ship;
+	
+	private GimbalAngles angles;
+	
+	private boolean drawGimbals = true;
+	
+	public Example8_1() {
+		super("Example 8.1", 500, 500, true);
+	}
+	
+	@Override
+	public void init() {
+		glClearColor(0, 0, 0, 0);
+		glClearDepth(1);
+		
+		program = new ShaderProgram(readFromFile("example8.1.vert"), readFromFile("example8.1.frag"));
+		
+		modelToCameraMatrixUniform = glGetUniformLocation(program.getProgram(), "modelToCameraMatrix");
+		cameraToClipMatrixUniform = glGetUniformLocation(program.getProgram(), "cameraToClipMatrix");
+		baseColorUniform = glGetUniformLocation(program.getProgram(), "baseColor");
+		
+		cameraToClipMatrix = new Matrix4();
+		
+		String[] gimbalNames = { "example8.1.LargeGimbal.xml", "example8.1.MediumGimbal.xml", "example8.1.SmallGimbal.xml" };
+		gimbals = new Mesh[gimbalNames.length];
+		
+		try {
+			for(int a = 0; a < gimbalNames.length; a++)
+				gimbals[a] = new Mesh(getClass().getResource(gimbalNames[a]));
+			
+			ship = new Mesh(getClass().getResource("example8.1.Ship.xml"));
+		}
+		catch(Exception exc) {
+			exc.printStackTrace();
+			destroy();
+		}
+		
+		angles = new GimbalAngles();
+		
+		glEnable(GL_CULL_FACE);
+		glCullFace(GL_BACK);
+		glFrontFace(GL_CW);
+		
+		glEnable(GL_DEPTH_TEST);
+		glDepthMask(true);
+		glDepthFunc(GL_LEQUAL);
+		glDepthRange(0, 1);
+	}
+	
+	@Override
+	public void resized() {
+		super.resized();
+		
+		cameraToClipMatrix.clearToPerspective(20*(float)Math.PI/180, getWidth(), getHeight(), 1, 600);
+		
+		program.begin();
+		glUniformMatrix4(cameraToClipMatrixUniform, false, cameraToClipMatrix.getBuffer());
+		program.end();
+	}
+	
+	@Override
+	public void update(long deltaTime) {
+		float speed = 9 * deltaTime / (float)1e9;
+		
+		if(Keyboard.isKeyDown(Keyboard.KEY_W))
+			angles.x += speed;
+		if(Keyboard.isKeyDown(Keyboard.KEY_S))
+			angles.x -= speed;
+		
+		if(Keyboard.isKeyDown(Keyboard.KEY_A))
+			angles.y += speed;
+		if(Keyboard.isKeyDown(Keyboard.KEY_D))
+			angles.y -= speed;
+		
+		if(Keyboard.isKeyDown(Keyboard.KEY_Q))
+			angles.z += speed;
+		if(Keyboard.isKeyDown(Keyboard.KEY_E))
+			angles.z -= speed;
+	}
+	
+	@Override
+	public void keyPressed(int key, char c, long nanos) {
+		if(key == Keyboard.KEY_SPACE)
+			drawGimbals = !drawGimbals;
+	}
+	
+	@Override
+	public void render() {
+		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+		
+		MatrixStack stack = new MatrixStack();
+		
+		stack.getTop().translate(0, 0, -200);
+		
+		stack.getTop().rotate(angles.x, 1, 0, 0);
+		drawGimbal(stack, GimbalAxis.GIMBAL_X_AXIS, 0.4f, 0.4f, 1, 1);
+		stack.getTop().rotate(angles.y, 0, 1, 0);
+		drawGimbal(stack, GimbalAxis.GIMBAL_Y_AXIS, 0, 1, 0, 1);
+		stack.getTop().rotate(angles.z, 0, 0, 1);
+		drawGimbal(stack, GimbalAxis.GIMBAL_Z_AXIS, 1, 0.3f, 0.3f, 1);
+		
+		program.begin();
+		stack.getTop().scale(3, 3, 3).rotate(-90*(float)Math.PI/180, 1, 0, 0);
+		glUniform4f(baseColorUniform, 1, 1, 1, 1);
+		glUniformMatrix4(modelToCameraMatrixUniform, false, stack.getTop().getBuffer());
+		ship.render("tint");
+		program.end();
+	}
+	
+	private void drawGimbal(MatrixStack stack, GimbalAxis axis, float r, float b, float g, float a) {
+		if(!drawGimbals)
+			return;
+		
+		stack.pushMatrix();
+		
+		switch(axis) {
+			case GIMBAL_X_AXIS:
+				break;
+			case GIMBAL_Y_AXIS:
+				stack.getTop().rotate(90, 1, 0, 0);
+				stack.getTop().rotate(90, 0, 0, 1);
+				break;
+			case GIMBAL_Z_AXIS:
+				stack.getTop().rotate(90, 1, 0, 0);
+				stack.getTop().rotate(90, 0, 1, 0);
+				break;
+		}
+		
+		program.begin();
+		glUniform4f(baseColorUniform, r, b, g, 1);
+		glUniformMatrix4(modelToCameraMatrixUniform, false, stack.getTop().getBuffer());
+		gimbals[axis.ordinal()].render();
+		program.end();
+		
+		stack.popMatrix();
+	}
+	
+	private static class GimbalAngles {
+		private float x, y, z;
+	}
+	
+	private static enum GimbalAxis {
+		GIMBAL_X_AXIS,
+		GIMBAL_Y_AXIS,
+		GIMBAL_Z_AXIS
+	}
+}

src/main/java/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.LargeGimbal.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?oxygen RNGSchema="../../Documents/meshFormat.rnc" type="compact"?>
+
+<mesh xmlns="http://www.arcsynthesis.com/gltut/mesh" >
+	<attribute index="0" type="float" size="3" > 
+		28.642962479172 4.5365956858331 1
+		26.667585756471 4.2237270178446 1
+		27.580641350571 8.961485518103 1
+		25.67852815398 8.3434520340959 1
+		25.839194441925 13.165714207455 1
+		24.057181032137 12.257733917285 1
+		23.461501883368 17.045759865044 1
+		21.843467270722 15.870190219179 1
+		20.506110258098 20.506083050713 1
+		19.091895757539 19.091870426526 1
+		17.04579099363 23.46147926712 1
+		15.870219200966 21.843446214215 1
+		13.165748490754 25.8391769737 1
+		12.257765836219 24.057164768617 1
+		8.9615221119493 27.580629460494 1
+		8.3434861042286 25.678517083908 1
+		4.5366336891655 28.642956460015 1
+		4.2237624002576 26.667580152428 1
+		3.8477052003648e-005 28.999999999974 1
+		3.5823462210293e-005 26.999999999976 1
+		-4.5365576824927 28.642968498279 1
+		-4.2236916354242 26.667591360467 1
+		-8.9614489242409 27.5806532406 1
+		-8.3434179639484 25.678539224007 1
+		-13.165679924132 25.839211910105 1
+		-12.257701998329 24.057197295615 1
+		-17.045728736428 23.461524499574 1
+		-15.870161237364 21.84348832719 1
+		-20.506055843293 20.506137465446 1
+		-19.091845095479 19.091921088519 1
+		-23.461456650831 17.045822122186 1
+		-21.84342515767 15.870248182725 1
+		-25.83915950543 13.165782774031 1
+		-24.057148505055 12.257797755132 1
+		-27.580617570367 8.9615587057798 1
+		-25.67850601379 8.3435201743467 1
+		-28.642950440808 4.53667169249 1
+		-26.667574548338 4.2237977826631 1
+		-28.999999999898 7.6954104007229e-005 1
+		-26.999999999905 7.1646924420524e-005 1
+		-28.642974517336 -4.5365196791442 1
+		-26.667596964416 -4.2236562529963 1
+		-27.58066513058 -8.961412330363 1
+		-25.678550293989 -8.3433838937863 1
+		-25.839229378239 -13.165645640786 1
+		-24.05721355905 -12.257670079352 1
+		-23.461547115739 -17.045697607782 1
+		-21.843509383619 -15.870132255521 1
+		-20.506164672758 -20.506028635836 1
+		-19.091946419464 -19.091819764399 1
+		-17.045853250712 -23.4614340345 1
+		-15.870277164456 -21.843404101086 1
+		-13.165817057284 -25.839142037113 1
+		-12.257829674023 -24.05713224145 1
+		-8.9615952995946 -27.580605680193 1
+		-8.3435542444501 -25.678494943628 1
+		-4.5367096958065 -28.64294442155 1
+		-4.2238331650612 -26.667568944201 1
+		-0.00011543115602355 -28.99999999977 1
+		-0.00010747038664262 -26.999999999786 1
+		4.5364816757878 -28.642980536342 1
+		4.2236208705611 -26.667602568318 1
+		8.9613757364694 -27.580677020512 1
+		8.3433498236094 -25.678561363925 1
+		13.165611357416 -25.839246846328 1
+		12.257638160353 -24.057229822443 1
+		17.045666479106 -23.461569731863 1
+		15.87010327365 -21.843530440011 1
+		20.506001428343 -20.506191880034 1
+		19.091794433285 -19.091971750377 1
+		23.461411418128 -17.045884379208 1
+		21.843383044464 -15.870306146159 1
+		25.839124568752 -13.165851340514 1
+		24.057115977803 -12.257861592893 1
+		27.58059378997 -8.9616318933935 1
+		25.67848387342 -8.3435883145388 1
+		28.642938402241 -4.536747699115 1
+		26.667563340018 -4.2238685474519 1
+		28.999999999592 -0.00015390820801392 1
+		26.99999999962 -0.00014329384884054 1
+		26.667585756471 4.2237270178446 1
+		26.667585756471 4.2237270178446 -1
+		25.67852815398 8.3434520340959 1
+		25.67852815398 8.3434520340959 -1
+		24.057181032137 12.257733917285 1
+		24.057181032137 12.257733917285 -1
+		21.843467270722 15.870190219179 1
+		21.843467270722 15.870190219179 -1
+		19.091895757539 19.091870426526 1
+		19.091895757539 19.091870426526 -1
+		15.870219200966 21.843446214215 1
+		15.870219200966 21.843446214215 -1
+		12.257765836219 24.057164768617 1
+		12.257765836219 24.057164768617 -1
+		8.3434861042286 25.678517083908 1
+		8.3434861042286 25.678517083908 -1
+		4.2237624002576 26.667580152428 1
+		4.2237624002576 26.667580152428 -1
+		3.5823462210293e-005 26.999999999976 1
+		3.5823462210293e-005 26.999999999976 -1
+		-4.2236916354242 26.667591360467 1
+		-4.2236916354242 26.667591360467 -1
+		-8.3434179639484 25.678539224007 1
+		-8.3434179639484 25.678539224007 -1
+		-12.257701998329 24.057197295615 1
+		-12.257701998329 24.057197295615 -1
+		-15.870161237364 21.84348832719 1
+		-15.870161237364 21.84348832719 -1
+		-19.091845095479 19.091921088519 1
+		-19.091845095479 19.091921088519 -1
+		-21.84342515767 15.870248182725 1
+		-21.84342515767 15.870248182725 -1
+		-24.057148505055 12.257797755132 1
+		-24.057148505055 12.257797755132 -1
+		-25.67850601379 8.3435201743467 1
+		-25.67850601379 8.3435201743467 -1
+		-26.667574548338 4.2237977826631 1
+		-26.667574548338 4.2237977826631 -1
+		-26.999999999905 7.1646924420524e-005 1
+		-26.999999999905 7.1646924420524e-005 -1
+		-26.667596964416 -4.2236562529963 1
+		-26.667596964416 -4.2236562529963 -1
+		-25.678550293989 -8.3433838937863 1
+		-25.678550293989 -8.3433838937863 -1
+		-24.05721355905 -12.257670079352 1
+		-24.05721355905 -12.257670079352 -1
+		-21.843509383619 -15.870132255521 1
+		-21.843509383619 -15.870132255521 -1
+		-19.091946419464 -19.091819764399 1
+		-19.091946419464 -19.091819764399 -1
+		-15.870277164456 -21.843404101086 1
+		-15.870277164456 -21.843404101086 -1
+		-12.257829674023 -24.05713224145 1
+		-12.257829674023 -24.05713224145 -1
+		-8.3435542444501 -25.678494943628 1
+		-8.3435542444501 -25.678494943628 -1
+		-4.2238331650612 -26.667568944201 1
+		-4.2238331650612 -26.667568944201 -1
+		-0.00010747038664262 -26.999999999786 1
+		-0.00010747038664262 -26.999999999786 -1
+		4.2236208705611 -26.667602568318 1
+		4.2236208705611 -26.667602568318 -1
+		8.3433498236094 -25.678561363925 1
+		8.3433498236094 -25.678561363925 -1
+		12.257638160353 -24.057229822443 1
+		12.257638160353 -24.057229822443 -1
+		15.87010327365 -21.843530440011 1
+		15.87010327365 -21.843530440011 -1
+		19.091794433285 -19.091971750377 1
+		19.091794433285 -19.091971750377 -1
+		21.843383044464 -15.870306146159 1
+		21.843383044464 -15.870306146159 -1
+		24.057115977803 -12.257861592893 1
+		24.057115977803 -12.257861592893 -1
+		25.67848387342 -8.3435883145388 1
+		25.67848387342 -8.3435883145388 -1
+		26.667563340018 -4.2238685474519 1
+		26.667563340018 -4.2238685474519 -1
+		26.99999999962 -0.00014329384884054 1
+		26.99999999962 -0.00014329384884054 -1
+		26.667585756471 4.2237270178446 -1
+		28.642962479172 4.5365956858331 -1
+		25.67852815398 8.3434520340959 -1
+		27.580641350571 8.961485518103 -1
+		24.057181032137 12.257733917285 -1
+		25.839194441925 13.165714207455 -1
+		21.843467270722 15.870190219179 -1
+		23.461501883368 17.045759865044 -1
+		19.091895757539 19.091870426526 -1
+		20.506110258098 20.506083050713 -1
+		15.870219200966 21.843446214215 -1
+		17.04579099363 23.46147926712 -1
+		12.257765836219 24.057164768617 -1
+		13.165748490754 25.8391769737 -1
+		8.3434861042286 25.678517083908 -1
+		8.9615221119493 27.580629460494 -1
+		4.2237624002576 26.667580152428 -1
+		4.5366336891655 28.642956460015 -1
+		3.5823462210293e-005 26.999999999976 -1
+		3.8477052003648e-005 28.999999999974 -1
+		-4.2236916354242 26.667591360467 -1
+		-4.5365576824927 28.642968498279 -1
+		-8.3434179639484 25.678539224007 -1
+		-8.9614489242409 27.5806532406 -1
+		-12.257701998329 24.057197295615 -1
+		-13.165679924132 25.839211910105 -1
+		-15.870161237364 21.84348832719 -1
+		-17.045728736428 23.461524499574 -1
+		-19.091845095479 19.091921088519 -1
+		-20.506055843293 20.506137465446 -1
+		-21.84342515767 15.870248182725 -1
+		-23.461456650831 17.045822122186 -1
+		-24.057148505055 12.257797755132 -1
+		-25.83915950543 13.165782774031 -1
+		-25.67850601379 8.3435201743467 -1
+		-27.580617570367 8.9615587057798 -1
+		-26.667574548338 4.2237977826631 -1
+		-28.642950440808 4.53667169249 -1
+		-26.999999999905 7.1646924420524e-005 -1
+		-28.999999999898 7.6954104007229e-005 -1
+		-26.667596964416 -4.2236562529963 -1
+		-28.642974517336 -4.5365196791442 -1
+		-25.678550293989 -8.3433838937863 -1
+		-27.58066513058 -8.961412330363 -1
+		-24.05721355905 -12.257670079352 -1
+		-25.839229378239 -13.165645640786 -1
+		-21.843509383619 -15.870132255521 -1
+		-23.461547115739 -17.045697607782 -1
+		-19.091946419464 -19.091819764399 -1
+		-20.506164672758 -20.506028635836 -1
+		-15.870277164456 -21.843404101086 -1
+		-17.045853250712 -23.4614340345 -1
+		-12.257829674023 -24.05713224145 -1
+		-13.165817057284 -25.839142037113 -1
+		-8.3435542444501 -25.678494943628 -1
+		-8.9615952995946 -27.580605680193 -1
+		-4.2238331650612 -26.667568944201 -1
+		-4.5367096958065 -28.64294442155 -1
+		-0.00010747038664262 -26.999999999786 -1
+		-0.00011543115602355 -28.99999999977 -1
+		4.2236208705611 -26.667602568318 -1
+		4.5364816757878 -28.642980536342 -1
+		8.3433498236094 -25.678561363925 -1
+		8.9613757364694 -27.580677020512 -1
+		12.257638160353 -24.057229822443 -1
+		13.165611357416 -25.839246846328 -1
+		15.87010327365 -21.843530440011 -1
+		17.045666479106 -23.461569731863 -1
+		19.091794433285 -19.091971750377 -1
+		20.506001428343 -20.506191880034 -1
+		21.843383044464 -15.870306146159 -1
+		23.461411418128 -17.045884379208 -1
+		24.057115977803 -12.257861592893 -1
+		25.839124568752 -13.165851340514 -1
+		25.67848387342 -8.3435883145388 -1
+		27.58059378997 -8.9616318933935 -1
+		26.667563340018 -4.2238685474519 -1
+		28.642938402241 -4.536747699115 -1
+		26.99999999962 -0.00014329384884054 -1
+		28.999999999592 -0.00015390820801392 -1
+		28.642962479172 4.5365956858331 -1
+		28.642962479172 4.5365956858331 1
+		27.580641350571 8.961485518103 -1
+		27.580641350571 8.961485518103 1
+		25.839194441925 13.165714207455 -1
+		25.839194441925 13.165714207455 1
+		23.461501883368 17.045759865044 -1
+		23.461501883368 17.045759865044 1
+		20.506110258098 20.506083050713 -1
+		20.506110258098 20.506083050713 1
+		17.04579099363 23.46147926712 -1
+		17.04579099363 23.46147926712 1
+		13.165748490754 25.8391769737 -1
+		13.165748490754 25.8391769737 1
+		8.9615221119493 27.580629460494 -1
+		8.9615221119493 27.580629460494 1
+		4.5366336891655 28.642956460015 -1
+		4.5366336891655 28.642956460015 1
+		3.8477052003648e-005 28.999999999974 -1
+		3.8477052003648e-005 28.999999999974 1
+		-4.5365576824927 28.642968498279 -1
+		-4.5365576824927 28.642968498279 1
+		-8.9614489242409 27.5806532406 -1
+		-8.9614489242409 27.5806532406 1
+		-13.165679924132 25.839211910105 -1
+		-13.165679924132 25.839211910105 1
+		-17.045728736428 23.461524499574 -1
+		-17.045728736428 23.461524499574 1
+		-20.506055843293 20.506137465446 -1
+		-20.506055843293 20.506137465446 1
+		-23.461456650831 17.045822122186 -1
+		-23.461456650831 17.045822122186 1
+		-25.83915950543 13.165782774031 -1
+		-25.83915950543 13.165782774031 1
+		-27.580617570367 8.9615587057798 -1
+		-27.580617570367 8.9615587057798 1
+		-28.642950440808 4.53667169249 -1
+		-28.642950440808 4.53667169249 1
+		-28.999999999898 7.6954104007229e-005 -1
+		-28.999999999898 7.6954104007229e-005 1
+		-28.642974517336 -4.5365196791442 -1
+		-28.642974517336 -4.5365196791442 1
+		-27.58066513058 -8.961412330363 -1
+		-27.58066513058 -8.961412330363 1
+		-25.839229378239 -13.165645640786 -1
+		-25.839229378239 -13.165645640786 1
+		-23.461547115739 -17.045697607782 -1
+		-23.461547115739 -17.045697607782 1
+		-20.506164672758 -20.506028635836 -1
+		-20.506164672758 -20.506028635836 1
+		-17.045853250712 -23.4614340345 -1
+		-17.045853250712 -23.4614340345 1
+		-13.165817057284 -25.839142037113 -1
+		-13.165817057284 -25.839142037113 1
+		-8.9615952995946 -27.580605680193 -1
+		-8.9615952995946 -27.580605680193 1
+		-4.5367096958065 -28.64294442155 -1
+		-4.5367096958065 -28.64294442155 1
+		-0.00011543115602355 -28.99999999977 -1
+		-0.00011543115602355 -28.99999999977 1
+		4.5364816757878 -28.642980536342 -1
+		4.5364816757878 -28.642980536342 1
+		8.9613757364694 -27.580677020512 -1
+		8.9613757364694 -27.580677020512 1
+		13.165611357416 -25.839246846328 -1
+		13.165611357416 -25.839246846328 1
+		17.045666479106 -23.461569731863 -1
+		17.045666479106 -23.461569731863 1
+		20.506001428343 -20.506191880034 -1
+		20.506001428343 -20.506191880034 1
+		23.461411418128 -17.045884379208 -1
+		23.461411418128 -17.045884379208 1
+		25.839124568752 -13.165851340514 -1
+		25.839124568752 -13.165851340514 1
+		27.58059378997 -8.9616318933935 -1
+		27.58059378997 -8.9616318933935 1
+		28.642938402241 -4.536747699115 -1
+		28.642938402241 -4.536747699115 1
+		28.999999999592 -0.00015390820801392 -1
+		28.999999999592 -0.00015390820801392 1
+		28 0.6 0.6
+		28 -0.6 0.6
+		28 -0.6 -0.6
+		28 0.6 -0.6
+		32 0.6 0.6
+		32 -0.6 0.6
+		32 -0.6 -0.6
+		32 0.6 -0.6
+		28 0.6 0.6
+		28 -0.6 0.6
+		32 -0.6 0.6
+		32 0.6 0.6
+		28 0.6 -0.6
+		28 -0.6 -0.6
+		32 -0.6 -0.6
+		32 0.6 -0.6
+		28 0.6 0.6
+		28 0.6 -0.6
+		32 0.6 -0.6
+		32 0.6 0.6
+		28 -0.6 0.6
+		28 -0.6 -0.6
+		32 -0.6 -0.6
+		32 -0.6 0.6
+		-28 0.6 0.6
+		-28 -0.6 0.6
+		-28 -0.6 -0.6
+		-28 0.6 -0.6
+		-32 0.6 0.6
+		-32 -0.6 0.6
+		-32 -0.6 -0.6
+		-32 0.6 -0.6
+		-28 0.6 0.6
+		-28 -0.6 0.6
+		-32 -0.6 0.6
+		-32 0.6 0.6
+		-28 0.6 -0.6
+		-28 -0.6 -0.6
+		-32 -0.6 -0.6
+		-32 0.6 -0.6
+		-28 0.6 0.6
+		-28 0.6 -0.6
+		-32 0.6 -0.6
+		-32 0.6 0.6
+		-28 -0.6 0.6
+		-28 -0.6 -0.6
+		-32 -0.6 -0.6
+		-32 -0.6 0.6
+	</attribute>
+	<attribute index="1" type="float" size="4" > 
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+	</attribute>
+	<indices cmd="tri-strip" type="ushort" >0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 0 1</indices>
+	<indices cmd="tri-strip" type="ushort" >80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 80 81</indices>
+	<indices cmd="tri-strip" type="ushort" >160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 160 161</indices>
+	<indices cmd="tri-strip" type="ushort" >240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 240 241</indices>
+	<indices cmd="triangles" type="ushort" >320 321 322 322 323 320 324 326 325 326 324 327 328 330 329 331 330 328 332 333 334 335 332 334 336 337 338 338 339 336 340 342 341 342 340 343 344 346 345 346 344 347 348 349 350 350 351 348 352 353 354 355 352 354 356 358 357 359 358 356 360 362 361 362 360 363 364 365 366 366 367 364</indices>
+</mesh>

src/main/java/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.MediumGimbal.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?oxygen RNGSchema="../../Documents/meshFormat.rnc" type="compact"?>
+
+<mesh xmlns="http://www.arcsynthesis.com/gltut/mesh" >
+	<attribute index="0" type="float" size="3" > 
+		24.692209033769 3.9108583498561 1
+		22.716832311068 3.5979896818676 1
+		23.776414957389 7.7254185500888 1
+		21.874301760798 7.1073850660817 1
+		22.27516762235 11.349753627116 1
+		20.493154212562 10.441773336947 1
+		20.225432658076 14.694620573314 1
+		18.60739804543 13.519050927448 1
+		17.677681256981 17.677657802339 1
+		16.263466756422 16.263445178152 1
+		14.694647408301 20.22541316131 1
+		13.519075615637 18.607380108405 1
+		11.349783181685 22.275152563535 1
+		10.44180052715 20.493140358452 1
+		7.725450096508 23.776404707322 1
+		7.1074140887873 21.874292330736 1
+		3.9108911113496 24.692203844841 1
+		3.5980198224416 22.716827537253 1
+		3.3169872416938e-005 24.999999999978 1
+		3.0516282623583e-005 22.99999999998 1
+		-3.9108255883557 24.692214222655 1
+		-3.5979595412873 22.716837084842 1
+		-7.7253870036559 23.776425207414 1
+		-7.1073560433634 21.874311190821 1
+		-11.349724072527 22.275182681125 1
+		-10.441746146725 20.493168066635 1
+		-14.6945937383 20.225452154805 1
+		-13.519026239236 18.607415982421 1
+		-17.677634347666 17.677704711591 1
+		-16.263423599853 16.263488334664 1
+		-20.225393664509 14.694674243264 1
+		-18.607362171348 13.519100303802 1
+		-22.275137504681 11.349812736233 1
+		-20.493126504306 10.441827717335 1
+		-23.776394457213 7.7254816429136 1
+		-21.874282900636 7.1074431114805 1
+		-24.692198655869 3.9109238728362 1
+		-22.716822763399 3.5980499630093 1
+		-24.999999999912 6.6339744833818e-005 1
+		-22.999999999919 6.1032565247113e-005 1
+		-24.692219411496 -3.9107928268485 1
+		-22.716841858577 -3.5979294007006 1
+		-23.776435457397 -7.7253554572095 1
+		-21.874320620805 -7.1073270206327 1
+		-22.275197739861 -11.349694517919 1
+		-20.493181920673 -10.441718956485 1
+		-20.2254716515 -14.69456690326 1
+		-18.60743391938 -13.519001550999 1
+		-17.677728166171 -17.677610892962 1
+		-16.263509912877 -16.263402021525 1
+		-14.6947010782 -20.225374167673 1
+		-13.519124991944 -18.607344234259 1
+		-11.349842290762 -22.275122445787 1
+		-10.441854907501 -20.493112650124 1
+		-7.7255131893056 -23.776384207063 1
+		-7.1074721341612 -21.874273470498 1
+		-3.9109566343159 -24.692193466853 1
+		-3.5980801035707 -22.716817989505 1
+		-9.9509617261683e-005 -24.999999999802 1
+		-9.1548847880749e-005 -22.999999999818 1
+		3.9107600653343 -24.692224600294 1
+		3.5978992601076 -22.716846632271 1
+		7.7253239107495 -23.776445707338 1
+		7.1072979978895 -21.874330050751 1
+		11.34966496329 -22.275212798559 1
+		10.441691766227 -20.493195774674 1
+		14.694540068195 -20.225491148158 1
+		13.518976862739 -18.607451856305 1
+		17.677587438227 -17.677751620719 1
+		16.263380443169 -16.263531491062 1
+		20.2253546708 -14.69472791311 1
+		18.607326297136 -13.519149680061 1
+		22.275107386855 -11.349871845271 1
+		20.493098795907 -10.441882097649 1
+		23.77637395687 -7.7255447356841 1
+		21.874264040321 -7.1075011568293 1
+		24.692188277794 -3.9109893957888 1
+		22.71681321557 -3.5981102441257 1
+		24.999999999648 -0.00013267948966717 1
+		22.999999999676 -0.0001220651304938 1
+		22.716832311068 3.5979896818676 1
+		22.716832311068 3.5979896818676 -1
+		21.874301760798 7.1073850660817 1
+		21.874301760798 7.1073850660817 -1
+		20.493154212562 10.441773336947 1
+		20.493154212562 10.441773336947 -1
+		18.60739804543 13.519050927448 1
+		18.60739804543 13.519050927448 -1
+		16.263466756422 16.263445178152 1
+		16.263466756422 16.263445178152 -1
+		13.519075615637 18.607380108405 1
+		13.519075615637 18.607380108405 -1
+		10.44180052715 20.493140358452 1
+		10.44180052715 20.493140358452 -1
+		7.1074140887873 21.874292330736 1
+		7.1074140887873 21.874292330736 -1
+		3.5980198224416 22.716827537253 1
+		3.5980198224416 22.716827537253 -1
+		3.0516282623583e-005 22.99999999998 1
+		3.0516282623583e-005 22.99999999998 -1
+		-3.5979595412873 22.716837084842 1
+		-3.5979595412873 22.716837084842 -1
+		-7.1073560433634 21.874311190821 1
+		-7.1073560433634 21.874311190821 -1
+		-10.441746146725 20.493168066635 1
+		-10.441746146725 20.493168066635 -1
+		-13.519026239236 18.607415982421 1
+		-13.519026239236 18.607415982421 -1
+		-16.263423599853 16.263488334664 1
+		-16.263423599853 16.263488334664 -1
+		-18.607362171348 13.519100303802 1
+		-18.607362171348 13.519100303802 -1
+		-20.493126504306 10.441827717335 1
+		-20.493126504306 10.441827717335 -1
+		-21.874282900636 7.1074431114805 1
+		-21.874282900636 7.1074431114805 -1
+		-22.716822763399 3.5980499630093 1
+		-22.716822763399 3.5980499630093 -1
+		-22.999999999919 6.1032565247113e-005 1
+		-22.999999999919 6.1032565247113e-005 -1
+		-22.716841858577 -3.5979294007006 1
+		-22.716841858577 -3.5979294007006 -1
+		-21.874320620805 -7.1073270206327 1
+		-21.874320620805 -7.1073270206327 -1
+		-20.493181920673 -10.441718956485 1
+		-20.493181920673 -10.441718956485 -1
+		-18.60743391938 -13.519001550999 1
+		-18.60743391938 -13.519001550999 -1
+		-16.263509912877 -16.263402021525 1
+		-16.263509912877 -16.263402021525 -1
+		-13.519124991944 -18.607344234259 1
+		-13.519124991944 -18.607344234259 -1
+		-10.441854907501 -20.493112650124 1
+		-10.441854907501 -20.493112650124 -1
+		-7.1074721341612 -21.874273470498 1
+		-7.1074721341612 -21.874273470498 -1
+		-3.5980801035707 -22.716817989505 1
+		-3.5980801035707 -22.716817989505 -1
+		-9.1548847880749e-005 -22.999999999818 1
+		-9.1548847880749e-005 -22.999999999818 -1
+		3.5978992601076 -22.716846632271 1
+		3.5978992601076 -22.716846632271 -1
+		7.1072979978895 -21.874330050751 1
+		7.1072979978895 -21.874330050751 -1
+		10.441691766227 -20.493195774674 1
+		10.441691766227 -20.493195774674 -1
+		13.518976862739 -18.607451856305 1
+		13.518976862739 -18.607451856305 -1
+		16.263380443169 -16.263531491062 1
+		16.263380443169 -16.263531491062 -1
+		18.607326297136 -13.519149680061 1
+		18.607326297136 -13.519149680061 -1
+		20.493098795907 -10.441882097649 1
+		20.493098795907 -10.441882097649 -1
+		21.874264040321 -7.1075011568293 1
+		21.874264040321 -7.1075011568293 -1
+		22.71681321557 -3.5981102441257 1
+		22.71681321557 -3.5981102441257 -1
+		22.999999999676 -0.0001220651304938 1
+		22.999999999676 -0.0001220651304938 -1
+		22.716832311068 3.5979896818676 -1
+		24.692209033769 3.9108583498561 -1
+		21.874301760798 7.1073850660817 -1
+		23.776414957389 7.7254185500888 -1
+		20.493154212562 10.441773336947 -1
+		22.27516762235 11.349753627116 -1
+		18.60739804543 13.519050927448 -1
+		20.225432658076 14.694620573314 -1
+		16.263466756422 16.263445178152 -1
+		17.677681256981 17.677657802339 -1
+		13.519075615637 18.607380108405 -1
+		14.694647408301 20.22541316131 -1
+		10.44180052715 20.493140358452 -1
+		11.349783181685 22.275152563535 -1
+		7.1074140887873 21.874292330736 -1
+		7.725450096508 23.776404707322 -1
+		3.5980198224416 22.716827537253 -1
+		3.9108911113496 24.692203844841 -1
+		3.0516282623583e-005 22.99999999998 -1
+		3.3169872416938e-005 24.999999999978 -1
+		-3.5979595412873 22.716837084842 -1
+		-3.9108255883557 24.692214222655 -1
+		-7.1073560433634 21.874311190821 -1
+		-7.7253870036559 23.776425207414 -1
+		-10.441746146725 20.493168066635 -1
+		-11.349724072527 22.275182681125 -1
+		-13.519026239236 18.607415982421 -1
+		-14.6945937383 20.225452154805 -1
+		-16.263423599853 16.263488334664 -1
+		-17.677634347666 17.677704711591 -1
+		-18.607362171348 13.519100303802 -1
+		-20.225393664509 14.694674243264 -1
+		-20.493126504306 10.441827717335 -1
+		-22.275137504681 11.349812736233 -1
+		-21.874282900636 7.1074431114805 -1
+		-23.776394457213 7.7254816429136 -1
+		-22.716822763399 3.5980499630093 -1
+		-24.692198655869 3.9109238728362 -1
+		-22.999999999919 6.1032565247113e-005 -1
+		-24.999999999912 6.6339744833818e-005 -1
+		-22.716841858577 -3.5979294007006 -1
+		-24.692219411496 -3.9107928268485 -1
+		-21.874320620805 -7.1073270206327 -1
+		-23.776435457397 -7.7253554572095 -1
+		-20.493181920673 -10.441718956485 -1
+		-22.275197739861 -11.349694517919 -1
+		-18.60743391938 -13.519001550999 -1
+		-20.2254716515 -14.69456690326 -1
+		-16.263509912877 -16.263402021525 -1
+		-17.677728166171 -17.677610892962 -1
+		-13.519124991944 -18.607344234259 -1
+		-14.6947010782 -20.225374167673 -1
+		-10.441854907501 -20.493112650124 -1
+		-11.349842290762 -22.275122445787 -1
+		-7.1074721341612 -21.874273470498 -1
+		-7.7255131893056 -23.776384207063 -1
+		-3.5980801035707 -22.716817989505 -1
+		-3.9109566343159 -24.692193466853 -1
+		-9.1548847880749e-005 -22.999999999818 -1
+		-9.9509617261683e-005 -24.999999999802 -1
+		3.5978992601076 -22.716846632271 -1
+		3.9107600653343 -24.692224600294 -1
+		7.1072979978895 -21.874330050751 -1
+		7.7253239107495 -23.776445707338 -1
+		10.441691766227 -20.493195774674 -1
+		11.34966496329 -22.275212798559 -1
+		13.518976862739 -18.607451856305 -1
+		14.694540068195 -20.225491148158 -1
+		16.263380443169 -16.263531491062 -1
+		17.677587438227 -17.677751620719 -1
+		18.607326297136 -13.519149680061 -1
+		20.2253546708 -14.69472791311 -1
+		20.493098795907 -10.441882097649 -1
+		22.275107386855 -11.349871845271 -1
+		21.874264040321 -7.1075011568293 -1
+		23.77637395687 -7.7255447356841 -1
+		22.71681321557 -3.5981102441257 -1
+		24.692188277794 -3.9109893957888 -1
+		22.999999999676 -0.0001220651304938 -1
+		24.999999999648 -0.00013267948966717 -1
+		24.692209033769 3.9108583498561 -1
+		24.692209033769 3.9108583498561 1
+		23.776414957389 7.7254185500888 -1
+		23.776414957389 7.7254185500888 1
+		22.27516762235 11.349753627116 -1
+		22.27516762235 11.349753627116 1
+		20.225432658076 14.694620573314 -1
+		20.225432658076 14.694620573314 1
+		17.677681256981 17.677657802339 -1
+		17.677681256981 17.677657802339 1
+		14.694647408301 20.22541316131 -1
+		14.694647408301 20.22541316131 1
+		11.349783181685 22.275152563535 -1
+		11.349783181685 22.275152563535 1
+		7.725450096508 23.776404707322 -1
+		7.725450096508 23.776404707322 1
+		3.9108911113496 24.692203844841 -1
+		3.9108911113496 24.692203844841 1
+		3.3169872416938e-005 24.999999999978 -1
+		3.3169872416938e-005 24.999999999978 1
+		-3.9108255883557 24.692214222655 -1
+		-3.9108255883557 24.692214222655 1
+		-7.7253870036559 23.776425207414 -1
+		-7.7253870036559 23.776425207414 1
+		-11.349724072527 22.275182681125 -1
+		-11.349724072527 22.275182681125 1
+		-14.6945937383 20.225452154805 -1
+		-14.6945937383 20.225452154805 1
+		-17.677634347666 17.677704711591 -1
+		-17.677634347666 17.677704711591 1
+		-20.225393664509 14.694674243264 -1
+		-20.225393664509 14.694674243264 1
+		-22.275137504681 11.349812736233 -1
+		-22.275137504681 11.349812736233 1
+		-23.776394457213 7.7254816429136 -1
+		-23.776394457213 7.7254816429136 1
+		-24.692198655869 3.9109238728362 -1
+		-24.692198655869 3.9109238728362 1
+		-24.999999999912 6.6339744833818e-005 -1
+		-24.999999999912 6.6339744833818e-005 1
+		-24.692219411496 -3.9107928268485 -1
+		-24.692219411496 -3.9107928268485 1
+		-23.776435457397 -7.7253554572095 -1
+		-23.776435457397 -7.7253554572095 1
+		-22.275197739861 -11.349694517919 -1
+		-22.275197739861 -11.349694517919 1
+		-20.2254716515 -14.69456690326 -1
+		-20.2254716515 -14.69456690326 1
+		-17.677728166171 -17.677610892962 -1
+		-17.677728166171 -17.677610892962 1
+		-14.6947010782 -20.225374167673 -1
+		-14.6947010782 -20.225374167673 1
+		-11.349842290762 -22.275122445787 -1
+		-11.349842290762 -22.275122445787 1
+		-7.7255131893056 -23.776384207063 -1
+		-7.7255131893056 -23.776384207063 1
+		-3.9109566343159 -24.692193466853 -1
+		-3.9109566343159 -24.692193466853 1
+		-9.9509617261683e-005 -24.999999999802 -1
+		-9.9509617261683e-005 -24.999999999802 1
+		3.9107600653343 -24.692224600294 -1
+		3.9107600653343 -24.692224600294 1
+		7.7253239107495 -23.776445707338 -1
+		7.7253239107495 -23.776445707338 1
+		11.34966496329 -22.275212798559 -1
+		11.34966496329 -22.275212798559 1
+		14.694540068195 -20.225491148158 -1
+		14.694540068195 -20.225491148158 1
+		17.677587438227 -17.677751620719 -1
+		17.677587438227 -17.677751620719 1
+		20.2253546708 -14.69472791311 -1
+		20.2253546708 -14.69472791311 1
+		22.275107386855 -11.349871845271 -1
+		22.275107386855 -11.349871845271 1
+		23.77637395687 -7.7255447356841 -1
+		23.77637395687 -7.7255447356841 1
+		24.692188277794 -3.9109893957888 -1
+		24.692188277794 -3.9109893957888 1
+		24.999999999648 -0.00013267948966717 -1
+		24.999999999648 -0.00013267948966717 1
+		24 0.6 0.6
+		24 -0.6 0.6
+		24 -0.6 -0.6
+		24 0.6 -0.6
+		28 0.6 0.6
+		28 -0.6 0.6
+		28 -0.6 -0.6
+		28 0.6 -0.6
+		24 0.6 0.6
+		24 -0.6 0.6
+		28 -0.6 0.6
+		28 0.6 0.6
+		24 0.6 -0.6
+		24 -0.6 -0.6
+		28 -0.6 -0.6
+		28 0.6 -0.6
+		24 0.6 0.6
+		24 0.6 -0.6
+		28 0.6 -0.6
+		28 0.6 0.6
+		24 -0.6 0.6
+		24 -0.6 -0.6
+		28 -0.6 -0.6
+		28 -0.6 0.6
+		-24 0.6 0.6
+		-24 -0.6 0.6
+		-24 -0.6 -0.6
+		-24 0.6 -0.6
+		-28 0.6 0.6
+		-28 -0.6 0.6
+		-28 -0.6 -0.6
+		-28 0.6 -0.6
+		-24 0.6 0.6
+		-24 -0.6 0.6
+		-28 -0.6 0.6
+		-28 0.6 0.6
+		-24 0.6 -0.6
+		-24 -0.6 -0.6
+		-28 -0.6 -0.6
+		-28 0.6 -0.6
+		-24 0.6 0.6
+		-24 0.6 -0.6
+		-28 0.6 -0.6
+		-28 0.6 0.6
+		-24 -0.6 0.6
+		-24 -0.6 -0.6
+		-28 -0.6 -0.6
+		-28 -0.6 0.6
+	</attribute>
+	<attribute index="1" type="float" size="4" > 
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		1 1 1 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.9 0.9 0.9 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.75 0.75 0.75 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+		0.5 0.5 0.5 1
+	</attribute>
+	<indices cmd="tri-strip" type="ushort" >0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 0 1</indices>
+	<indices cmd="tri-strip" type="ushort" >80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 80 81</indices>
+	<indices cmd="tri-strip" type="ushort" >160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 160 161</indices>
+	<indices cmd="tri-strip" type="ushort" >240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 240 241</indices>
+	<indices cmd="triangles" type="ushort" >320 321 322 322 323 320 324 326 325 326 324 327 328 330 329 331 330 328 332 333 334 335 332 334 336 337 338 338 339 336 340 342 341 342 340 343 344 346 345 346 344 347 348 349 350 350 351 348 352 353 354 355 352 354 356 358 357 359 358 356 360 362 361 362 360 363 364 365 366 366 367 364</indices>
+</mesh>

src/main/java/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.Ship.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?oxygen RNGSchema="../../Documents/meshFormat.rnc" type="compact"?>
+
+<mesh xmlns="http://www.arcsynthesis.com/gltut/mesh" >
+	<attribute index="0" type="float" size="3" >
+		0 0 5.486261 
+		0 1 4.091465 
+		0.7365548 0.7365548 4.091465 
+		-0.7365548 0.7365548 4.091465 
+		0 1 4.091465 
+		0 0 5.486261 
+		0.7365548 0.7365548 4.091465 
+		0.8 0 5.091465 
+		0 0 5.486261 
+		-0.7365548 0.7365548 4.091465 
+		0 0 5.486261 
+		-0.8 0 5.091465 
+		1 0 4.091465 
+		0.8 0 5.091465 
+		0.7365548 0.7365548 4.091465 
+		-0.7365548 0.7365548 4.091465 
+		-0.8 0 5.091465 
+		-1 0 4.091465 
+		0 0 4.091465 
+		0.8 0 5.091465 
+		1 0 4.091465 
+		-1 0 4.091465 
+		-0.8 0 5.091465 
+		0 0 4.091465 
+		0 0 4.091465 
+		0 0 5.486261 
+		0.8 0 5.091465 
+		-0.8 0 5.091465 
+		0 0 5.486261 
+		0 0 4.091465 
+		-0.7365548 0.7365548 4.091465 
+		-0.7365548 0.7365548 4.091465 
+		0 1 4.091465