flash on 2013-1-13
ugokan nannde
♥0 |
Line 109 |
Modified 2013-01-23 12:36:48 |
MIT License
archived:2017-03-30 10:30:06
ActionScript3 source code
/**
* Copyright ohisama ( http://wonderfl.net/user/ohisama )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/he08
*/
//ugokan nannde
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import org.papervision3d.view.BasicView;
import org.papervision3d.view.stats.StatsView;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.*;
import org.papervision3d.lights.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.core.geom.renderables.Triangle3D;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.core.geom.TriangleMesh3D;
import org.papervision3d.core.geom.Lines3D;
import org.papervision3d.core.geom.renderables.Line3D;
import org.papervision3d.core.utils.MeshUtil;
import org.papervision3d.core.math.NumberUV;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.materials.special.LineMaterial;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.primitives.Sphere;
public class test4 extends BasicView
{
public function test4()
{
setMesh();
_camera.zoom = 500;
startRendering();
}
private function enterFrameHandler(event : Event) : void
{
//c.rotationY += 1;
}
private function setMesh() : void
{
var objFile : String = "http://210.169.132.184/~ohi/pawn.obj";
var loader : URLLoader = new URLLoader();
scene.removeChildByName("myObject");
loader.addEventListener(Event.COMPLETE , function() : void
{
var line : Array = String(loader.data).split("\n");
var len : int = line.length;
var lineArr : Array = new Array();
var vArr : Array = new Array();
var vtArr : Array = new Array();
var fArr : Array = new Array();
for (var i : int = 0 ; i < len ; i ++)
{
lineArr = String(line[i]).split(" ");
if (lineArr[0] == "v")
{
vArr.push(new Array(lineArr[1], lineArr[2], lineArr[3]));
}
else if (lineArr[0] == "vt")
{
vtArr.push(new Array(Number(lineArr[1]), Number(lineArr[2])));
}
else if (lineArr[0] == "f")
{
if (lineArr.length == 4)
{
fArr.push(new Array(lineArr[1], lineArr[2], lineArr[3]));
}
else
{
fArr.push(new Array(lineArr[1], lineArr[2], lineArr[3], lineArr[4]));
}
}
}
var mesh : TriangleMesh3D = new TriangleMesh3D(null , new Array(), new Array(), null);
len = fArr.length;
for (i = 0 ; i < len ; i ++)
{
var len2 : int = fArr[i].length;
var vertex3DArr : Array = new Array();
var texture3DArr : Array = new Array();
for (var j : int = 0 ; j < len2 ; j ++)
{
var index : int = String(fArr[i][j]).split("/")[0] - 1;
var vertex3D : Vertex3D = new Vertex3D(vArr[index][0] , vArr[index][1] , vArr[index][2]);
mesh.geometry.vertices.push(vertex3D);
vertex3DArr[j] = vertex3D;
var index2 : int = String(fArr[i][j]).split("/")[1] - 1;
texture3DArr[j] = new NumberUV(vtArr[index2][0], 1 - vtArr[index2][1]);
}
mesh.geometry.faces.push(new Triangle3D(mesh, new Array(vertex3DArr[0], vertex3DArr[1], vertex3DArr[2]), null, new Array(texture3DArr[0], texture3DArr[1], texture3DArr[2])));
if (len2 == 4)
{
mesh.geometry.faces.push(new Triangle3D(mesh, new Array(vertex3DArr[3], vertex3DArr[0], vertex3DArr[2]), null, new Array(texture3DArr[3], texture3DArr[0], texture3DArr[2])));
}
}
mesh.geometry.ready = true;
scene.addChild(mesh, "myObject");
});
loader.load(new URLRequest(objFile));
}
}
}