try(destroyDialog igorznag_ro_wave) catch()
rollout igorznag_ro_wave "Wave"
(
button btn_example "Example" pos:[10,10]
button btn_apply "Apply" pos:[80,10]
on btn_example pressed do
(
for i=1 to 10 do
(
obj=box length:10 width:10 height:10
obj.pos.x=(i-1)*10
)
sp= splineShape(); sp.name="wave";
addNewSpline sp;
addKnot sp 1 #smooth #curve [0,0,0]
addKnot sp 1 #smooth #curve [-50,0,40]
addKnot sp 1 #smooth #curve [-100,0,20]
addKnot sp 1 #smooth #curve [-140,0,35]
addKnot sp 1 #smooth #curve [-160,0,23]
addKnot sp 1 #smooth #curve [-200,0,20]
addKnot sp 1 #smooth #curve [-305,0,20]
updateShape sp; sp.renderable=false
sp.render_displayRenderMesh=true
sp.render_useViewportSettings=true
sp.render_displayRenderSettings=false
sp.render_viewport_rectangular =false
sp.render_viewport_thickness =1
sp.render_viewport_sides=3
addModifier sp (Edit_Mesh())
d=dummy();d.boxsize=[10,10,10];d.pos=[0,0,0]
d.name="dummy_wave"; sp.parent=d;
with animate on at time 100 d.pos=[300,0,0]
completeRedraw();
)--on btn_example pressed do
on btn_apply pressed do
(
try
(
for obj in selection do
(
obj.height.controller=float_script()
str="";
str=str+"h=0";str=str+"\n"
str=str+"try";str=str+"\n"
str=str+"(";str=str+"\n"
str=str+"dependsOn $wave";str=str+"\n"
str=str+"refsArray = (refs.dependents this)";str=str+"\n"
str=str+"for i in refsArray where isvalidnode i do";str=str+"\n"
str=str+"(";str=str+"\n"
str=str+"r= ray i.pos i.dir";str=str+"\n"
str=str+"p=intersectRay $wave r";str=str+"\n"
str=str+"if(p!=undefined)then";str=str+"\n"
str=str+"(";str=str+"\n"
str=str+"h=length(p.pos-i.pos)";str=str+"\n"
str=str+")--if(p!=undefined)then";str=str+"\n"
str=str+")--for i in refsArray where isvalidnode i do";str=str+"\n"
str=str+")";str=str+"\n"
str=str+"catch ()";str=str+"\n"
str=str+"h";
obj.height.controller.script=str;
)--for obj in selection do
)
catch ()
)--on btn_apply pressed do
)--rollout igorznag_ro_wave "Wave"
createDialog igorznag_ro_wave 130 40