Title: AS3DMod Sandbox
AS3DMod sandbox using BasicView - revision 702 - source code below is for a simplified pv3d usage example in a similar style to the other files here.
Actionscript:
-
/**
-
* v0.1 code by dehash.com 2008
-
* Released as open source under the BSD License
-
* http://www.opensource.org/licenses/bsd-license.php
-
*/
-
package {
-
// pv3d
-
import org.papervision3d.materials.WireframeMaterial;
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.materials.special.CompositeMaterial;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.view.BasicView;
-
import org.papervision3d.view.stats.StatsView;
-
// as3dmod from http://www.everydayflash.com/blog/index.php/2008/09/03/as3dmod/
-
import com.as3dmod.modifiers.Bend;
-
import com.as3dmod.modifiers.Noise;
-
import com.as3dmod.modifiers.Perlin;
-
import com.as3dmod.ModifierStack;
-
import com.as3dmod.plugins.pv3d.LibraryPv3d;
-
import com.as3dmod.util.ModConstant;
-
import com.as3dmod.util.Phase;
-
// flash
-
import flash.events.Event;
-
-
[SWF(width="800", height="600", backgroundColor="0x000000")]
-
-
public class As3dmodExample extends BasicView {
-
-
private var modifierStack:ModifierStack;
-
private var bend:Bend;
-
private var bendPhase:Phase;
-
-
public function As3dmodExample(viewportWidth:Number = 800, viewportHeight:Number = 600,
-
scaleToStage:Boolean=true, interactive:Boolean=false, cameraType:String="CAMERA3D")
-
{
-
super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
-
addChild(new StatsView(renderer));
-
-
stage.quality = "low";
-
-
// do pv3d stuff
-
var compositeMaterial:CompositeMaterial = new CompositeMaterial();
-
compositeMaterial.addMaterial( new ColorMaterial(0x270e59) );
-
compositeMaterial.addMaterial( new WireframeMaterial(0x491ca5) );
-
compositeMaterial.doubleSided = true;
-
-
var plane:Plane = new Plane(compositeMaterial, 800, 800, 16, 16);
-
-
scene.addChild(plane);
-
camera.target = plane;
-
-
// do as3dmod stuff
-
modifierStack = new ModifierStack(new LibraryPv3d(), plane);
-
-
var noise:Noise = new Noise(10);
-
noise.constraintAxes(ModConstant.X | ModConstant.Y);
-
modifierStack.addModifier(noise);
-
modifierStack.collapse();
-
-
var perlin:Perlin = new Perlin(3);
-
perlin.setFalloff(1, 0);
-
modifierStack.addModifier(perlin);
-
-
bend = new Bend(0, 0.7);
-
bend.constraint = ModConstant.LEFT;
-
bendPhase = new Phase();
-
modifierStack.addModifier(bend);
-
-
renderer.renderScene(scene, camera, viewport);
-
this.startRendering();
-
}
-
-
protected override function onRenderTick(event:Event = null):void {
-
// as3dmod enterframe calls
-
bendPhase.value += 0.05;
-
bend.force = bendPhase.phasedValue * 2;
-
modifierStack.apply();
-
-
// some hovering
-
camera.x -= (camera.x - Math.sin(mouseX*0.01)*1000) /8;
-
camera.z -= (camera.z - Math.cos(mouseX*0.01)*1000) /8;
-
camera.y -= (camera.y - viewport.containerSprite.mouseY * 5) /8;
-
-
renderer.renderScene(scene, camera, viewport);
-
}
-
-
}
-
}