mirror of
				https://github.com/MapMakersAndProgrammers/alternativa3d-archive.git
				synced 2025-10-30 17:05:17 -07:00 
			
		
		
		
	Remove .svn folders
This commit is contained in:
		| @@ -1,17 +0,0 @@ | ||||
| K 25 | ||||
| svn:wc:ra_dav:version-url | ||||
| V 99 | ||||
| /!svn/ver/497/platform/clients/fp10/libraries/Alternativa3D/tags/5.4.1/alternativa/engine3d/display | ||||
| END | ||||
| Skin.as | ||||
| K 25 | ||||
| svn:wc:ra_dav:version-url | ||||
| V 107 | ||||
| /!svn/ver/497/platform/clients/fp10/libraries/Alternativa3D/tags/5.4.1/alternativa/engine3d/display/Skin.as | ||||
| END | ||||
| View.as | ||||
| K 25 | ||||
| svn:wc:ra_dav:version-url | ||||
| V 107 | ||||
| /!svn/ver/497/platform/clients/fp10/libraries/Alternativa3D/tags/5.4.1/alternativa/engine3d/display/View.as | ||||
| END | ||||
| @@ -1,52 +0,0 @@ | ||||
| 8 | ||||
|  | ||||
| dir | ||||
| 46043 | ||||
| http://svndev.alternativaplatform.com/platform/clients/fp10/libraries/Alternativa3D/tags/5.4.1/alternativa/engine3d/display | ||||
| http://svndev.alternativaplatform.com | ||||
|  | ||||
|  | ||||
|  | ||||
| 2008-09-08T06:50:26.103978Z | ||||
| 468 | ||||
| mike | ||||
|  | ||||
|  | ||||
| svn:special svn:externals svn:needs-lock | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| d9e2387a-1f3e-40e2-b57f-9df5970a2fa5 | ||||
|  | ||||
| Skin.as | ||||
| file | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 2010-10-28T04:31:16.000000Z | ||||
| a49c915b68556525f014d6b2b1477b38 | ||||
| 2008-09-08T06:50:26.103978Z | ||||
| 468 | ||||
| mike | ||||
|  | ||||
| View.as | ||||
| file | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 2010-10-28T04:31:16.000000Z | ||||
| d9cfe36eb0034482d153d4b0f47c7759 | ||||
| 2008-08-29T11:41:21.451513Z | ||||
| 304 | ||||
| wolf | ||||
|  | ||||
| @@ -1 +0,0 @@ | ||||
| 8 | ||||
| @@ -1,66 +0,0 @@ | ||||
| package alternativa.engine3d.display { | ||||
| 	import alternativa.engine3d.*; | ||||
| 	import alternativa.engine3d.core.PolyPrimitive; | ||||
| 	import alternativa.engine3d.materials.SurfaceMaterial; | ||||
| 	 | ||||
| 	import flash.display.Graphics; | ||||
| 	import flash.display.Sprite; | ||||
| 	 | ||||
| 	use namespace alternativa3d; | ||||
| 	 | ||||
| 	/** | ||||
| 	 * @private | ||||
| 	 * Контейнер, исползуемый материалами для отрисовки примитивов. Каждый примитив BSP-дерева рисуется в своём контейнере. | ||||
| 	 */ | ||||
| 	public class Skin extends Sprite { | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Графика скина (для быстрого доступа) | ||||
| 		 */ | ||||
| 		alternativa3d var gfx:Graphics = graphics; | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Ссылка на следующий скин | ||||
| 		 */ | ||||
| 		alternativa3d var nextSkin:Skin; | ||||
| 		 | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Примитив | ||||
| 		 */ | ||||
| 		alternativa3d var primitive:PolyPrimitive; | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Материал, связанный со скином. | ||||
| 		 */ | ||||
| 		alternativa3d var material:SurfaceMaterial; | ||||
| 		 | ||||
| 		// Хранилище неиспользуемых скинов | ||||
| 		static private var collector:Array = new Array(); | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Создание скина. | ||||
| 		 */ | ||||
| 		static alternativa3d function createSkin():Skin { | ||||
| 			// Достаём скин из коллектора | ||||
| 			var skin:Skin = collector.pop(); | ||||
| 			// Если коллектор пуст, создаём новый скин | ||||
| 			if (skin == null) { | ||||
| 				skin = new Skin(); | ||||
| 			} | ||||
| 			return skin; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Удаление скина, все ссылки должны быть почищены. | ||||
| 		 */ | ||||
| 		static alternativa3d function destroySkin(skin:Skin):void { | ||||
| 			collector.push(skin); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -1,186 +0,0 @@ | ||||
| package alternativa.engine3d.display { | ||||
| 	import alternativa.engine3d.*; | ||||
| 	import alternativa.engine3d.core.Camera3D; | ||||
| 	import alternativa.engine3d.core.Face; | ||||
| 	 | ||||
| 	import flash.display.Sprite; | ||||
| 	import flash.geom.Point; | ||||
| 	 | ||||
| 	use namespace alternativa3d; | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Область для вывода изображения с камеры. | ||||
| 	 */ | ||||
| 	public class View extends Sprite { | ||||
| 		 | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Область отрисовки спрайтов | ||||
| 		 */		 | ||||
| 		alternativa3d var canvas:Sprite; | ||||
| 		 | ||||
| 		private var _camera:Camera3D; | ||||
| 		 | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Ширина области вывода | ||||
| 		 */		 | ||||
| 		alternativa3d var _width:Number; | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 * Высота области вывода | ||||
| 		 */		 | ||||
| 		alternativa3d var _height:Number; | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Создание экземпляра области вывода. | ||||
| 		 *  | ||||
| 		 * @param camera камера, изображение с которой должно выводиться  | ||||
| 		 * @param width ширина области вывода | ||||
| 		 * @param height высота области вывода | ||||
| 		 */ | ||||
| 		public function View(camera:Camera3D = null, width:Number = 0, height:Number = 0) { | ||||
| 			canvas = new Sprite(); | ||||
| 			canvas.mouseEnabled = false; | ||||
| 			canvas.mouseChildren = false; | ||||
| 			canvas.tabEnabled = false; | ||||
| 			canvas.tabChildren = false; | ||||
| 			addChild(canvas); | ||||
| 			 | ||||
| 			this.camera = camera; | ||||
| 			this.width = width; | ||||
| 			this.height = height; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Камера с которой ведётся отображение.  | ||||
| 		 */ | ||||
| 		public function get camera():Camera3D { | ||||
| 			return _camera; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 */ | ||||
| 		public function set camera(value:Camera3D):void { | ||||
| 			if (_camera != value) { | ||||
| 				// Если была камера | ||||
| 				if (_camera != null) { | ||||
| 					// Удалить камеру | ||||
| 					_camera.removeFromView(this); | ||||
| 				} | ||||
| 				// Если новая камера | ||||
| 				if (value != null) { | ||||
| 					// Если камера была в другом вьюпорте | ||||
| 					if (value._view != null) { | ||||
| 						// Удалить её оттуда | ||||
| 						value._view.camera = null; | ||||
| 					} | ||||
| 					// Добавить камеру | ||||
| 					value.addToView(this); | ||||
| 				} else { | ||||
| 					// Зачистка скинов | ||||
| 					if (canvas.numChildren > 0) { | ||||
| 						var skin:Skin = Skin(canvas.getChildAt(0)); | ||||
| 						while (skin != null) { | ||||
| 							// Сохраняем следующий | ||||
| 							var next:Skin = skin.nextSkin; | ||||
| 							// Удаляем из канваса | ||||
| 							canvas.removeChild(skin); | ||||
| 							// Очистка скина | ||||
| 							if (skin.material != null) { | ||||
| 								skin.material.clear(skin); | ||||
| 							} | ||||
| 							// Зачищаем ссылки | ||||
| 							skin.nextSkin = null; | ||||
| 							skin.primitive = null; | ||||
| 							skin.material = null; | ||||
| 							// Удаляем | ||||
| 							Skin.destroySkin(skin); | ||||
| 							// Следующий устанавливаем текущим | ||||
| 							skin = next; | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 				// Сохраняем камеру | ||||
| 				_camera = value; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Ширина области вывода в пикселях. | ||||
| 		 */ | ||||
| 		override public function get width():Number { | ||||
| 			return _width; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 */ | ||||
| 		override public function set width(value:Number):void { | ||||
| 			if (_width != value) { | ||||
| 				_width = value; | ||||
| 				canvas.x = _width*0.5; | ||||
| 				if (_camera != null) { | ||||
| 					camera.addOperationToScene(camera.calculatePlanesOperation); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Высота области вывода в пикселях. | ||||
| 		 */ | ||||
| 		override public function get height():Number { | ||||
| 			return _height; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * @private | ||||
| 		 */ | ||||
| 		override public function set height(value:Number):void { | ||||
| 			if (_height != value) { | ||||
| 				_height = value; | ||||
| 				canvas.y = _height*0.5; | ||||
| 				if (_camera != null) { | ||||
| 					camera.addOperationToScene(camera.calculatePlanesOperation); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Метод возвращает грань, находящуюся под указанной точкой в области вывода. | ||||
| 		 *  | ||||
| 		 * @param viewPoint координаты точки относительно области вывода | ||||
| 		 *  | ||||
| 		 * @return ближайшая к камере грань под заданной точкой области вывода | ||||
| 		 */ | ||||
| 		public function getFaceUnderPoint(viewPoint:Point):Face { | ||||
| 			var p:Point = localToGlobal(viewPoint); | ||||
| 			var objects:Array = canvas.getObjectsUnderPoint(p); | ||||
| 			var skin:Skin = objects.pop() as Skin; | ||||
| 			if (skin != null) { | ||||
| 				return skin.primitive.face; | ||||
| 			} | ||||
| 			return null; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Метод возвращает грани, находящиеся под указанной точкой в области вывода. | ||||
| 		 *  | ||||
| 		 * @param viewPoint координаты точки относительно области вывода | ||||
| 		 *  | ||||
| 		 * @return массив граней, расположенных под заданной точкой области вывода. Первым элементом массива является самая дальняя грань. | ||||
| 		 */ | ||||
| 		public function getFacesUnderPoint(viewPoint:Point):Array { | ||||
| 			var p:Point = localToGlobal(viewPoint); | ||||
| 			var objects:Array = canvas.getObjectsUnderPoint(p); | ||||
| 			var res:Array = new Array(); | ||||
| 			var length:uint = objects.length; | ||||
| 			for (var i:uint = 0; i < length; i++) { | ||||
| 				var skin:Skin = objects[i];  | ||||
| 				res.push(skin.primitive.face); | ||||
| 			} | ||||
| 			return res; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Pyogenics
					Pyogenics