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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? daeprimitive.as

?? flash 360全景瀏覽
?? AS
字號:
/*
 * Copyright 2007 (c) Tim Knip, ascollada.org.
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
 
package org.ascollada.core {

	import flash.utils.Dictionary;
	import org.ascollada.ASCollada;
	import org.ascollada.utils.Logger;

	public class DaePrimitive extends DaeEntity {
		
		/** parent element */
		public var mesh:DaeMesh;
		
		/** The number of line primitives. required */
		public var count:uint;
		
		/** materialname */
		public var material:String;
						
		/** vcount use by polygon primitives */
		public var vcount:Array;
		
		/** primitive type */
		public var type:String;
		
		/**
		 * 
		 * @param	mesh
		 * @param	node
		 * @return
		 */
		public function DaePrimitive( mesh:DaeMesh, node:XML = null ):void {
			this.mesh = mesh;
			super(node);
		}
		
		/** normals */
		public function get normals():Array { return getFirstInput("NORMAL"); }
		
		/** vertex indices */
		public function get vertices():Array { return getFirstInput("VERTEX"); }
		
		/**
		 * gets the texcoords by set.
		 * 
		 * @param	setID
		 * @return
		 */
		public function getTexCoords( setID:uint = 0 ):Array {
			return getInputBySet("TEXCOORD", setID);
		}
		
		/**
		 * 
		 * @return
		 */
		override public function read( node:XML ):void {
			
			if( !checkNode(node) )
				throw new Error( "expected a primitive element!" );
			if( !this.mesh )
				throw new Error( "parent-element 'mesh' or 'convex_mesh' not set!" );
				
			super.read(node);
			
			this.type = String( node.localName() );
			
			this.count = getAttributeAsInt( node, ASCollada.DAE_COUNT_ATTRIBUTE );
			this.material = getAttribute( node, ASCollada.DAE_MATERIAL_ATTRIBUTE );
			this.vcount = new Array();

			_inputs = new Dictionary();
			
			var parent:XML = node.parent() as XML;
			
			switch( String(parent.localName()) ) {
				case ASCollada.DAE_MESH_ELEMENT:
					parse( node );
					break;
				case ASCollada.DAE_CONVEX_MESH_ELEMENT:
					break;
				default:
					break;
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */		
		protected function parse( node:XML ):void {
			var p:Array = getInts( getNode(node, ASCollada.DAE_POLYGON_ELEMENT) );
			var vcountNode:XML = getNode(node, ASCollada.DAE_VERTEXCOUNT_ELEMENT);
			var inputList:XMLList = getNodeList( node, ASCollada.DAE_INPUT_ELEMENT );
			var inputs:Array = new Array();
			var input:DaeInput;
			var maxoffset:uint = 0;

			if( vcountNode is XML )
				this.vcount = getInts( vcountNode );

			for each( var inputNode:XML in inputList ) {
				input = new DaeInput( inputNode );
				maxoffset = Math.max(maxoffset, input.offset + 1);
				inputs.push( input );
				_inputs[ input ] = new Array();
			}
			
			for( var i:int = 0; i < p.length; i += maxoffset ) {
				for each( input in inputs ) {
					var idx:int = p[i + input.offset];
					var values:Array = mesh.sources[input.source];
					
					switch( input.semantic ) {
						case "VERTEX":
							_inputs[ input ].push( idx );
							break;
						default:
							_inputs[ input ].push( values[idx] );
							break;
					}
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function checkNode( node:XML ):Boolean {
			var name:String = String(node.localName());
			
			return (name == ASCollada.DAE_TRIANGLES_ELEMENT ||
					name == ASCollada.DAE_TRIFANS_ELEMENT ||
					name == ASCollada.DAE_TRISTRIPS_ELEMENT ||
					name == ASCollada.DAE_LINESTRIPS_ELEMENT ||
					name == ASCollada.DAE_LINES_ELEMENT ||
					name == ASCollada.DAE_POLYGONS_ELEMENT ||
					name == ASCollada.DAE_POLYLIST_ELEMENT);
		}

		/**
		 * 
		 * @param	semantic
		 * @return
		 */
		private function getFirstInput( semantic:String ):Array
		{
			for( var input:* in _inputs ) 
			{
				if( input.semantic == semantic )
					return _inputs[ input ];
			}
			return null;
		}
		
		/**
		 * 
		 * @param	semantic
		 * @return
		 */
		private function getInputBySet( semantic:String, setID:int ):Array
		{
			if( getInputCount(semantic) == 1 )
				return getFirstInput(semantic);
			for( var input:* in _inputs ) {
				if( input.semantic == semantic && input.setId == setID )
					return _inputs[ input ];
			}
			return new Array();
		}
		
		/**
		 * 
		 * @param	semantic
		 * @return
		 */
		private function getInputCount( semantic:String ):uint
		{
			var cnt:uint = 0;
			for( var input:* in _inputs ) 
			{
				if( input.semantic == semantic )
					cnt++;
			}
			return cnt;
		}
				
		private var _inputs:Dictionary;
	}	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲区| 精品国产免费人成电影在线观看四季| 国产精品久久久久四虎| 国产在线精品一区二区夜色 | 成人一道本在线| 国产欧美一区二区三区网站| 国产99久久久国产精品潘金 | 国产在线国偷精品产拍免费yy| 精品处破学生在线二十三| 国产一区二区h| 欧美国产综合一区二区| 91女神在线视频| 亚洲成国产人片在线观看| 91麻豆精品国产| 黄页视频在线91| 国产精品青草综合久久久久99| 91视频在线观看| 亚洲电影欧美电影有声小说| 欧美mv日韩mv国产网站app| 国产盗摄一区二区| 亚洲精品日韩一| 欧美sm美女调教| www.久久精品| 日韩精品久久理论片| 久久美女高清视频| 日本韩国视频一区二区| 美女性感视频久久| 中文字幕人成不卡一区| 欧美日韩亚洲综合在线 | 亚洲国产精品成人综合色在线婷婷| 色综合咪咪久久| 老司机精品视频在线| 国产精品乱人伦中文| 91.麻豆视频| 99riav一区二区三区| 视频一区欧美精品| 国产精品传媒视频| 日韩欧美在线网站| 成人激情av网| 国产在线播放一区三区四| 亚洲精品福利视频网站| 国产亚洲成av人在线观看导航| 欧美肥妇毛茸茸| 91美女福利视频| 国产精品中文字幕日韩精品 | 麻豆精品新av中文字幕| 亚洲欧洲精品一区二区三区| 6080午夜不卡| 91蝌蚪porny九色| 国产在线播放一区| 青青草97国产精品免费观看无弹窗版| 亚洲视频图片小说| 日本一区二区三区dvd视频在线| 91精品国产一区二区三区蜜臀| 91在线免费视频观看| 国产高清精品在线| 精品一区二区综合| 日本成人在线看| 亚洲主播在线播放| 亚洲色图色小说| 中文字幕av资源一区| 久久综合999| 欧美变态口味重另类| 欧美精品一卡两卡| 欧美福利视频一区| 欧美日韩久久一区二区| 欧洲精品视频在线观看| 色婷婷综合五月| 91香蕉视频mp4| 99久久99久久精品国产片果冻| 国产不卡视频一区| 国产91在线看| 成人精品gif动图一区| 国产成人av电影在线| 国产精品综合在线视频| 久久99久久久久久久久久久| 久久精品噜噜噜成人88aⅴ| 秋霞午夜鲁丝一区二区老狼| 日韩电影在线免费观看| 免费视频一区二区| 日本午夜精品一区二区三区电影 | ㊣最新国产の精品bt伙计久久| 中文在线一区二区| 中文字幕欧美区| 国产精品二区一区二区aⅴ污介绍| 亚洲国产精品黑人久久久| 国产精品国产自产拍在线| 中文字幕一区二区三区精华液 | 91丨九色丨蝌蚪富婆spa| 99精品黄色片免费大全| 色婷婷亚洲婷婷| 欧美中文字幕一区| 91精品国产美女浴室洗澡无遮挡| 日韩一级黄色片| 精品国产髙清在线看国产毛片| 久久精品视频一区二区| 自拍偷拍欧美精品| 天堂va蜜桃一区二区三区漫画版| 青青草成人在线观看| 国产毛片一区二区| 91麻豆国产香蕉久久精品| 色婷婷av一区二区三区gif| 欧美日韩国产成人在线91| 精品国产污污免费网站入口| 中文字幕日韩一区| 图片区小说区国产精品视频| 国产大片一区二区| 欧美在线不卡一区| 精品久久久影院| 国产精品不卡在线观看| 性欧美疯狂xxxxbbbb| 国产精品中文字幕日韩精品| 欧美综合一区二区| 久久久久九九视频| 夜夜精品视频一区二区| 成人aaaa免费全部观看| 欧美性生交片4| 日韩欧美成人一区二区| 国产精品久久久久婷婷二区次| 日韩精品乱码av一区二区| 成人晚上爱看视频| 91精品国模一区二区三区| 国产精品久久久久国产精品日日| 日韩精品一二三区| aaa亚洲精品| 久久亚洲一级片| 性做久久久久久免费观看 | 国产精品免费看片| 亚洲影视资源网| 成人午夜激情视频| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲精品乱码久久久久久| 久久er精品视频| 欧美在线观看禁18| 国产精品国产a| 国产一区二区三区四区五区美女| 欧美色综合影院| 成人欧美一区二区三区白人| 狠狠色综合播放一区二区| 欧美视频日韩视频| 亚洲人成7777| 豆国产96在线|亚洲| 日韩视频在线你懂得| 一区二区三区中文字幕| 懂色av一区二区三区免费观看 | 成人动漫av在线| 久久品道一品道久久精品| 日韩综合一区二区| 色综合天天天天做夜夜夜夜做| 国产午夜精品一区二区三区四区| 精品影院一区二区久久久| 欧美日韩国产高清一区| 亚洲一区二区三区四区在线| 99久久国产免费看| 国产精品伦理在线| 国产美女av一区二区三区| 精品久久国产97色综合| 首页国产丝袜综合| 欧美日本精品一区二区三区| 亚洲夂夂婷婷色拍ww47| 在线观看精品一区| 亚洲综合色自拍一区| 欧洲亚洲精品在线| 亚洲美女视频一区| 色婷婷综合久色| 亚洲激情校园春色| 色88888久久久久久影院野外| 综合欧美亚洲日本| 在线视频欧美精品| 亚洲综合自拍偷拍| 欧美性感一区二区三区| 亚洲国产精品自拍| 欧美丰满美乳xxx高潮www| 日本不卡一区二区三区高清视频| 日韩一区二区在线看片| 精品一区二区三区免费| 亚洲精品一区在线观看| 国产成人免费在线| 国产精品剧情在线亚洲| 色哟哟欧美精品| 婷婷六月综合网| 欧美一级高清片在线观看| 美女精品自拍一二三四| 久久久99精品免费观看| av电影在线不卡| 亚洲国产美女搞黄色| 欧美一区二区三区影视| 精品一区二区精品| 欧美韩日一区二区三区| 在线免费观看不卡av| 日韩中文字幕av电影| 久久夜色精品国产欧美乱极品| 成人av资源下载| 亚洲与欧洲av电影| 日韩视频一区二区| 国产盗摄视频一区二区三区| 亚洲精品国久久99热| 欧美成va人片在线观看| 91在线免费播放| 麻豆精品国产传媒mv男同|