protected void CreateSlabs(EBoundType InBoundType, H1Vector3 InLocation, H1Vector3 InExtent)
        {
            // depending on bound type, define the number of slabs
            Int32 SlabNum = 0;

            // setting transform properties
            Position = InLocation;
            Extent   = InExtent;

            switch (InBoundType)
            {
            case EBoundType.Box:
            {
                // total 3 slabs needed (x, y, z)
                SlabNum = 3;

                Slabs = new H1Slab[SlabNum];

                // x-axis
                H1Vector3 DirectionX = new H1Vector3(1, 0, 0);
                float     ExtentX    = InExtent.X;

                Slabs[0] = new H1Slab(DirectionX, Position, ExtentX);

                // y-axis
                H1Vector3 DirectionY = new H1Vector3(0, 1, 0);
                float     ExtentY    = InExtent.Y;

                Slabs[1] = new H1Slab(DirectionY, Position, ExtentY);

                // z-axis
                H1Vector3 DirectionZ = new H1Vector3(0, 0, 1);
                float     ExtentZ    = InExtent.Z;

                Slabs[2] = new H1Slab(DirectionZ, Position, ExtentZ);

                break;
            }

            default:
                break;
            }
        }
 public H1Bound(EBoundType InType, H1Vector3 InPosition, H1Vector3 InExtent)
 {
     CreateSlabs(InType, InPosition, InExtent);
 }