package org.papervision3d.core.clipping.draw { import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.command.RenderableListItem; /** * Base clipping class for no clipping. */ public class student_ar_org_papervision3d_core_clipping_draw_Clipping { private var rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping:Rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping; private var zeroPoint:Point = new Point(0, 0); private var globalPoint:Point; /** * Minimum allowed x value for primitives */ public var minX:Number = -1000000; /** * Minimum allowed y value for primitives */ public var minY:Number = -1000000; /** * Maximum allowed x value for primitives */ public var maxX:Number = 1000000; /** * Maximum allowed y value for primitives */ public var maxY:Number = 1000000; /** * Checks a drawing primitive for clipping. * * @param pri The drawing primitive being checked. * @return The clipping result - false for clipped, true for non-clipped. */ public function check(pri:RenderableListItem):Boolean { return true; } /** * Checks a bounding rectangle for clipping. * * @param minX The x value for the left side of the rectangle. * @param minY The y value for the top side of the rectangle. * @param maxX The x value for the right side of the rectangle. * @param maxY The y value for the bottom side of the rectangle. * @return The clipping result - false for clipped, true for non-clipped. */ public function rect(minX:Number, minY:Number, maxX:Number, maxY:Number):Boolean { return true; } /** * Returns a rectangle clipping object representing the bounding box of the clipping object. */ public function asRectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping():Rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping { if (!rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping) rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping = new Rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping(); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = -1000000; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = -1000000; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = 1000000; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = 1000000; return rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping; } /** * Returns a rectangle clipping object initilised with the edges of the flash movie as the clipping bounds. */ public function screen(container:Sprite):student_ar_org_papervision3d_core_clipping_draw_Clipping { if (!rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping) rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping = new Rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping(); switch(container.stage.align) { case StageAlign.TOP_LEFT: zeroPoint.x = 0; zeroPoint.y = 0; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x) + container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y) + container.stage.stageHeight; break; case StageAlign.TOP_RIGHT: zeroPoint.x = container.stage.stageWidth; zeroPoint.y = 0; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x) - container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y) + container.stage.stageHeight; break; case StageAlign.BOTTOM_LEFT: zeroPoint.x = 0; zeroPoint.y = container.stage.stageHeight; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x) + container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y) - container.stage.stageHeight; break; case StageAlign.BOTTOM_RIGHT: zeroPoint.x = container.stage.stageWidth; zeroPoint.y = container.stage.stageHeight; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x) - container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y) - container.stage.stageHeight; break; case StageAlign.TOP: zeroPoint.x = container.stage.stageWidth/2; zeroPoint.y = 0; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x - container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x + container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y) + container.stage.stageHeight; break; case StageAlign.BOTTOM: zeroPoint.x = container.stage.stageWidth/2; zeroPoint.y = container.stage.stageHeight; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x - container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x + container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y) - container.stage.stageHeight; break; case StageAlign.LEFT: zeroPoint.x = 0; zeroPoint.y = container.stage.stageHeight/2; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x) + container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y - container.stage.stageHeight/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y + container.stage.stageHeight/2; break; case StageAlign.RIGHT: zeroPoint.x = container.stage.stageWidth; zeroPoint.y = container.stage.stageHeight/2; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = (rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x) - container.stage.stageWidth; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y - container.stage.stageHeight/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y + container.stage.stageHeight/2; break; default: zeroPoint.x = container.stage.stageWidth/2; zeroPoint.y = container.stage.stageHeight/2; globalPoint = container.globalToLocal(zeroPoint); rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minX = globalPoint.x - container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxX = globalPoint.x + container.stage.stageWidth/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.minY = globalPoint.y - container.stage.stageHeight/2; rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping.maxY = globalPoint.y + container.stage.stageHeight/2; } return rectanglestudent_ar_org_papervision3d_core_clipping_draw_Clipping; } } }