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

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

?? vertices3d.as

?? flash 360全景瀏覽
?? AS
字號:
?/*
 *  PAPER    ON   ERVIS  NPAPER ISION  PE  IS ON  PERVI IO  APER  SI  PA
 *  AP  VI  ONPA  RV  IO PA     SI  PA ER  SI NP PE     ON AP  VI ION AP
 *  PERVI  ON  PE VISIO  APER   IONPA  RV  IO PA  RVIS  NP PE  IS ONPAPE
 *  ER     NPAPER IS     PE     ON  PE  ISIO  AP     IO PA ER  SI NP PER
 *  RV     PA  RV SI     ERVISI NP  ER   IO   PE VISIO  AP  VISI  PA  RV3D
 *  ______________________________________________________________________
 *  papervision3d.org ? blog.papervision3d.org ? osflash.org/papervision3d
 */

/*
 * Copyright 2006 (c) Carlos Ulloa Matesanz, noventaynueve.com.
 *
 * 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.
 */

// ______________________________________________________________________
//                                               GeometryObject3D: Points
package org.papervision3d.core.geom {
	import flash.geom.Rectangle;
	
	import org.papervision3d.core.culling.IObjectCuller;
	import org.papervision3d.core.geom.renderables.Vertex3D;
	import org.papervision3d.core.geom.renderables.Vertex3DInstance;
	import org.papervision3d.core.math.Matrix3D;
	import org.papervision3d.core.math.Number3D;
	import org.papervision3d.core.proto.GeometryObject3D;
	import org.papervision3d.core.render.data.RenderSessionData;
	import org.papervision3d.objects.DisplayObject3D;	

	/**
	* The Vertices3D class lets you create and manipulate groups of vertices.
	*
	*/
	public class Vertices3D extends DisplayObject3D
	{
		// ___________________________________________________________________________________________________
		//                                                                                               N E W
		// NN  NN EEEEEE WW    WW
		// NNN NN EE     WW WW WW
		// NNNNNN EEEE   WWWWWWWW
		// NN NNN EE     WWW  WWW
		// NN  NN EEEEEE WW    WW

		/**
		* Creates a new Points object.
		*
		* The Points GeometryObject3D class lets you create and manipulate groups of vertices.
		*
		* @param	vertices	An array of Vertex3D objects for the vertices of the mesh.
		* <p/>
		* @param	initObject	[optional] - An object that contains user defined properties with which to populate the newly created GeometryObject3D.
		* <p/>
		* It includes x, y, z, rotationX, rotationY, rotationZ, scaleX, scaleY scaleZ and a user defined extra object.
		* <p/>
		* If extra is not an object, it is ignored. All properties of the extra field are copied into the new instance. The properties specified with extra are publicly available.
		*/
		public function Vertices3D( vertices:Array, name:String=null, initObject:Object=null )
		{
			super( name, new GeometryObject3D(), initObject );
			this.geometry.vertices = vertices || new Array();
		}

		// ___________________________________________________________________________________________________
		//                                                                                   T R A N S F O R M
		// TTTTTT RRRRR    AA   NN  NN  SSSSS FFFFFF OOOO  RRRRR  MM   MM
		//   TT   RR  RR  AAAA  NNN NN SS     FF    OO  OO RR  RR MMM MMM
		//   TT   RRRRR  AA  AA NNNNNN  SSSS  FFFF  OO  OO RRRRR  MMMMMMM
		//   TT   RR  RR AAAAAA NN NNN     SS FF    OO  OO RR  RR MM M MM
		//   TT   RR  RR AA  AA NN  NN SSSSS  FF     OOOO  RR  RR MM   MM

		/**
		* Projects three dimensional coordinates onto a two dimensional plane to simulate the relationship of the camera to subject.
		*
		* This is the first step in the process of representing three dimensional shapes two dimensionally.
		*
		* @param	camera		Camera.
		*/
		public override function project( parent :DisplayObject3D,  renderSessionData:RenderSessionData ):Number
		{
			super.project( parent, renderSessionData );

			if( this.culled )
				return 0;
				
			if( renderSessionData.camera is IObjectCuller )
				return projectFrustum(parent, renderSessionData);
				
			var view:Matrix3D = this.view,

			// Camera
			m11 :Number = view.n11,
			m12 :Number = view.n12,
			m13 :Number = view.n13,
			m21 :Number = view.n21,
			m22 :Number = view.n22,
			m23 :Number = view.n23,
			m31 :Number = view.n31,
			m32 :Number = view.n32,
			m33 :Number = view.n33,
			vx	:Number,
			vy	:Number,
			vz	:Number,
			s_x	:Number,
			s_y	:Number,
			s_z	:Number,
			vertex:org.papervision3d.core.geom.renderables.Vertex3D, 
			screen:Vertex3DInstance,
			persp :Number,

			vertices :Array  = this.geometry.vertices,
			i        :int    = vertices.length,

			focus    :Number = renderSessionData.camera.focus,
			fz       :Number = focus * renderSessionData.camera.zoom;
			
			while( vertex = vertices[--i] )
			{
				// Center position
				vx = vertex.x;
				vy = vertex.y;
				vz = vertex.z;
				
				s_z = vx * m31 + vy * m32 + vz * m33 + view.n34;
				
				screen = vertex.vertex3DInstance;
		
				if( screen.visible = ( s_z > 0 ) )
				{
					s_x = vx * m11 + vy * m12 + vz * m13 + view.n14;
					s_y = vx * m21 + vy * m22 + vz * m23 + view.n24;
					
					persp = fz / (focus + s_z);
					screen.x = s_x * persp;
					screen.y = s_y * persp;
					screen.z = s_z;
				}
			}

			return 0; //screenZ;
		}

		/**
		 * 
		 * @param	parent
		 * @param	camera
		 * @param	sorted
		 * @return
		 */
		public function projectFrustum( parent :DisplayObject3D, renderSessionData:RenderSessionData ):Number 
		{
			var view:Matrix3D = this.view,
				viewport:Rectangle = renderSessionData.camera.viewport,
				m11 :Number = view.n11,
				m12 :Number = view.n12,
				m13 :Number = view.n13,
				m21 :Number = view.n21,
				m22 :Number = view.n22,
				m23 :Number = view.n23,
				m31 :Number = view.n31,
				m32 :Number = view.n32,
				m33 :Number = view.n33,
				m41 :Number = view.n41,
				m42 :Number = view.n42,
				m43 :Number = view.n43,
				vx	:Number,
				vy	:Number,
				vz	:Number,
				s_x	:Number,
				s_y	:Number,
				s_z	:Number,
				s_w :Number,
				vpw :Number = viewport.width / 2,
				vph :Number = viewport.height / 2,
				vertex : Vertex3D, 
				screen:Vertex3DInstance,
				vertices :Array  = this.geometry.vertices,
				i        :int    = vertices.length;
			
			while( vertex = vertices[--i] )
			{
				// Center position
				vx = vertex.x;
				vy = vertex.y;
				vz = vertex.z;
				
				s_z = vx * m31 + vy * m32 + vz * m33 + view.n34;
				s_w = vx * m41 + vy * m42 + vz * m43 + view.n44;
				
				screen = vertex.vertex3DInstance;
				
				// to normalized clip space (0.0 to 1.0)
				// NOTE: can skip and simply test (s_z < 0) and save a div
				s_z /= s_w;
			
				// is point between near- and far-plane?
				if( screen.visible = (s_z > 0 && s_z < 1) )
				{
					// to normalized clip space (-1,-1) to (1, 1)
					s_x = (vx * m11 + vy * m12 + vz * m13 + view.n14) / s_w;
					s_y = (vx * m21 + vy * m22 + vz * m23 + view.n24) / s_w;
					
					// NOTE: optionally we can flag screen verts here 
					//screen.visible = (s_x > -1 && s_x < 1 && s_y > -1 && s_y < 1);
					
					// project to viewport.
					screen.x = s_x * vpw;
					screen.y = s_y * vph;
					
					//Papervision3D.logger.debug( "sx:" + screen.x + " " +screen.y );
					// NOTE: z not lineair, value increases when nearing far-plane.
					screen.z = s_z;
				}
			}
			
			return 0;
		}
		
		/**
		* Calculates 3D bounding box.
		*
		* @return	{minX, maxX, minY, maxY, minZ, maxZ}
		*/
		public function boundingBox():Object
		{
			var vertices :Object = this.geometry.vertices;
			var bBox     :Object = new Object();

			bBox.min  = new Number3D();
			bBox.max  = new Number3D();
			bBox.size = new Number3D();

			for( var i:String in vertices )
			{
				var v:org.papervision3d.core.geom.renderables.Vertex3D = vertices[Number(i)];

				bBox.min.x = (bBox.min.x == undefined)? v.x : Math.min( v.x, bBox.min.x );
				bBox.max.x = (bBox.max.x == undefined)? v.x : Math.max( v.x, bBox.max.x );

				bBox.min.y = (bBox.min.y == undefined)? v.y : Math.min( v.y, bBox.min.y );
				bBox.max.y = (bBox.max.y == undefined)? v.y : Math.max( v.y, bBox.max.y );

				bBox.min.z = (bBox.min.z == undefined)? v.z : Math.min( v.z, bBox.min.z );
				bBox.max.z = (bBox.max.z == undefined)? v.z : Math.max( v.z, bBox.max.z );
			}

			bBox.size.x = bBox.max.x - bBox.min.x;
			bBox.size.y = bBox.max.y - bBox.min.y;
			bBox.size.z = bBox.max.z - bBox.min.z;

			return bBox;
		}

		public function transformVertices( transformation:Matrix3D ):void
		{
			var m11 :Number = transformation.n11,
			m12 :Number = transformation.n12,
			m13 :Number = transformation.n13,
			m21 :Number = transformation.n21,
			m22 :Number = transformation.n22,
			m23 :Number = transformation.n23,
			m31 :Number = transformation.n31,
			m32 :Number = transformation.n32,
			m33 :Number = transformation.n33,

			m14 :Number = transformation.n14,
			m24 :Number = transformation.n24,
			m34 :Number = transformation.n34,

			vertices :Array  = this.geometry.vertices,
			i        :int    = vertices.length,

			vertex   :org.papervision3d.core.geom.renderables.Vertex3D;

			// trace( "transformed " + i ); // DEBUG

			while( vertex = vertices[--i] )
			{
				// Center position
				var vx :Number = vertex.x;
				var vy :Number = vertex.y;
				var vz :Number = vertex.z;

				var tx :Number = vx * m11 + vy * m12 + vz * m13 + m14;
				var ty :Number = vx * m21 + vy * m22 + vz * m23 + m24;
				var tz :Number = vx * m31 + vy * m32 + vz * m33 + m34;

				vertex.x = tx;
				vertex.y = ty;
				vertex.z = tz;
			}
		}

		// ___________________________________________________________________________________________________
		//                                                                                         R E N D E R
		// RRRRR  EEEEEE NN  NN DDDDD  EEEEEE RRRRR
		// RR  RR EE     NNN NN DD  DD EE     RR  RR
		// RRRRR  EEEE   NNNNNN DD  DD EEEE   RRRRR
		// RR  RR EE     NN NNN DD  DD EE     RR  RR
		// RR  RR EEEEEE NN  NN DDDDD  EEEEEE RR  RR

		// public function render() {}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久久久| 国产欧美日韩精品在线| 五月天激情小说综合| 欧美日韩激情在线| 美国毛片一区二区| 久久久国产精品午夜一区ai换脸| 国产成人在线视频网站| 欧美激情一区不卡| 一本高清dvd不卡在线观看| 亚洲老妇xxxxxx| 在线播放欧美女士性生活| 看国产成人h片视频| 欧美国产视频在线| 色94色欧美sute亚洲线路二 | 一本久久精品一区二区| 亚洲久草在线视频| 69精品人人人人| 国产另类ts人妖一区二区| 国产视频一区二区三区在线观看| bt欧美亚洲午夜电影天堂| 一级做a爱片久久| 欧美一级在线观看| 国产成人av一区| 亚洲一区二区三区国产| 26uuu国产电影一区二区| 99精品国产视频| 性感美女极品91精品| 久久久久国色av免费看影院| 91蜜桃婷婷狠狠久久综合9色| 天天色综合成人网| 久久精品综合网| 欧美猛男男办公室激情| 成熟亚洲日本毛茸茸凸凹| 亚洲va天堂va国产va久| 欧美国产日本韩| 欧美性极品少妇| 成人app软件下载大全免费| 亚洲6080在线| 国产精品国产三级国产aⅴ中文| 在线播放欧美女士性生活| bt7086福利一区国产| 精品一区二区影视| 亚洲高清免费视频| 中文字幕在线观看一区| 欧美一级专区免费大片| 欧洲生活片亚洲生活在线观看| 国产在线播精品第三| 亚洲成国产人片在线观看| 国产精品网站在线| 亚洲精品一区在线观看| 欧美日韩一本到| av不卡在线播放| 国产精品自拍一区| 国产电影一区二区三区| 日日欢夜夜爽一区| 中文字幕人成不卡一区| 国产日韩精品一区二区三区在线| 欧美一区二区视频在线观看2020 | 国产寡妇亲子伦一区二区| 日本成人中文字幕在线视频| 亚洲永久精品国产| 亚洲图片欧美激情| 国产精品免费视频观看| www一区二区| 欧美草草影院在线视频| 欧美一级在线观看| 91精品国产美女浴室洗澡无遮挡| 在线观看av一区| 色婷婷精品大在线视频| 91麻豆免费视频| 色呦呦日韩精品| 色噜噜狠狠成人中文综合| 99久精品国产| 色94色欧美sute亚洲线路一ni| av中文一区二区三区| 91在线视频在线| 91在线视频18| 在线观看不卡一区| 欧美日韩一区二区三区四区| 欧美日韩在线亚洲一区蜜芽| 欧美日韩一区视频| 欧美肥胖老妇做爰| 欧美一级久久久久久久大片| 日韩小视频在线观看专区| 日韩一区二区精品在线观看| 日韩精品一区二区三区在线| 26uuu欧美日本| 中文字幕第一区二区| 国产精品成人网| 亚洲视频中文字幕| 亚洲一区精品在线| 五月激情综合色| 久久精品国产一区二区三区免费看 | 日韩**一区毛片| 麻豆国产精品视频| av日韩在线网站| 91丨porny丨国产| 欧美亚洲日本国产| 日韩三级.com| 中文字幕成人av| 亚洲精品第一国产综合野| 无吗不卡中文字幕| 九一久久久久久| 成人av在线资源网| 欧美日韩一区二区三区视频| 日韩欧美一级二级| 国产精品国产三级国产专播品爱网| 一区二区三区日韩| 精品综合免费视频观看| 成人sese在线| 欧美老女人在线| 国产欧美日韩另类一区| 亚洲电影中文字幕在线观看| 国产最新精品精品你懂的| 99re在线精品| 欧美变态tickle挠乳网站| 综合欧美一区二区三区| 麻豆精品久久久| 一本久久综合亚洲鲁鲁五月天| 日韩免费电影网站| 亚洲欧美国产三级| 激情图片小说一区| 在线影院国内精品| 久久久久免费观看| 亚洲18女电影在线观看| 丰满少妇久久久久久久| 欧美精品1区2区3区| 国产精品成人免费精品自在线观看| 日本少妇一区二区| 91色综合久久久久婷婷| 久久精品一区四区| 美腿丝袜亚洲三区| 在线欧美小视频| 国产精品久久久久久久第一福利| 日本午夜精品视频在线观看| 91在线视频免费观看| 国产亚洲一区字幕| 蜜桃视频在线观看一区| 色综合天天天天做夜夜夜夜做| 日韩一区二区三区在线观看| 亚洲免费成人av| 成人免费黄色大片| 日韩欧美精品三级| 同产精品九九九| 日本道免费精品一区二区三区| 一卡二卡三卡日韩欧美| 国产凹凸在线观看一区二区| 欧美一区二区三区婷婷月色| 亚洲综合一区二区三区| 成人av网站免费| 国产情人综合久久777777| 免费不卡在线观看| 69av一区二区三区| 亚洲午夜免费福利视频| 在线看日本不卡| 亚洲另类色综合网站| 一本久久a久久精品亚洲| 中文字幕字幕中文在线中不卡视频| 国产成人日日夜夜| 久久久久国色av免费看影院| 国产一区二区免费看| 久久综合色8888| 国产一区二区视频在线播放| 精品日韩成人av| 国产乱人伦偷精品视频不卡| 亚洲精品在线一区二区| 国产一区免费电影| 久久久精品蜜桃| 国产精品996| 国产精品色婷婷久久58| eeuss鲁片一区二区三区在线看| 亚洲欧洲日韩av| 91视视频在线直接观看在线看网页在线看| 国产精品美女久久久久久久久| 成人网在线免费视频| 日韩码欧中文字| 日本大香伊一区二区三区| 亚洲国产精品久久久久婷婷884| 欧美顶级少妇做爰| 美腿丝袜一区二区三区| 久久久久久一级片| 91尤物视频在线观看| 亚洲一二三四在线| 欧美一级日韩不卡播放免费| 精一区二区三区| 国产精品美女久久久久aⅴ| 91视频观看免费| 天堂在线一区二区| 精品福利av导航| av亚洲精华国产精华| 亚洲欧美怡红院| 欧美三级电影在线观看| 美国精品在线观看| 国产精品国产精品国产专区不片| 91成人国产精品| 精久久久久久久久久久| 国产精品不卡在线| 91精品国产免费久久综合| 高清shemale亚洲人妖| 亚洲一线二线三线视频|