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