mirror of
				https://github.com/MapMakersAndProgrammers/alternativa3d-archive.git
				synced 2025-10-30 17:05:17 -07:00 
			
		
		
		
	more versions added
This commit is contained in:
		| @@ -0,0 +1,66 @@ | ||||
| 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); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Tubix
					Tubix