flash on 2011-11-2

by bradsedito
♥0 | Line 46 | Modified 2011-11-02 17:26:03 | MIT License
play

ActionScript3 source code

/**
 * Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/s8Ce
 */

package {
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            // write as3 code here..
            
        }
    }
}




private var unprojected:Vector.<Number> = new Vector.<Number>();
private var vertices:Vector.<Number> = new Vector.<Number>();
private var uvts:Vector.<Number> = new Vector.<Number>();
private var points:Vector.<Vector3D> = new Vector.<Vector3D>();
private var indices:Vector.<int> = new Vector.<int>();
private var m:Matrix3D = new Matrix3D();
 
public function SphereTest()
{
 
    points = new Vector.<Vector3D>();
 
    var size:Number = 150;
 
    var positions:Vector.<Number> = Vector.<Number>( [ /*
    copy paste a list from:
 
http://www.nicoptere.net/dump/sphere_distributions.html
 
                                                        */ ] );
 
    for ( var i:int = 0; i < positions.length; i+=3 )
    {
        points.push( new Vector3D(  positions[ i ] * size,
                                    positions[ i + 1 ] * size,
                                    positions[ i+2 ] * size ) );
    }
 
    //processing the convex hull
    indices = ConvexHull.process( points );
 
    for each ( var v:Vector3D in points )
    {
        unprojected.push( v.x, v.y, v.z );
    }
 
    x = y = 250;
    addEventListener( Event.ENTER_FRAME, render );
 
}
 
private function render( e:Event ):void
{
    graphics.clear();
 
    m.prependRotation( .1, Vector3D.Y_AXIS );
    Utils3D.projectVectors( m, unprojected, vertices, uvts );
 
    if ( indices != null )
    {
        graphics.lineStyle( 0, 0, .5 );
        graphics.drawTriangles( vertices, indices, null, TriangleCulling.NEGATIVE );
        graphics.lineStyle( 2 );
        graphics.drawTriangles( vertices, indices, null, TriangleCulling.POSITIVE );
    }
 
}