In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

FFD attempt

a small attempt to manipulate 3dOject with a free form deformed Box
Get Adobe Flash player
by Seraf_NSS 30 Sep 2010
/**
 * Copyright Seraf_NSS ( http://wonderfl.net/user/Seraf_NSS )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/QnFE
 */

package {
    /*
    
    this is a WIP !
    
    have fun 
    
    Seraf aka jerome birembaut
    twitter: Seraf_NSS
    web: http://www.not-so-stupid.com
    
    */
    import caurina.transitions.Tweener;

    import org.papervision3d.core.geom.renderables.Vertex3D;
    import org.papervision3d.core.math.Number3D;
    import org.papervision3d.objects.DisplayObject3D;
    import org.papervision3d.view.BasicView;

    import flash.events.Event;

    [SWF(backgroundColor="#FFFFFF", frameRate="30")]

    public class Main extends BasicView {

        private var group : DisplayObject3D;
        private var box : Box;
        private var boxS : BoxSmooth;
        private var arrVert : Vector.<FFVert>;
        private var initZ : Number;
        private var initX : Number;

        public function Main() {
            super(500,400, false, true);
           Wonderfl.capture_delay(10);
           init();
        }
  
        private function init():void {
            group=new DisplayObject3D();
            scene.addChild(group);

            box=new Box();
            group.addChild(box);
            
            boxS=new BoxSmooth();
            group.addChild(boxS);

            arrVert=new Vector.<FFVert>();
            var l:int = box.verts.length;
            var l2:int = boxS.verts.length;
            var l3:int;
            var ff:FFVert;
            var vert:Vertex3D;
 
            //cannot control 2pts for now :)
            //while(l--){
                vert=box.verts[1];
                l3=int(l2);
                ff=new FFVert(vert);
                arrVert.push(ff);
                while(l3--)ff.addVertex(boxS.verts[l3]);
   
            //}

            camera.x = 1000;
            camera.y = 1000; 
            camera.z = 2000;
            camera.focus = 100;
            camera.zoom = 10;
            camera.target = box;
            initZ=box.verts[1].z;
            initX=box.verts[1].y;
            Tweener.addTween(box.verts[1],{y:initX-Math.random()*500,z:initZ+Math.random()*500-250,time:1, transition:"easeOutQuart",onComplete:loop2});    
            startRendering();
            onRenderTick();
        }
 
        public function loop2():void{
            Tweener.addTween(box.verts[1],{y:initX,z:initZ,time:1,delay:1, transition:"easeOutQuart",onComplete:loop2});    
            Tweener.addTween(box.verts[1],{y:initX-Math.random()*500,z:initZ+Math.random()*500-250,time:1, transition:"easeOutQuart"});
        }
    

        protected override function onRenderTick(event:Event=null):void{
            super.onRenderTick(event);
            var l:int = arrVert.length;
            var ff:FFVert;
            while(l--){
                ff=arrVert[l];
                ff.update();  
            }
        }  
    }
}

import org.papervision3d.core.geom.*;
import org.papervision3d.core.geom.renderables.Triangle3D;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.core.math.Number3D;
import org.papervision3d.core.math.NumberUV;
import org.papervision3d.core.proto.*;

class FFVert {
    private var gizmo : Vertex3D;
    private var verts : Vector.<Object>;
    private var distanceFromZero : Number;  

    public function FFVert(vert:Vertex3D) {
        gizmo = vert;
        distanceFromZero=Math.sqrt( gizmo.x*gizmo.x + gizmo.y*gizmo.y + gizmo.z*gizmo.z );
        verts=new Vector.<Object>();
    }

    public function addVertex(vert:Vertex3D) : void {
        var num3d:Number3D=Number3D.sub( gizmo.toNumber3D(),vert.toNumber3D()  );
        var d:Number=Math.sqrt( num3d.x*num3d.x + num3d.y*num3d.y + num3d.z*num3d.z );
        if(d<distanceFromZero){
            num3d.normalize();
            num3d.multiplyEq(distanceFromZero);
            verts.push({v:vert,d:d,w:1-d/distanceFromZero,init:Number3D.sub(gizmo.toNumber3D(),num3d),from:vert.toNumber3D()});
        }
    }
    
    public function update() : void {
        var l:int = verts.length;
            var v:Object;
            var num3d:Number3D;
            while(l--){
                v=verts[l];
                num3d=Number3D.sub(gizmo.toNumber3D(),v.init);
                num3d.multiplyEq(v.w);
                v.v.x=v.init.x+num3d.x;
                v.v.y=v.init.y+num3d.y;
                v.v.z=v.init.z+num3d.z;
            }
    }
}

class Box extends TriangleMesh3D
    {

        public var verts :Array;
        public var faceAr:Array;
        public var uvs :Array;

        private function v(x:Number,y:Number,z:Number):void
        {
            verts.push(new Vertex3D(x,y,z));
        }

        private function uv(u:Number,v:Number):void
        {
            uvs.push(new NumberUV(u,v));
        }

        private function f(vn0:int, vn1:int, vn2:int, uvn0:int, uvn1:int,uvn2:int):void
        {
            faceAr.push( new Triangle3D( this, [verts[vn0],verts[vn1],verts[vn2] ], null, [uvs[uvn0],uvs[uvn1],uvs[uvn2]] ) );
        }

        public function Box( material:MaterialObject3D=null )
        {
            super( material, new Array(), new Array(), null );
            verts = this.geometry.vertices;
            faceAr= this.geometry.faces;
            uvs   =new Array();
            v(-50.0,-50.0,49.6404);
            v(50.0,-50.0,49.6404);
            v(-50.0,50.0,49.6404);
            v(50.0,50.0,49.6404);
            v(-50.0,-50.0,-50.3596);
            v(50.0,-50.0,-50.3596);
            v(-50.0,50.0,-50.3596);
            v(50.0,50.0,-50.3596);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            f(0,2,3,9,11,10);
            f(3,1,0,10,8,9);
            f(4,5,7,8,9,11);
            f(7,6,4,11,10,8);
            f(0,1,5,4,5,7);
            f(5,4,0,7,6,4);
            f(1,3,7,0,1,3);
            f(7,5,1,3,2,0);
            f(3,2,6,4,5,7);
            f(6,7,3,7,6,4);
            f(2,0,4,0,1,3);
            f(4,6,2,3,2,0);

            this.geometry.ready = true;
        }

    }
    

    //import org.papervision3d.core.*;





//created with AS3GeomExporter
class BoxSmooth extends TriangleMesh3D
    {

        public var verts :Array;
        public var faceAr:Array;
        public var uvs :Array;

        private function v(x:Number,y:Number,z:Number):void
        {
            verts.push(new Vertex3D(x,y,z));
        }

        private function uv(u:Number,v:Number):void
        {
            uvs.push(new NumberUV(u,v));
        }

        private function f(vn0:int, vn1:int, vn2:int, uvn0:int, uvn1:int,uvn2:int):void
        {
            faceAr.push( new Triangle3D( this, [verts[vn0],verts[vn1],verts[vn2] ], null, [uvs[uvn0],uvs[uvn1],uvs[uvn2]] ) );
        }

        public function BoxSmooth( material:MaterialObject3D=null )
        {
            super( material, new Array(), new Array(), null );
            verts = this.geometry.vertices;
            faceAr= this.geometry.faces;
            uvs   =new Array();
            v(-25.463,-25.463,25.5674);
            v(25.463,-25.463,25.5674);
            v(-25.463,25.463,25.5674);
            v(25.463,25.463,25.5674);
            v(-25.463,-25.463,-25.3586);
            v(25.463,-25.463,-25.3586);
            v(-25.463,25.463,-25.3586);
            v(25.463,25.463,-25.3586);
            v(0.0,-2.65607e-007,44.028);
            v(0.0,-4.10553e-006,-43.8192);
            v(0.0,-43.9236,0.104416);
            v(43.9236,-2.18557e-006,0.104412);
            v(0.0,43.9236,0.104408);
            v(-43.9236,-2.18557e-006,0.104412);
            v(-32.1615,-7.79747e-007,32.2659);
            v(0.0,32.1615,32.2659);
            v(32.1615,-7.79747e-007,32.2659);
            v(0.0,-32.1615,32.2659);
            v(0.0,-32.1615,-32.057);
            v(32.1615,-3.59139e-006,-32.057);
            v(0.0,32.1615,-32.057);
            v(-32.1615,-3.59139e-006,-32.057);
            v(32.1615,-32.1615,0.104412);
            v(-32.1615,-32.1615,0.104412);
            v(32.1615,32.1615,0.104412);
            v(-32.1615,32.1615,0.104412);
            v(-16.3194,-16.3194,38.2989);
            v(-16.3194,16.3194,38.2989);
            v(16.3194,16.3194,38.2989);
            v(16.3194,-16.3194,38.2989);
            v(-16.3194,-16.3194,-38.09);
            v(16.3194,-16.3194,-38.09);
            v(16.3194,16.3194,-38.09);
            v(-16.3194,16.3194,-38.09);
            v(-16.3194,-38.1944,16.4239);
            v(16.3194,-38.1944,16.4239);
            v(16.3194,-38.1944,-16.215);
            v(-16.3194,-38.1944,-16.215);
            v(38.1944,-16.3194,16.4239);
            v(38.1944,16.3194,16.4239);
            v(38.1944,16.3194,-16.215);
            v(38.1944,-16.3194,-16.215);
            v(16.3194,38.1944,16.4239);
            v(-16.3194,38.1944,16.4239);
            v(-16.3194,38.1944,-16.215);
            v(16.3194,38.1944,-16.215);
            v(-38.1944,16.3194,16.4239);
            v(-38.1944,-16.3194,16.4239);
            v(-38.1944,-16.3194,-16.215);
            v(-38.1944,16.3194,-16.215);
            v(-29.9479,-15.1042,30.0523);
            v(-17.5347,-3.94617e-007,41.0766);
            v(0.0,-17.5347,41.0766);
            v(-15.1042,-29.9479,30.0523);
            v(-15.1042,29.9479,30.0523);
            v(0.0,17.5347,41.0766);
            v(-29.9479,15.1042,30.0523);
            v(29.9479,15.1042,30.0523);
            v(17.5347,-3.94617e-007,41.0766);
            v(15.1042,29.9479,30.0523);
            v(15.1042,-29.9479,30.0523);
            v(29.9479,-15.1042,30.0523);
            v(-15.1042,-29.9479,-29.8435);
            v(0.0,-17.5347,-40.8678);
            v(-17.5347,-3.97652e-006,-40.8678);
            v(-29.9479,-15.1042,-29.8435);
            v(29.9479,-15.1042,-29.8435);
            v(17.5347,-3.97652e-006,-40.8678);
            v(15.1042,-29.9479,-29.8435);
            v(15.1042,29.9479,-29.8435);
            v(0.0,17.5347,-40.8678);
            v(29.9479,15.1042,-29.8435);
            v(-29.9479,15.1042,-29.8435);
            v(-15.1042,29.9479,-29.8435);
            v(0.0,-40.9722,17.6391);
            v(-17.5347,-40.9722,0.104412);
            v(-29.9479,-29.9479,15.2086);
            v(29.9479,-29.9479,15.2086);
            v(17.5347,-40.9722,0.104412);
            v(0.0,-40.9722,-17.4303);
            v(29.9479,-29.9479,-14.9998);
            v(-29.9479,-29.9479,-14.9998);
            v(40.9722,-1.4191e-006,17.6391);
            v(40.9722,-17.5347,0.104412);
            v(29.9479,29.9479,15.2086);
            v(40.9722,17.5347,0.104412);
            v(40.9722,-2.95204e-006,-17.4303);
            v(29.9479,29.9479,-14.9998);
            v(0.0,40.9722,17.6391);
            v(17.5347,40.9722,0.104412);
            v(-29.9479,29.9479,15.2086);
            v(-17.5347,40.9722,0.104412);
            v(0.0,40.9722,-17.4303);
            v(-29.9479,29.9479,-14.9998);
            v(-40.9722,-1.4191e-006,17.6391);
            v(-40.9722,17.5347,0.104412);
            v(-40.9722,-17.5347,0.104412);
            v(-40.9722,-2.95204e-006,-17.4303);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.0,0.0);
            uv(1.0,0.0);
            uv(0.0,1.0);
            uv(1.0,1.0);
            uv(0.5,0.5);
            uv(0.5,0.5);
            uv(0.5,0.5);
            uv(0.5,0.5);
            uv(0.5,0.5);
            uv(0.5,0.5);
            uv(1.0,0.5);
            uv(0.5,0.0);
            uv(0.5,1.0);
            uv(0.5,0.0);
            uv(0.0,0.5);
            uv(0.5,0.0);
            uv(0.5,0.0);
            uv(0.5,0.0);
            uv(0.5,0.0);
            uv(0.5,1.0);
            uv(1.0,0.5);
            uv(0.5,1.0);
            uv(0.5,1.0);
            uv(0.5,1.0);
            uv(0.0,0.5);
            uv(0.5,1.0);
            uv(1.0,0.5);
            uv(0.0,0.5);
            uv(0.0,0.5);
            uv(1.0,0.5);
            uv(1.0,0.5);
            uv(0.0,0.5);
            uv(1.0,0.5);
            uv(0.0,0.5);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(0.25,0.25);
            uv(0.25,0.25);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(0.25,0.25);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(0.25,0.25);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(0.25,0.25);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(0.25,0.25);
            uv(0.75,0.25);
            uv(0.75,0.75);
            uv(0.25,0.75);
            uv(1.0,0.25);
            uv(0.75,0.0);
            uv(0.75,0.5);
            uv(0.5,0.25);
            uv(0.75,0.0);
            uv(0.25,0.0);
            uv(0.75,1.0);
            uv(0.75,0.0);
            uv(0.5,0.75);
            uv(1.0,0.75);
            uv(0.25,0.0);
            uv(0.0,0.75);
            uv(0.75,0.0);
            uv(0.25,0.5);
            uv(0.25,1.0);
            uv(0.25,0.0);
            uv(0.25,0.0);
            uv(0.75,0.0);
            uv(0.0,0.25);
            uv(0.25,0.0);
            uv(0.25,0.0);
            uv(0.25,1.0);
            uv(0.5,0.25);
            uv(0.25,0.5);
            uv(0.0,0.25);
            uv(0.75,1.0);
            uv(1.0,0.25);
            uv(0.25,1.0);
            uv(0.75,0.5);
            uv(0.75,0.0);
            uv(0.75,1.0);
            uv(0.75,1.0);
            uv(0.25,1.0);
            uv(0.5,0.75);
            uv(1.0,0.75);
            uv(0.75,1.0);
            uv(0.0,0.75);
            uv(0.25,1.0);
            uv(0.25,1.0);
            uv(0.75,1.0);
            uv(0.5,0.25);
            uv(0.25,0.5);
            uv(0.0,0.25);
            uv(1.0,0.25);
            uv(1.0,0.25);
            uv(0.0,0.25);
            uv(0.75,0.5);
            uv(0.5,0.75);
            uv(1.0,0.75);
            uv(0.0,0.75);
            uv(0.0,0.75);
            uv(1.0,0.75);
            uv(0.5,0.25);
            uv(0.25,0.5);
            uv(1.0,0.25);
            uv(0.0,0.25);
            uv(0.75,0.5);
            uv(0.5,0.75);
            uv(1.0,0.75);
            uv(0.0,0.75);
            uv(0.5,0.25);
            uv(0.25,0.5);
            uv(1.0,0.25);
            uv(0.0,0.25);
            uv(0.75,0.5);
            uv(0.5,0.75);
            uv(1.0,0.75);
            uv(0.0,0.75);
            uv(0.5,0.25);
            uv(0.25,0.5);
            uv(0.75,0.5);
            uv(0.5,0.75);
            f(0,50,26,9,78,54);
            f(26,53,0,54,82,9);
            f(14,51,26,30,80,54);
            f(26,50,14,54,78,30);
            f(8,52,26,24,81,54);
            f(26,51,8,54,80,24);
            f(17,53,26,36,82,54);
            f(26,52,17,54,81,36);
            f(2,54,27,11,84,55);
            f(27,56,2,55,87,11);
            f(15,55,27,32,86,55);
            f(27,54,15,55,84,32);
            f(8,51,27,24,80,55);
            f(27,55,8,55,86,24);
            f(14,56,27,30,87,55);
            f(27,51,14,55,80,30);
            f(3,57,28,10,89,56);
            f(28,59,3,56,92,10);
            f(16,58,28,34,91,56);
            f(28,57,16,56,89,34);
            f(8,55,28,24,86,56);
            f(28,58,8,56,91,24);
            f(15,59,28,32,92,56);
            f(28,55,15,56,86,32);
            f(1,60,29,8,94,57);
            f(29,61,1,57,96,8);
            f(17,52,29,36,81,57);
            f(29,60,17,57,94,36);
            f(8,58,29,24,91,57);
            f(29,52,8,57,81,24);
            f(16,61,29,34,96,57);
            f(29,58,16,57,91,34);
            f(4,62,30,20,98,58);
            f(30,65,4,58,102,20);
            f(18,63,30,38,100,58);
            f(30,62,18,58,98,38);
            f(9,64,30,25,101,58);
            f(30,63,9,58,100,25);
            f(21,65,30,44,102,58);
            f(30,64,21,58,101,44);
            f(5,66,31,21,104,59);
            f(31,68,5,59,107,21);
            f(19,67,31,40,106,59);
            f(31,66,19,59,104,40);
            f(9,63,31,25,100,59);
            f(31,67,9,59,106,25);
            f(18,68,31,38,107,59);
            f(31,63,18,59,100,38);
            f(7,69,32,23,109,60);
            f(32,71,7,60,112,23);
            f(20,70,32,42,111,60);
            f(32,69,20,60,109,42);
            f(9,67,32,25,106,60);
            f(32,70,9,60,111,25);
            f(19,71,32,40,112,60);
            f(32,67,19,60,106,40);
            f(6,72,33,22,114,61);
            f(33,73,6,61,116,22);
            f(21,64,33,44,101,61);
            f(33,72,21,61,114,44);
            f(9,70,33,25,111,61);
            f(33,64,9,61,101,25);
            f(20,73,33,42,116,61);
            f(33,70,20,61,111,42);
            f(0,53,34,4,83,62);
            f(34,76,0,62,120,4);
            f(17,74,34,37,118,62);
            f(34,53,17,62,83,37);
            f(10,75,34,26,119,62);
            f(34,74,10,62,118,26);
            f(23,76,34,48,120,62);
            f(34,75,23,62,119,48);
            f(1,77,35,5,122,63);
            f(35,60,1,63,95,5);
            f(22,78,35,46,124,63);
            f(35,77,22,63,122,46);
            f(10,74,35,26,118,63);
            f(35,78,10,63,124,26);
            f(17,60,35,37,95,63);
            f(35,74,17,63,118,37);
            f(5,68,36,7,108,64);
            f(36,80,5,64,126,7);
            f(18,79,36,39,125,64);
            f(36,68,18,64,108,39);
            f(10,78,36,26,124,64);
            f(36,79,10,64,125,26);
            f(22,80,36,46,126,64);
            f(36,78,22,64,124,46);
            f(4,81,37,6,128,65);
            f(37,62,4,65,99,6);
            f(23,75,37,48,119,65);
            f(37,81,23,65,128,48);
            f(10,79,37,26,125,65);
            f(37,75,10,65,119,26);
            f(18,62,37,39,99,65);
            f(37,79,18,65,125,39);
            f(1,61,38,0,97,66);
            f(38,77,1,66,123,0);
            f(16,82,38,35,130,66);
            f(38,61,16,66,97,35);
            f(11,83,38,27,131,66);
            f(38,82,11,66,130,27);
            f(22,77,38,47,123,66);
            f(38,83,22,66,131,47);
            f(3,84,39,1,132,67);
            f(39,57,3,67,90,1);
            f(24,85,39,50,134,67);
            f(39,84,24,67,132,50);
            f(11,82,39,27,130,67);
            f(39,85,11,67,134,27);
            f(16,57,39,35,90,67);
            f(39,82,16,67,130,35);
            f(7,71,40,3,113,68);
            f(40,87,7,68,136,3);
            f(19,86,40,41,135,68);
            f(40,71,19,68,113,41);
            f(11,85,40,27,134,68);
            f(40,86,11,68,135,27);
            f(24,87,40,50,136,68);
            f(40,85,24,68,134,50);
            f(5,80,41,2,127,69);
            f(41,66,5,69,105,2);
            f(22,83,41,47,131,69);
            f(41,80,22,69,127,47);
            f(11,86,41,27,135,69);
            f(41,83,11,69,131,27);
            f(19,66,41,41,105,69);
            f(41,86,19,69,135,41);
            f(3,59,42,16,93,70);
            f(42,84,3,70,133,16);
            f(15,88,42,33,138,70);
            f(42,59,15,70,93,33);
            f(12,89,42,28,139,70);
            f(42,88,12,70,138,28);
            f(24,84,42,51,133,70);
            f(42,89,24,70,139,51);
            f(2,90,43,17,140,71);
            f(43,54,2,71,85,17);
            f(25,91,43,52,142,71);
            f(43,90,25,71,140,52);
            f(12,88,43,28,138,71);
            f(43,91,12,71,142,28);
            f(15,54,43,33,85,71);
            f(43,88,15,71,138,33);
            f(6,73,44,19,117,72);
            f(44,93,6,72,144,19);
            f(20,92,44,43,143,72);
            f(44,73,20,72,117,43);
            f(12,91,44,28,142,72);
            f(44,92,12,72,143,28);
            f(25,93,44,52,144,72);
            f(44,91,25,72,142,52);
            f(7,87,45,18,137,73);
            f(45,69,7,73,110,18);
            f(24,89,45,51,139,73);
            f(45,87,24,73,137,51);
            f(12,92,45,28,143,73);
            f(45,89,12,73,139,28);
            f(20,69,45,43,110,73);
            f(45,92,20,73,143,43);
            f(2,56,46,12,88,74);
            f(46,90,2,74,141,12);
            f(14,94,46,31,146,74);
            f(46,56,14,74,88,31);
            f(13,95,46,29,147,74);
            f(46,94,13,74,146,29);
            f(25,90,46,53,141,74);
            f(46,95,25,74,147,53);
            f(0,76,47,13,121,75);
            f(47,50,0,75,79,13);
            f(23,96,47,49,148,75);
            f(47,76,23,75,121,49);
            f(13,94,47,29,146,75);
            f(47,96,13,75,148,29);
            f(14,50,47,31,79,75);
            f(47,94,14,75,146,31);
            f(4,65,48,15,103,76);
            f(48,81,4,76,129,15);
            f(21,97,48,45,149,76);
            f(48,65,21,76,103,45);
            f(13,96,48,29,148,76);
            f(48,97,13,76,149,29);
            f(23,81,48,49,129,76);
            f(48,96,23,76,148,49);
            f(6,93,49,14,145,77);
            f(49,72,6,77,115,14);
            f(25,95,49,53,147,77);
            f(49,93,25,77,145,53);
            f(13,97,49,29,149,77);
            f(49,95,13,77,147,29);
            f(21,72,49,45,115,77);
            f(49,97,21,77,149,45);

            this.geometry.ready = true;
        }

    }