    001    package net.minecraft.client.renderer.culling;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.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    }