public BoundingVolumeHierarchy(IPrimitive nodeA, IPrimitive nodeB, int splittingPlane)
 {
     this.splittingPlane = splittingPlane;
     this.nodeA          = nodeA;
     this.nodeB          = nodeB;
     this.Aabb           = nodeA.GetAxisAlignedBoundingBox() + nodeB.GetAxisAlignedBoundingBox();   // we can cache this because it is not allowed to change.
 }
Пример #2
0
        public AxisAlignedBoundingBox GetAxisAlignedBoundingBox()
        {
            Vector3 localOrigin = Origin;
            AxisAlignedBoundingBox localBounds = child.GetAxisAlignedBoundingBox();
            AxisAlignedBoundingBox bounds      = localBounds.NewTransformed(AxisToWorld);

            return(bounds);
        }
Пример #3
0
 public AxisAlignedBoundingBox GetAxisAlignedBoundingBox()
 {
     return(primary.GetAxisAlignedBoundingBox());
 }
		public BoundingVolumeHierarchy(IPrimitive nodeA, IPrimitive nodeB, int splitingPlane)
		{
			this.splitingPlane = splitingPlane;
			this.nodeA = nodeA;
			this.nodeB = nodeB;
			this.Aabb = nodeA.GetAxisAlignedBoundingBox() + nodeB.GetAxisAlignedBoundingBox(); // we can cache this because it is not allowed to change.
		}