package geometry.basics { import away3d.core.base.SubGeometry; import away3d.entities.Mesh; /** * @author Nicolas Barradeau * http://en.nicoptere.net */ public class D_CustomGeometry extends BaseScene { /** * * cf. lib/doc/CSE167_05.pdf p 37 à 44 * also check the 3d_cheatsheet.pdf * */ public function D_CustomGeometry() { setup(); //create an empty mesh var mesh:Mesh = new Mesh(); //create a subGeometry object var subGeometry:SubGeometry = new SubGeometry(); //create and update a vertex buffer subGeometry.updateVertexData(Vector.([ 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1 ])); //create and update an index buffer subGeometry.updateIndexData(Vector.([ 4, 0, 3, 4, 3, 7, 0, 1, 2, 0, 2, 3, 1, 5, 6, 1, 6, 2, 5, 4, 7, 5, 7, 6, 7, 3, 2, 7, 2, 6, 0, 5, 1, 0, 4, 5 ])); //directly add the subgeometry to the mesh mesh.geometry.addSubGeometry( subGeometry ); //add to scene mesh.material = WHITE; WHITE.lights = lights; mesh.scale( 100 ); addMesh( mesh ); } } }