MacroScript Triangulator category:"Piranha-Bytes" tooltip:"Triangulator" buttonText:"Triangulator" ( rollout ro_Triangulator "pb Triangulator" ( button ui_ChangeByVertex "Change by Vertex" pos:[10,10] width:100 height:20 groupbox grp_ChangebyFaces "Change Polys to:" pos:[10,40] width:100 height:50 button ui_ChangeToOdd "Odd" pos:[60,60] width:45 height:20 button ui_ChangeToEven "Even" pos:[15,60] width:45 height:20 on ui_ChangeByVertex pressed do ( curObj = (getCurrentSelection())[1] if curObj != undefined do ( newSelVerts = (getVertSelection curObj ) as array if newselverts.count > 1 do ( objClass = classOf curObj if ObjClass == Editable_Poly do ( selVertList = newSelVerts as bitarray faceList = #{} for f=1 to newSelVerts.count do ( newFaces = polyop.getFacesUsingVert curObj newSelVerts[f] faceList = faceList + newFaces ) faceArray = faceList as array for f=1 to faceArray.count do ( vertList = polyop.getVertsUsingFace curObj #(faceArray[f]) cornerVerts = (selVertList * vertList) as array if cornerVerts.count == 2 do ( numCorners = curObj.getFaceDegree faceArray[f] if numCorners > 3 do ( diaList = #() for c=1 to numCorners do ( vIdx = curObj.getFaceVertex faceArray[f] c if (findItem newSelVerts vIdx) != 0 then append diaList c ) curObj.setDiagonal faceArray[f] diaList[1] diaList[2] ) ) ) ) ) ) ) on ui_ChangeToOdd pressed do ( curObj = (getCurrentSelection())[1] if ((curObj != undefined) and ((classof curObj) == Editable_Poly)) do ( faceSel = (polyop.getFaceSelection curObj) as array for f=1 to faceSel.count do ( numCorners = curObj.getFaceDegree faceSel[f] if numCorners > 3 then curObj.setDiagonal faceSel[f] 1 3 ) ) ) on ui_ChangeToEven pressed do ( curObj = (getCurrentSelection())[1] if ((curObj != undefined) and ((classof curObj) == Editable_Poly)) do ( faceSel = (polyop.getFaceSelection curObj) as array for f=1 to faceSel.count do ( numCorners = curObj.getFaceDegree faceSel[f] if numCorners > 3 then curObj.setDiagonal faceSel[f] 2 4 ) ) ) ) ------------------------------------------------------------------------------------------------- createDialog ro_Triangulator width:120 style:#(#style_sysmenu, #style_toolwindow) )