Hi, I wonder if someone can help show me what I'm doing wrong here. The script is a little hacky tool to create a list of checkboxes that each correspond to a material ID in a mesh. The idea is that clicking the checkboxes on and off hides and unhides the polys with those ID's.
I don't need anything fancy, so right now, I'm stipulating that the mesh has an edit poly modifier, and a delete mesh modifier above it. The script selects polys in the epoly modifier which then is the subobject selection for the delete mesh. I tried hiding them, but they still render, and I don't want that.
Ugly, I know, but I just want to get it working, then get fancier if I have time :)
Anyway, here's the script. The error I'm getting is that the checkbox handler isn't recognizing the function "chkboxHandler" as defined. Scoping issue? To me, the fn seems like it's in the right place. I'm pretty stumped.
Thanks for looking :)
(
local node = $
local mat = node.material;
local matNum = mat.numsubs
local nodeName = node.name
local visArray = #()
local setPolys
fn setPolys =
(
select node
ePoly = node.modifiers[#Edit_Poly]
modPanel.setCurrentObject ePoly
subobjectLevel = 4
ePoly.SetSelection #Face #{}
ePoly.selectByMaterialClear = off
for m = 1 to mat.numsubs do (
if( visArray[m] ) do (
ePoly.selectByMaterialID = m
ePoly.ButtonOp #SelectByMaterial
)
)
modPanel.setCurrentObject node.modifiers[#DeleteMesh]
deselect node;
)
fn chkboxHandler index state =
(
visArray[index] = state;
format"checkbox:% %\n" index visArray[index]
setPolys();
)
rci = rolloutCreator "matVis" nodeName
rci.begin();
for m = 1 to matNum do (
visArray[m] = false;
local boxName = ("chkbox" + m as string) as name
rci.addControl #checkbox boxName ("ID_" + m as string)
local str = "chkboxHandler " + (m as string) + " val" -- doing it here to be able to debug the string that is being used
rci.addHandler boxName #changed paramStr:"val" codeStr:str
)
rci.end()
matFloater = newRolloutFloater "set Material ID Vis" 100 (35 + matNum * 21);
(
addRollout rci.def matFloater
)
)
Anubis · 2009-09-17