Нужно собирать массив объектов на которых наложен TurboSmooth
В получившемся массиве на ряду с уникальными объектами, присутствую instance объекты, как их удалить, оставив лишь один объект instance
вот моя функция но работает через раз. не могу понять почему.
function objectCollector =
( ObjArrTbs=#()
dirtinctarr=#()
for i in geometry where i.isHiddenInVpt!=true do
(
if ( classof i.modifiers[1]==TurboSmooth ) then append ObjArrTbs #(i,1,(i.modifiers[1].iterations),(i.modifiers[1].enabled),if (InstanceMgr.GetInstances i &instances)==1 then true else false)
else
for j=1 to i.modifiers.count do
(
if (classof i.modifiers[j]==TurboSmooth and isHiddenInVpt!=true) then (append ObjArrTbs #(i,j,i.modifiers[j].iterations,i.modifiers[j].enabled, if (InstanceMgr.GetInstances i &instances)==1 then true else false) ; exit() )
else
if classof i.modifiers[j]==Edit_Poly do exit()
)
)
global Dirtarr=ObjArrTbs.count
objcount= ObjArrTbs.count
while objcount>=1 do
( if InstanceMgr.GetInstances ObjArrTbs[objcount][1] &instances != undefined then inst=instances.count else exit()
while inst>=2 do
(
tempvar=objcount
while tempvar >=1 do
(
if finditem ObjArrTbs[tempvar] instances[inst] > 0 do deleteitem ObjArrTbs tempvar; exit()
tempvar-=1
)
inst-=1
)
objcount-=1
)
)
В получившемся массиве на ряду с уникальными объектами, присутствую instance объекты, как их удалить, оставив лишь один объект instance
вот моя функция но работает через раз. не могу понять почему.
function objectCollector =
( ObjArrTbs=#()
dirtinctarr=#()
for i in geometry where i.isHiddenInVpt!=true do
(
if ( classof i.modifiers[1]==TurboSmooth ) then append ObjArrTbs #(i,1,(i.modifiers[1].iterations),(i.modifiers[1].enabled),if (InstanceMgr.GetInstances i &instances)==1 then true else false)
else
for j=1 to i.modifiers.count do
(
if (classof i.modifiers[j]==TurboSmooth and isHiddenInVpt!=true) then (append ObjArrTbs #(i,j,i.modifiers[j].iterations,i.modifiers[j].enabled, if (InstanceMgr.GetInstances i &instances)==1 then true else false) ; exit() )
else
if classof i.modifiers[j]==Edit_Poly do exit()
)
)
global Dirtarr=ObjArrTbs.count
objcount= ObjArrTbs.count
while objcount>=1 do
( if InstanceMgr.GetInstances ObjArrTbs[objcount][1] &instances != undefined then inst=instances.count else exit()
while inst>=2 do
(
tempvar=objcount
while tempvar >=1 do
(
if finditem ObjArrTbs[tempvar] instances[inst] > 0 do deleteitem ObjArrTbs tempvar; exit()
tempvar-=1
)
inst-=1
)
objcount-=1
)
)