macroScript pb_MaterialPlane category:"Piranha-Bytes" buttonText:"MaterialPlane" toolTip:"MaterialPlane"
(	
	rollout ro_MaterialPlane "pb MaterialPlane"
	(
		spinner ui_BoxSize "Square Size: " pos:[5,5] fieldwidth:50 range:[1,999999,100] type:#integer scale:1
		button ui_MatPlaneFromObj "Create from Object(s)" pos:[5,25] width:126 height:20 tooltip:"Create MaterialPlanes from selected Objects"
		button ui_MatPlaneFromMat "Create from Material" pos:[5,45] width:126 height:20 tooltip:"Create MaterialPlane from selected Material"

		on ui_MatPlaneFromObj pressed do
		(
			objList = (getCurrentSelection())
			if objList.count != 0 then
			(
				clearSelection()
				pOffset = 0
				for o=1 to objList.count do
				(
					obj = objList[o]
					if obj != undefined do
					(
						objMat = obj.material
						if objMat != undefined do
						(
							bSize = ui_BoxSize.value
							matClass = classof objMat
							matCount = 0
							
							if matClass == Multimaterial then matCount = objMat.count
							if matClass == Standardmaterial then matCount = 1
							
							matPlane = 	plane()
							matPlane.material = objMat
							matPlane.length = matCount * bSize 
							matPlane.lengthSegs = matCount
							matPlane.widthSegs = 1
							matPlane.width = bSize
							matPlane.name = "Material " + obj.name 
							matPlane.wireColor = red --black
							convertTo matPlane Editable_Poly
				
							pOffset = pOffset + bSize
							rotate matPlane (eulerangles 90 90 0)
							move matPlane [0,0,-(pOffset)]
							
							for f=1 to matCount do polyop.setFaceMatID matplane f f
		
							selectMore matPlane
						)
					)
				)
				forceCompleteRedraw()
			)
			else messageBox "No object(s) selected!" title:"Annoying Requester:"
		)
		
		on ui_MatPlaneFromMat pressed do
		(
			curMat = mEdit.getCurMtl()
			
			if curMat != undefined then
			(			
				objMat = curMat
				bSize = ui_BoxSize.value
				matClass = classof objMat
				matCount = 0
				
				if matClass == Multimaterial then matCount = objMat.count
				if matClass == Standardmaterial then matCount = 1
				
				matPlane = 	plane()
				matPlane.material = objMat
				matPlane.length = matCount * bSize 
				matPlane.lengthSegs = matCount
				matPlane.widthSegs = 1
				matPlane.width = bSize
				matPlane.name = "Material " + objMat.name 
				matPlane.wireColor = black
				convertTo matPlane Editable_Poly

				rotate matPlane (eulerangles 90 90 0)
				move matPlane [0,0,-(bSize)]
				
				for f=1 to matCount do polyop.setFaceMatID matplane f f

				select matPlane
				
				forceCompleteRedraw()
	
			)
			else messageBox "No Material selected!" title:"Annoying Requester:"
		)

		
	)
	
	createDialog ro_MaterialPlane width:140
)