package
{
import flash.events.Event;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
/* BasicView를 사용하여 큐브를 생성하고 각면에 비트맵이미지를 텍스쳐로 적용한 예
* 조명을 사용하지 않고 Cube의 각면에 ColorMaterial을 적용하여 모든 면의 색상이 다르게 할 수 있다
*/
public class ColorCube extends BasicView
{
private var cube:Cube;
public function ColorCube(viewportWidth:Number=640, viewportHeight:Number=480, scaleToStage:Boolean=true,
interactive:Boolean=false, cameraType:String="CAMERA3D")
{
super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
var matList:MaterialsList = new MaterialsList();
var matTop:ColorMaterial = new ColorMaterial(0xFF0000);
var matLeft:ColorMaterial = new ColorMaterial(0x00FF00);
var matFront:ColorMaterial = new ColorMaterial(0x0000FF);
var matRight:ColorMaterial = new ColorMaterial(0xFFFF00);
var matBack:ColorMaterial = new ColorMaterial(0x00FFFF);
var matBottom:ColorMaterial = new ColorMaterial(0xFF00FF);
matList.addMaterial(matTop, "top");
matList.addMaterial(matLeft, "left");
matList.addMaterial(matFront, "front");
matList.addMaterial(matRight, "right");
matList.addMaterial(matBack, "back");
matList.addMaterial(matBottom, "bottom");
cube = new Cube(matList);
this.scene.addChild(cube);
this.startRendering();
}
// 매 프레임마다 호출되는 함수
override protected function onRenderTick(event:Event=null):void{
cube.yaw(2);
cube.pitch(2);
cube.roll(2);
super.onRenderTick(event);
}
}
}