function RoomPackager.CornersOfPart(f,v)local N=v.CFrame local D=v.Size.X/2 local i=v.Size.Y/2 local u=v.Size.Z/2 local V={RightTopBack=N:pointToWorldSpace(Vector3.new(D,i,u)),RightBottomBack=N:pointToWorldSpace(Vector3.new(D,-i,u));RightTopFront=N:pointToWorldSpace(Vector3.new(D,i,-u)),RightBottomFront=N:pointToWorldSpace(Vector3.new(D,-i,-u));LeftTopBack=N:pointToWorldSpace(Vector3.new(-D,i,u)),LeftBottomBack=N:pointToWorldSpace(Vector3.new(-D,-i,u)),LeftTopFront=N:pointToWorldSpace(Vector3.new(-D,i,-u)),LeftBottomFront=N:pointToWorldSpace(Vector3.new(-D,-i,-u))}return V 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
