local function O(O,U,m)local Z={}for v=1,#m,1 do Z[v]=O:PointToWorldSpace(m[v]*U)end return Z end local function U(O)local U=O[1]for m=2,#O,1 do U=U+O[2]end return U/#O end local function m(O)if O.ClassName=="\080\097\114\116"then if O.Shape==Enum.PartType.Block then return"\066\108\111\099\107"elseif O.Shape==Enum.PartType.Cylinder then return"\067\121\108\105\110\100\101\114"elseif O.Shape==Enum.PartType.Ball then return"\066\097\108\108"end elseif O.ClassName=="\087\101\100\103\101\080\097\114\116"then return"\087\101\100\103\101"elseif O.ClassName=="\067\111\114\110\101\114\087\101\100\103\101\080\097\114\116"then return"\067\111\114\110\101\114\087\101\100\103\101"elseif O:IsA("\066\097\115\101\080\097\114\116")then return"\066\108\111\099\107"end end


local function vertShape(cf, size2, array)
	local output = {}
	for i = 1, #array do
		output[i] = cf:PointToWorldSpace(array[i] * size2)
	end
	return output
end

local function getCentroidFromSet(set)
	local sum = set[1]
	for i = 2, #set do
		sum = sum + set[2]
	end
	return sum / #set
end

local function classify(part)
	if (part.ClassName == "Part") then
		if (part.Shape == Enum.PartType.Block) then
			return "Block"
		elseif (part.Shape == Enum.PartType.Cylinder) then
			return "Cylinder"
		elseif (part.Shape == Enum.PartType.Ball) then
			return "Ball"
		end;
	elseif (part.ClassName == "WedgePart") then
		return "Wedge"
	elseif (part.ClassName == "CornerWedgePart") then
		return "CornerWedge"
	elseif (part:IsA("BasePart")) then -- mesh, CSG, truss, etc... just use block
		return "Block"
	end
end
