primitivesを並べてみる
Papervision3Dでは、org.papervision3d.objects.primitivesパッケージ以下に、立方体とか球といった基本的なオブジェクトが用意されています。どんなのがあるのかな、ということで、primitivesパッケージ以下のオブジェクトを並べてみました。
左から
- Cube
- Sphere
- Arrow
- Cone
- Cylinder
- PaperPlane
- Plane
です。(画像だとArrowとかはちょいわかりにくいですが。)x座標だけオブジェクトごとに変えていますが、他は初期値で生成しています。CubeとPlaneだけなんかデカイ。
ソース
サンプルのソースは以下です。
package { import flash.events.Event; import org.papervision3d.materials.*; import org.papervision3d.materials.utils.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.view.BasicView; /** * org.papervision3d.objects.primitives 以下に用意されているオブジェクトを並べてみるサンプル */ public class Sample extends BasicView { private var objects:Array = []; /** * コンストラクタ */ public function Sample() { /** * org.papervision3d.objects.primitives 以下に用意されているオブジェクトを生成する。 */ var classes:Array = [Cube,Sphere,Arrow,Cone,Cylinder,PaperPlane,Plane]; classes.forEach( function(item:*, i:Number, arr:Array):void { var obj:* = null; var material:WireframeMaterial = new WireframeMaterial(0x002222 * i); if ( item === Cube ) { // Cude だけ引数がMaterialsListなので別処理。 // (各面ごとにMaterialが指定できる模様/allですべての面に適用するMaterialを指定できる) obj = new item( new MaterialsList({"all" : material}) ); } else { obj = new item( material ); } obj.x = -400 + 200 * i; scene.addChild(obj); objects.push(obj); }); // レンダリング開始 startRendering(); } override protected function onRenderTick(event:Event = null):void { // オブジェクトを回転 objects.forEach( function(item:*, i:Number,arr:Array):void { item.yaw(2); }); super.onRenderTick(event); } } }