macroScript SelectByBitmap category:"Bobo_s Tools"
(

------------------------------------
--Select By Bitmap
--by Borislav Petrov
--http://gfxcentral.com/bobo/
--Started:	11/15/99
--Edited: 	11/15/99
------------------------------------

global sbb_float 

rollout sbb_roll "Enter Search String"
(
edittext search_path "Find:" fieldwidth:120 align:#left offset:[-10,0]
radiobuttons search_mode labels:#("Full Path","Filename") columns:2

on search_path entered find_path do
(

fn subanim_collect mnode =
(
return_array = #()
for i = 1 to mnode.numsubs do 
	(
		append return_array mnode[i]
	)
return_array
)

selected_materials =#()

for m in scenematerials do
(
subanims_array = #(m)

num_mats = subanims_array.count + 1

i = 0
while i < subanims_array.count do
	(
	i += 1
	r_array = subanim_collect (subanims_array[i])
	join subanims_array r_array
	)

for i = num_mats to subanims_array.count do
(
try
(
	if classof (subanims_array[i].object) == Bitmaptexture then 
		(
		if search_mode.state == 1 then
		(
		found_bmp = (subanims_array[i].object.filename)
		)
		else
		(
		found_bmp = getfilenamefile (subanims_array[i].object.filename)
		)
		if findstring found_bmp find_path != undefined then
		(
		append selected_materials m
		)
		)
)
catch (format "%\n" "An Error has been suppressed while scanning materials.")	

)--end i loop
)--end m loop

selected_objects = #()

for o in $* do
(
for m in selected_materials do
(
if o.material == m then append selected_objects o
)
)
max select none
select selected_objects

)--end on

)--end roll

if sbb_float != undefined then closerolloutfloater sbb_float 
sbb_float = newrolloutfloater "SelectByBitmap" 180 110
addrollout sbb_roll sbb_float 

)--end script