Cloth
Cloth is a modifier that displaces object vertices giving the effects of wind and gravity.
Example
Instructions
- Import stack, modifier, 3D render engine library
import com.as3dmod.ModifierStack; import com.as3dmod.modifiers.Cloth; import com.as3dmod.plugins.pv3d.LibraryPv3d;
- Declare stack
private var stack :ModifierStack;
- Declare modifier
private var modifier :Cloth;
- Initialize stack
stack = new ModifierStack(lib3d, mesh);
Parameter Default Description lib3d NONE 3D engine library mesh NONE 3D object - Initialize modifier
modifier = new Cloth(rigidity, friction);
Parameter Default Description rigidity 1 stretchy to rigid (0-1) cloth friction 0 air friction - Add modifier to stack
stack.addModifier(modifier);
- Set force, lock axis
modifier.setForce(0.2, -0.2, -0.2); modifier.lockXMin();
- Apply
stack.apply();
Code
package { import com.as3dmod.ModifierStack; import com.as3dmod.modifiers.Cloth; import com.as3dmod.plugins.pv3d.LibraryPv3d; import flash.events.Event; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView; public class AS3DmodCloth extends BasicView { private var object :Plane; private var stack :ModifierStack; private var modifier :Cloth; public function AS3DmodCloth() { super(); var material :WireframeMaterial = new WireframeMaterial(0x000000); material.doubleSided = true; object = new Plane(material, 500, 500, 10, 10); scene.addChild(object); stack = new ModifierStack(new LibraryPv3d(), object); modifier = new Cloth(); stack.addModifier(modifier); modifier.setForce(0.2, -0.2, -0.2); modifier.lockXMin(); startRendering(); } protected override function onRenderTick(e:Event=null):void { stack.apply(); super.onRenderTick(e); } } }