亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? collada.as.svn-base

?? ActionScript寫的3D圖片展示功能
?? SVN-BASE
?? 第 1 頁 / 共 2 頁
字號:
			{
				// Swap z & y for Max (to make Y up and Z depth)
				var vert:Object = semVertices[ i ];
				var x :Number = Number( vert.X ) * scaling;
				var y :Number = Number( vert.Y ) * scaling;
				var z :Number = Number( vert.Z ) * scaling;
	
				if( this._yUp )
					vertices.push( new Vertex3D( -x, y, z ) );
				else
					vertices.push( new Vertex3D(  x, z, y ) );
			}
	
			// Faces
			var faces    :Array = instance.geometry.faces = new Array();
			var semFaces :Array = semantics.triangles;
			len = semFaces.length;
		
			for( i=0; i < len; i++ )
			{
				// Triangle
				var tri :Array = semFaces[i].VERTEX;
				var a   :Vertex3D = vertices[ accVerts + tri[ 0 ] ];
				var b   :Vertex3D = vertices[ accVerts + tri[ 1 ] ];
				var c   :Vertex3D = vertices[ accVerts + tri[ 2 ] ];
	
				var faceList :Array = [ a, b, c ];
	
				var tex :Array = semantics.TEXCOORD;
				var uv  :Array = semFaces[i].TEXCOORD;
	
				var uvList :Array, uvA :NumberUV, uvB :NumberUV, uvC :NumberUV;
	
				if( uv && tex )
				{
					uvA = new NumberUV( tex[ uv[0] ].S, tex[ uv[0] ].T );
					uvB = new NumberUV( tex[ uv[1] ].S, tex[ uv[1] ].T );
					uvC = new NumberUV( tex[ uv[2] ].S, tex[ uv[2] ].T );
	
					uvList = [ uvA, uvB, uvC ];
				}
				else uvList = null;

				var materialName:String = semFaces[i].material || null;
				var face:Triangle3D = new Triangle3D(instance, faceList, _materials.getMaterialByName(materialName), uvList );
				faces.push( face );
			}
			
	
			// Activate object
			instance.geometry.ready = true;
	
			matrix.n14 *= scaling;
			matrix.n24 *= scaling;
			matrix.n34 *= scaling;
	
			//instance.material = MaterialObject3D.DEFAULT;
	
			instance.visible  = true;
		}
	
	
		private function getArray( spaced:String ):Array
		{
			var strings :Array = spaced.split(" ");
			var numbers :Array = new Array();
	
			var totalStrings:Number = strings.length;
	
			for( var i:Number=0; i < totalStrings; i++ )
				numbers[i] = Number( strings[i] );
	
			return numbers;
		}
	
	
		private function addMaterial( instance:DisplayObject3D, name:String, bindMaterial:Object ):void
		{
			//trace( "Collada: addMaterial: " + instance.name + " > " + name ); // DEBUG
			var material:MaterialObject3D;
		
			if( this._materials ){
				material = this._materials.getMaterialByName( name );
			}else{
				_materials = new MaterialsList();
			}
			
			if( ! material )
			{
				// Find object path
				var path :String = this._filename.slice( 0, this._filename.lastIndexOf("/") +1 );
	
				// Retrieve texture url
				var filename :String = getTexture( bindMaterial[name] );
	
				if( filename )
				{
					// Load relative to the object
					materialsToLoad++;
					material = new BitmapFileMaterial( path + filename );
					material.addEventListener(FileLoadEvent.LOAD_COMPLETE, onMaterialLoadComplete);
					material.addEventListener(FileLoadEvent.LOAD_ERROR, onMaterialLoadError);
				}
				else
				{
					material = MaterialObject3D.DEFAULT;
					Papervision3D.log( "Collada material " + name + " not found." ); // TODO: WARNING
				}
	
				material.name = name;
			}
			_materials.addMaterial(material);
	
			if( ! instance.materials ) instance.materials = new MaterialsList();
			material.registerObject(instance);
			instance.materials.addMaterial( material, name );
		}
		
		private function onMaterialLoadComplete(event:FileLoadEvent):void
		{
			materialsToLoad--;
			if(materialsToLoad == 0){
				materials = new MaterialsList();
				dispatchEvent(new FileLoadEvent(FileLoadEvent.COLLADA_MATERIALS_DONE));
			}
		}
		
		private function onMaterialLoadError(event:FileLoadEvent):void
		{
			var mat:BitmapFileMaterial = event.target as BitmapFileMaterial;
			trace("Colllada failed to load material : " +mat);
			//Do error handling here.
			materialsToLoad--;
			if(materialsToLoad == 0){
				dispatchEvent(new FileLoadEvent(FileLoadEvent.COLLADA_MATERIALS_DONE));
			}
		}
	
	
		// Retrieves the filename of a material
		private function getTexture( name:String ):String
		{
			var filename :String = null;
	
			var material:XML = COLLADA.library_materials.material.(@id == name)[0];
	
			if( material )
			{
				var effectId:String = getId( material.instance_effect.@url );
				var effect:XML = COLLADA.library_effects.effect.(@id == effectId)[0];
	
				if (effect..texture.length() == 0) return null;
	
				var textureId:String = effect..texture[0].@texture;
	
				var sampler:XML =  effect..newparam.(@sid == textureId)[0];
	
				// Blender
				var imageId:String = textureId;
	
				// Not Blender
				if( sampler )
				{
					var sourceId:String = sampler..source[0];
					var source:XML =  effect..newparam.(@sid == sourceId)[0];
	
					imageId = source..init_from[0];
				}
	
				var image:XML = COLLADA.library_images.image.(@id == imageId)[0];
	
				filename = image.init_from;
	
				if (filename.substr(0, 2) == "./")
				{
					filename = filename.substr( 2 );
				}
			}
	
			return filename;
		}
	
	
		// _______________________________________________________________________
		//                                                                Matrices
	
		private function rotateMatrix( vector:Array ):Matrix3D
		{
			if( this._yUp )
				return Matrix3D.rotationMatrix( vector[0], vector[1], vector[2], -vector[3] *toRADIANS );
			else
				return Matrix3D.rotationMatrix( vector[0], vector[2], vector[1], -vector[3] *toRADIANS );
		}
	
	
		private function translateMatrix( vector:Array ):Matrix3D
		{
			if( this._yUp )
				return Matrix3D.translationMatrix( -vector[0] *this._scaling, vector[1] *this._scaling, vector[2] *this._scaling );
			else
				return Matrix3D.translationMatrix(  vector[0] *this._scaling, vector[2] *this._scaling, vector[1] *this._scaling );
		}
	
	
		private function scaleMatrix( vector:Array ):Matrix3D
		{
			if( this._yUp )
				return Matrix3D.scaleMatrix( vector[0], vector[1], vector[2] );
			else
				return Matrix3D.scaleMatrix( vector[0], vector[2], vector[1] );
		}
	
		private function bakedMatrix( matrix:Matrix3D ):Matrix3D
		{
			matrix.n14 *= _scaling;
			matrix.n24 *= _scaling;
			matrix.n34 *= _scaling;
			
			return matrix;
		}
	
		// _______________________________________________________________________
		//                                                                     XML
	
		private function deserialize( input:XML, geo:XML ):Array
		{
			var output :Array = new Array();
			var id     :String = input.@source.split("#")[1];
	
			// Source?
			var acc:XMLList = geo..source.(@id == id).technique_common.accessor;
			
			if( acc != new XMLList(null) )
			{
				// Build source floats array
				var floId  :String  = acc.@source.split("#")[1];
				var floXML :XMLList = COLLADA..float_array.(@id == floId);
				var floStr :String  = floXML.toString();
				var floats :Array   = floStr.split(" ");
	
				// Build params array
				var params :Array = new Array();
	
				for each( var par:XML in acc.param )
					params.push( par.@name );
	
				// Build output array
				var count  :int = acc.@count;
				var stride :int = acc.@stride;
	
				for( var i:int=0; i < count; i++ )
				{
					var element :Object = new Object();
	
					for( var j:int=0; j < stride; j++ )
						element[ params[j] ] = floats.shift();
	
					//for( j=0; j < stride; j++ ) trace( params[j] + " " + element[ params[j] ] ); // DEBUG
	
					output.push( element );
				}
			}
			else
			{
				// Store indexes if no source
				var recursive :XMLList = geo..vertices.(@id == id)[INPUTTAG];
	
				output = deserialize( recursive[0], geo );
			}
	
			return output;
		}
	
		public function getMaterialsList():MaterialsList
		{
			return _materials;
		}
	
		private function getId( url:String ):String
		{
			return url.split("#")[1];
		}
	
		// _______________________________________________________________________
		//                                                       COLLADA tag names
	
		private static var COLLADASECTION  :String = "COLLADA";
		private static var LIBRARYSECTION  :String = "library";
		private static var ASSETSECTION    :String = "asset";
		private static var SCENESECTION    :String = "scene";
	
		private static var LIGHTPREFAB     :String = "light";
		private static var CAMERAPREFAB    :String = "camera";
		private static var MATERIALSECTION :String = "material";
		private static var GEOMETRYSECTION :String = "geometry";
	
		private static var MESHSECTION     :String = "mesh";
		private static var SOURCESECTION   :String = "source";
		private static var ARRAYSECTION    :String = "array";
		private static var ACCESSORSECTION :String = "accessor";
		private static var VERTICESSECTION :String = "vertices";
		private static var INPUTTAG        :String = "input";
		private static var POLYGONSSECTION :String = "polygons";
		private static var POLYGON         :String = "p";
		private static var NODESECTION     :String = "node";
		private static var LOOKATNODE      :String = "lookat";
		private static var MATRIXNODE      :String = "matrix";
		private static var PERSPECTIVENODE :String = "perspective";
		private static var ROTATENODE      :String = "rotate";
		private static var SCALENODE       :String = "scale";
		private static var TRANSLATENODE   :String = "translate";
		private static var SKEWNODE        :String = "skew";
		private static var INSTANCENODE    :String = "instance";
		private static var INSTACESCENE    :String = "instance_visual_scene";
	
		private static var PARAMTAG        :String = "param";
	
		private static var POSITIONINPUT   :String = "POSITION";
		private static var VERTEXINPUT     :String = "VERTEX";
		private static var NORMALINPUT     :String = "NORMAL";
		private static var TEXCOORDINPUT   :String = "TEXCOORD";
		private static var UVINPUT         :String = "UV";
		private static var TANGENTINPUT    :String = "TANGENT";
	
		// _______________________________________________________________________
	
		private var COLLADA     :XML;
		private var _container  :DisplayObjectContainer3D;
		private var _geometries :Object;
	
		private var _loader     :URLLoader;
	
		private var _filename   :String;
		private var _materials  :MaterialsList;
		private var _scaling    :Number;
	
		private var _yUp        :Boolean;
	
		static private var toDEGREES :Number = 180/Math.PI;
		static private var toRADIANS :Number = Math.PI/180;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一卡| 亚洲精品少妇30p| 日本二三区不卡| 国产精品1区2区| 久久99国产精品久久| 久久国产婷婷国产香蕉| 青青草视频一区| 五月婷婷久久综合| 日本免费在线视频不卡一不卡二| 亚洲福利视频一区二区| 一区二区三区不卡在线观看| 一区二区欧美国产| 性感美女极品91精品| 六月丁香婷婷久久| 国产.欧美.日韩| 成人做爰69片免费看网站| 白白色亚洲国产精品| 91丨porny丨首页| 欧美色偷偷大香| 亚洲精品一线二线三线无人区| 欧美电视剧在线看免费| 国产欧美一区二区精品婷婷| 国产精品亲子伦对白| 中文字幕亚洲区| 亚洲国产精品欧美一二99| 日本中文字幕不卡| 久99久精品视频免费观看| 成人免费看片app下载| 欧美日韩一级大片网址| 日韩欧美国产综合一区 | 精品国产一区二区三区av性色| 久久久久久9999| 亚洲精品国产无套在线观| 丝袜美腿亚洲一区二区图片| 国产在线精品不卡| 色88888久久久久久影院按摩 | 国产老妇另类xxxxx| 97se亚洲国产综合自在线| 欧美日韩成人激情| 亚洲国产高清在线| 日本美女视频一区二区| 东方aⅴ免费观看久久av| 精品视频在线视频| 欧美国产综合色视频| 日韩av一区二区三区四区| 盗摄精品av一区二区三区| 欧美精品色综合| 中文字幕在线不卡视频| 久久精品国产亚洲5555| 一本大道久久a久久综合| 精品国产一区二区三区不卡| 亚洲国产精品一区二区www在线 | 蜜桃av噜噜一区二区三区小说| bt欧美亚洲午夜电影天堂| 在线播放国产精品二区一二区四区| 久久久www成人免费无遮挡大片 | 久久久综合视频| 五月婷婷欧美视频| 91久久精品国产91性色tv| 国产三区在线成人av| 久久99久久久欧美国产| 在线播放中文字幕一区| 亚洲国产日韩在线一区模特| av在线不卡网| 日本一区二区三级电影在线观看| 免播放器亚洲一区| 在线电影院国产精品| 亚洲福利视频导航| 欧美日韩1234| 视频一区欧美日韩| 欧美精品在线一区二区| 欧美精品久久99| 国产a视频精品免费观看| 亚洲国产精品尤物yw在线观看| 亚洲精品一线二线三线| 色欧美日韩亚洲| 国产乱码精品1区2区3区| 亚洲图片有声小说| 国产精品午夜在线| 91精品国产入口在线| 99久久精品99国产精品 | 日韩欧美在线1卡| youjizz久久| 国内成人精品2018免费看| 亚洲综合丁香婷婷六月香| 国产欧美视频一区二区三区| 5月丁香婷婷综合| 精品国内二区三区| 国产乱码字幕精品高清av| 国产精品网站在线观看| 91视频xxxx| 天堂在线亚洲视频| 久久亚洲精品小早川怜子| 国产91富婆露脸刺激对白| 亚洲免费观看视频| 337p亚洲精品色噜噜| 国内精品第一页| 亚洲另类在线制服丝袜| 欧美精品精品一区| 国产不卡视频一区| 亚洲一级片在线观看| 精品奇米国产一区二区三区| 福利91精品一区二区三区| 亚洲一卡二卡三卡四卡五卡| 精品精品欲导航| 99re这里只有精品首页| 丝袜亚洲另类丝袜在线| 国产日产欧美一区| 欧美视频在线播放| 国产精品综合二区| 亚洲一区电影777| 欧美国产精品一区| 欧美日韩aaaaaa| voyeur盗摄精品| 日本美女一区二区| 欧美在线一区二区| 成人免费视频视频| 99re66热这里只有精品3直播| 成人av网址在线| 99久久er热在这里只有精品15 | 欧美精品久久一区| 精品少妇一区二区三区视频免付费| 欧美福利视频一区| 精品福利一区二区三区免费视频| 日韩美女视频在线| 久久久一区二区三区捆绑**| 欧美韩国日本一区| 亚洲激情五月婷婷| 日本中文在线一区| 国产精品亚洲综合一区在线观看| 国产成人99久久亚洲综合精品| www.欧美亚洲| 在线观看视频一区二区欧美日韩| 欧美三区在线视频| 精品成人在线观看| 中文在线免费一区三区高中清不卡| 国产精品久久毛片av大全日韩| 1024成人网| 日韩不卡一二三区| 国产精品一级黄| 99久久99久久精品国产片果冻 | 一区二区三区影院| 午夜视频一区二区三区| 激情综合网av| 99热这里都是精品| 欧美精品xxxxbbbb| 国产精品免费视频一区| 亚洲小说欧美激情另类| 国产乱人伦偷精品视频不卡| 欧洲一区二区三区免费视频| 日韩一区二区精品葵司在线| 国产欧美视频一区二区三区| 亚洲一区二区三区在线播放| 久久国产精品一区二区| 99精品国产视频| 欧美不卡视频一区| 亚洲免费视频中文字幕| 激情伊人五月天久久综合| 色视频欧美一区二区三区| 精品88久久久久88久久久| 一区二区三区久久| 国产福利一区二区| 欧美区在线观看| 中文字幕一区二区视频| 久久精工是国产品牌吗| 欧美日韩精品是欧美日韩精品| 久久久久免费观看| 蜜臀久久99精品久久久久宅男| 91麻豆免费在线观看| 久久久电影一区二区三区| 日韩精品色哟哟| 在线观看不卡视频| 中文字幕中文字幕一区| 激情综合色丁香一区二区| 欧美伦理电影网| 一区二区三区四区五区视频在线观看 | 国产日产欧美一区二区三区 | 成人久久视频在线观看| 欧美成人官网二区| 日韩vs国产vs欧美| 欧美日韩亚洲国产综合| 国产精品国产自产拍在线| 国内精品第一页| 精品国产91久久久久久久妲己| 天天做天天摸天天爽国产一区| 日本精品一级二级| 中文字幕乱码亚洲精品一区| 激情久久五月天| 精品国产成人在线影院| 免费观看日韩电影| 日韩欧美国产电影| 久久成人免费电影| 精品精品欲导航| 九色综合狠狠综合久久| 欧美xxxx老人做受| 蜜桃一区二区三区四区| 日韩美女一区二区三区四区| 蜜桃视频第一区免费观看| 91麻豆精品国产无毒不卡在线观看 | 中文欧美字幕免费|