package primitives
{
import Matrix4x4;
import Vector3d;
import Face;
import flash.display.Graphics;
/**
* 立方体クラス
*/
public class Cube
{
private var faces:Array = new Array();
public function Cube(color:uint) {
// 頂点を作成
var v0:Vertex = new Vertex( 100, -100, 100);
var v1:Vertex = new Vertex( 100, 100, 100);
var v2:Vertex = new Vertex( -100, -100, 100);
// 面を作成
var face1:Face = new Face(v0, v1, v2, color);
this.faces.push(face1);
var v3:Vertex = new Vertex( 100, 100, 100);
var v4:Vertex = new Vertex(-100, 100, 100);
var v5:Vertex = new Vertex(-100, -100, 100);
var face2:Face = new Face(v3, v4, v5, color);
this.faces.push(face2);
var v6:Vertex = new Vertex(-100, -100, -100);
var v7:Vertex = new Vertex(-100, 100, -100);
var v8:Vertex = new Vertex( 100, -100, -100);
var face3:Face = new Face(v6, v7, v8, color);
this.faces.push(face3);
var v9:Vertex = new Vertex(-100, 100, -100);
var v10:Vertex = new Vertex(100, 100, -100);
var v11:Vertex = new Vertex(100, -100, -100);
var face4:Face = new Face(v9, v10, v11, color);
this.faces.push(face4);
var v12:Vertex = new Vertex(100, -100, -100);
var v13:Vertex = new Vertex(100, 100, -100);
var v14:Vertex = new Vertex(100, -100, 100);
var face5:Face = new Face(v12, v13, v14, color);
this.faces.push(face5);
var v15:Vertex = new Vertex(100, 100, -100);
var v16:Vertex = new Vertex(100, 100, 100);
var v17:Vertex = new Vertex(100, -100, 100);
var face6:Face = new Face(v15, v16, v17, color);
this.faces.push(face6);
var v18:Vertex = new Vertex( -100, -100, 100);
var v19:Vertex = new Vertex( -100, 100, 100);
var v20:Vertex = new Vertex( -100, -100, -100);
var face7:Face = new Face(v18, v19, v20, color);
this.faces.push(face7);
var v21:Vertex = new Vertex( -100, 100, 100);
var v22:Vertex = new Vertex( -100, 100, -100);
var v23:Vertex = new Vertex( -100, -100, -100);
var face8:Face = new Face(v21, v22, v23, color);
this.faces.push(face8);
var v24:Vertex = new Vertex(100, 100, 100);
var v25:Vertex = new Vertex(100, 100, -100);
var v26:Vertex = new Vertex( -100, 100, 100);
var face9:Face = new Face(v24, v25, v26, color);
this.faces.push(face9);
var v27:Vertex = new Vertex(100, 100, -100);
var v28:Vertex = new Vertex( -100, 100, -100);
var v29:Vertex = new Vertex( -100, 100, 100);
var face10:Face = new Face(v27, v28, v29, color);
this.faces.push(face10);
}
public function fillPolygon(g:Graphics, persM:Matrix4x4, modelM:Matrix4x4, eyePos:Vector3d, rotM:Matrix4x4, transM:Matrix4x4):void
{
for (var i:int = 0; i < faces.length; i++) {
faces[i].fillPolygon(g, persM, modelM, eyePos, rotM, transM);
}
}
public function persArray(persM:Matrix4x4, modelM:Matrix4x4, eyePos:Vector3d, rotM:Matrix4x4, transM:Matrix4x4, proFaces:Array):void
{
for (var i:int = 0; i < faces.length; i++) {
faces[i].persArray(persM, modelM, eyePos, rotM, transM, proFaces);
}
}
}
}