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 }