topical media & game development

talk show tell print

student-ar-org-papervision3d-core-clipping-draw-Clipping.ax

student-ar-org-papervision3d-core-clipping-draw-Clipping.ax [swf] flex


  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 @ax-student-ar-org-papervision3d-core-clipping-draw-Clipping
      {
              private var rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping:Rectangle@ax-student-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 asRectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping():Rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping
          {
                  if (!rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping)
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping = new Rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping();
                  
                  rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = -1000000;
                  rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = -1000000;
                  rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = 1000000;
                  rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxY = 1000000;
                  
              return rectangle@ax-student-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):@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping
          {
                  if (!rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping)
                              rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping = new Rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x) + container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x) - container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x) + container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x) - container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x - container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x + container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x - container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x + container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = (rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x) + container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = globalPoint.y - container.stage.stageHeight/2;
                          rectangle@ax-student-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);
                          
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = (rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x) - container.stage.stageWidth;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = globalPoint.y - container.stage.stageHeight/2;
                          rectangle@ax-student-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);
                              
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minX = globalPoint.x - container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxX = globalPoint.x + container.stage.stageWidth/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.minY = globalPoint.y - container.stage.stageHeight/2;
                          rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping.maxY = globalPoint.y + container.stage.stageHeight/2;
                  }
              
              return rectangle@ax-student-ar-org-papervision3d-core-clipping-draw-Clipping;
          }
      }
  }


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.