function RoomPackager.CornersOfPart(U,m)local b=m.CFrame local F=m.Size.X/2 local u=m.Size.Y/2 local L=m.Size.Z/2 local e={RightTopBack=b:pointToWorldSpace(Vector3.new(F,u,L)),RightBottomBack=b:pointToWorldSpace(Vector3.new(F,-u,L));RightTopFront=b:pointToWorldSpace(Vector3.new(F,u,-L)),RightBottomFront=b:pointToWorldSpace(Vector3.new(F,-u,-L));LeftTopBack=b:pointToWorldSpace(Vector3.new(-F,u,L));LeftBottomBack=b:pointToWorldSpace(Vector3.new(-F,-u,L));LeftTopFront=b:pointToWorldSpace(Vector3.new(-F,u,-L)),LeftBottomFront=b:pointToWorldSpace(Vector3.new(-F,-u,-L))}return e end
--returns a table of vector3s that represent the corners of any given part
function RoomPackager:CornersOfPart(part)
	local cframe = part.CFrame
	local halfSizeX = part.Size.X / 2
	local halfSizeY = part.Size.Y / 2
	local halfSizeZ = part.Size.Z / 2

	local corners = {
		RightTopBack = cframe:pointToWorldSpace(Vector3.new(halfSizeX, halfSizeY, halfSizeZ)),
		RightBottomBack = cframe:pointToWorldSpace(Vector3.new(halfSizeX, -halfSizeY, halfSizeZ)),
		RightTopFront = cframe:pointToWorldSpace(Vector3.new(halfSizeX, halfSizeY, -halfSizeZ)),
		RightBottomFront = cframe:pointToWorldSpace(Vector3.new(halfSizeX, -halfSizeY, -halfSizeZ)),
		LeftTopBack = cframe:pointToWorldSpace(Vector3.new(-halfSizeX, halfSizeY, halfSizeZ)),
		LeftBottomBack = cframe:pointToWorldSpace(Vector3.new(-halfSizeX, -halfSizeY, halfSizeZ)),
		LeftTopFront = cframe:pointToWorldSpace(Vector3.new(-halfSizeX, halfSizeY, -halfSizeZ)),
		LeftBottomFront = cframe:pointToWorldSpace(Vector3.new(-halfSizeX, -halfSizeY, -halfSizeZ)),
	}

	return corners
end
