001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    
006    @SideOnly(Side.CLIENT)
007    public class Frustrum implements ICamera
008    {
009        private ClippingHelper clippingHelper = ClippingHelperImpl.getInstance();
010        private double xPosition;
011        private double yPosition;
012        private double zPosition;
013    
014        public void setPosition(double par1, double par3, double par5)
015        {
016            this.xPosition = par1;
017            this.yPosition = par3;
018            this.zPosition = par5;
019        }
020    
021        /**
022         * Calls the clipping helper. Returns true if the box is inside all 6 clipping planes, otherwise returns false.
023         */
024        public boolean isBoxInFrustum(double par1, double par3, double par5, double par7, double par9, double par11)
025        {
026            return this.clippingHelper.isBoxInFrustum(par1 - this.xPosition, par3 - this.yPosition, par5 - this.zPosition, par7 - this.xPosition, par9 - this.yPosition, par11 - this.zPosition);
027        }
028    
029        /**
030         * Returns true if the bounding box is inside all 6 clipping planes, otherwise returns false.
031         */
032        public boolean isBoundingBoxInFrustum(AxisAlignedBB par1AxisAlignedBB)
033        {
034            return this.isBoxInFrustum(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ, par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ);
035        }
036    }