AS3DMod Twist

Tuesday, January 6th, 2009 | examples


source

package
{
	import com.as3dmod.ModifierStack;
	import com.as3dmod.modifiers.Twist;
	import com.as3dmod.plugins.pv3d.LibraryPv3d;
 
	import flash.events.Event;
 
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.shadematerials.GouraudMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;
 
	[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
	public class As3dModTwist extends BasicView
	{
		private var plane:Plane;
		private var modifierStack:ModifierStack;
		private var twist:Twist;
 
		public function As3dModTwist()
		{
			var light:PointLight3D = new PointLight3D();
			var cellMaterial:GouraudMaterial = new GouraudMaterial(light, 0xcc0000, 0x111111, 10);
			cellMaterial.doubleSided = true;
 
			plane = new Plane(cellMaterial, 800, 800, 20, 20);
			plane.rotationX = 45;
			plane.rotationY = 45;
 
			modifierStack = new ModifierStack(new LibraryPv3d(), plane);
			twist = new Twist();
			modifierStack.addModifier(twist);
 
			scene.addChild(plane);
 
			startRendering();
		}
 
		override protected function onRenderTick(event:Event=null):void
		{
			plane.rotationY += (viewport.containerSprite.mouseX - plane.rotationY) * .1;
 
			twist.angle += (viewport.containerSprite.mouseY * Math.PI / 180 - twist.angle) * .1;
			modifierStack.apply();
 
			super.onRenderTick(event);
		}
	}
}

Tags:

1 Comment to AS3DMod Twist

Seb
January 6, 2009

Brilliant!

Leave a comment