チェンジセット 212
- コミット日時:
- 2008/01/22 02:02:41 (4 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/Metasequoia/src/org/libspark/pv3d/Metasequoia.as
r100 r212 1 1 /* 2 * Copyright 200 6-2007(c) rch8502 * Copyright 2007-2008 (c) rch850 3 3 * 4 4 * Permission is hereby granted, free of charge, to any person … … 31 31 import flash.utils.ByteArray; 32 32 import flash.utils.Dictionary; 33 import org.papervision3d.core.geom. Face3D;34 import org.papervision3d.core.geom. Mesh3D;35 import org.papervision3d.core.geom. Vertex3D;36 import org.papervision3d.core. Matrix3D;37 import org.papervision3d.core. NumberUV;33 import org.papervision3d.core.geom.TriangleMesh3D; 34 import org.papervision3d.core.geom.renderables.Triangle3D; 35 import org.papervision3d.core.geom.renderables.Vertex3D; 36 import org.papervision3d.core.math.Matrix3D; 37 import org.papervision3d.core.math.NumberUV; 38 38 import org.papervision3d.core.proto.GeometryObject3D; 39 39 import org.papervision3d.core.proto.MaterialObject3D; … … 41 41 import org.papervision3d.materials.BitmapFileMaterial; 42 42 import org.papervision3d.materials.ColorMaterial; 43 import org.papervision3d.materials. MaterialsList;43 import org.papervision3d.materials.utils.MaterialsList; 44 44 import org.papervision3d.objects.DisplayObject3D; 45 45 … … 51 51 * mqo.load("hoge.mqo"); 52 52 */ 53 public class Metasequoia extends Mesh3D {53 public class Metasequoia extends TriangleMesh3D { 54 54 /** 55 55 * コンストラクタ … … 108 108 private function buildMetasequoia(plainText:String):void { 109 109 var lines:Array = plainText.split("\r\n"); 110 trace("num lines = " + lines.length);110 //trace("num lines = " + lines.length); 111 111 var l:int = 0; 112 112 … … 194 194 var b:int = parseFloat(color[2]) * 255; 195 195 var a:Number = parseFloat(color[3]) * 100; 196 trace("rgb = " + r + "," + g + "," + b);196 //trace("rgb = " + r + "," + g + "," + b); 197 197 material = new ColorMaterial((r << 16) | (g << 8) | b); 198 198 } else { … … 287 287 var x:Number = parseFloat(coords[0]) * _scale; 288 288 var y:Number = parseFloat(coords[1]) * _scale; 289 var z:Number = parseFloat(coords[2]) * _scale;289 var z:Number = -parseFloat(coords[2]) * _scale; 290 290 vertices.push(new Vertex3D(x, y, z)); 291 291 } … … 329 329 var uvC:NumberUV; 330 330 var uvD:NumberUV; 331 var face: Face3D;331 var face:Triangle3D; 332 332 333 333 if (v.length == 3) { 334 a= vertices[parseInt(v[0]) + vertexOffset];334 c = vertices[parseInt(v[0]) + vertexOffset]; 335 335 b = vertices[parseInt(v[1]) + vertexOffset]; 336 c= vertices[parseInt(v[2]) + vertexOffset];336 a = vertices[parseInt(v[2]) + vertexOffset]; 337 337 338 338 if (mstr != null) { … … 341 341 342 342 if (uv.length != 0) { 343 uv A= new NumberUV(parseFloat(uv[0]), 1 - parseFloat(uv[1]));343 uvC = new NumberUV(parseFloat(uv[0]), 1 - parseFloat(uv[1])); 344 344 uvB = new NumberUV(parseFloat(uv[2]), 1 - parseFloat(uv[3])); 345 uv C= new NumberUV(parseFloat(uv[4]), 1 - parseFloat(uv[5]));346 face = new Face3D([a, b, c], material, [uvA, uvB, uvC]);345 uvA = new NumberUV(parseFloat(uv[4]), 1 - parseFloat(uv[5])); 346 face = new Triangle3D(this, [a, b, c], material, [uvA, uvB, uvC]); 347 347 } else { 348 face = new Face3D([a, b, c], material,348 face = new Triangle3D(this, [a, b, c], material, 349 349 [new NumberUV(0, 0), new NumberUV(1, 0), new NumberUV(0, 1)]); 350 350 } … … 360 360 vertices.push(b); 361 361 vertices.push(c); 362 face = new Face3D([a, b, c], material, face.uv);362 face = new Triangle3D(this, [c, b, a], material, face.uv.reverse()); 363 363 faces.push(face); 364 364 } 365 365 } else if (v.length == 4) { 366 a= vertices[parseInt(v[0]) + vertexOffset];367 b= vertices[parseInt(v[1]) + vertexOffset];368 c= vertices[parseInt(v[2]) + vertexOffset];369 d= vertices[parseInt(v[3]) + vertexOffset];366 d = vertices[parseInt(v[0]) + vertexOffset]; 367 c = vertices[parseInt(v[1]) + vertexOffset]; 368 b = vertices[parseInt(v[2]) + vertexOffset]; 369 a = vertices[parseInt(v[3]) + vertexOffset]; 370 370 371 371 if (mstr != null) { … … 374 374 375 375 if (uv.length != 0) { 376 uv A= new NumberUV(parseFloat(uv[0]), 1 - parseFloat(uv[1]));377 uv B= new NumberUV(parseFloat(uv[2]), 1 - parseFloat(uv[3]));378 uv C= new NumberUV(parseFloat(uv[4]), 1 - parseFloat(uv[5]));379 uv D= new NumberUV(parseFloat(uv[6]), 1 - parseFloat(uv[7]));376 uvD = new NumberUV(parseFloat(uv[0]), 1 - parseFloat(uv[1])); 377 uvC = new NumberUV(parseFloat(uv[2]), 1 - parseFloat(uv[3])); 378 uvB = new NumberUV(parseFloat(uv[4]), 1 - parseFloat(uv[5])); 379 uvA = new NumberUV(parseFloat(uv[6]), 1 - parseFloat(uv[7])); 380 380 } else { 381 uv A= new NumberUV(0, 0);382 uv B= new NumberUV(1, 0);383 uv C= new NumberUV(0, 1);384 uv D= new NumberUV(1, 1);385 } 386 face = new Face3D([a, b, c], material, [uvA, uvB, uvC]);381 uvD = new NumberUV(0, 0); 382 uvC = new NumberUV(1, 0); 383 uvB = new NumberUV(0, 1); 384 uvA = new NumberUV(1, 1); 385 } 386 face = new Triangle3D(this, [a, b, c], material, [uvA, uvB, uvC]); 387 387 faces.push(face); 388 face = new Face3D([c, d, a], material, [uvC, uvD, uvA]);388 face = new Triangle3D(this, [c, d, a], material, [uvC, uvD, uvA]); 389 389 faces.push(face); 390 390 … … 399 399 vertices.push(c); 400 400 vertices.push(d); 401 face = new Face3D([a, b, c], material, [uvA, uvB, uvC]);401 face = new Triangle3D(this, [c, b, a], material, [uvC, uvB, uvA]); 402 402 faces.push(face); 403 face = new Face3D([c, d, a], material, [uvC, uvD, uvA]);403 face = new Triangle3D(this, [a, d, c], material, [uvA, uvD, uvC]); 404 404 faces.push(face); 405 405 }

