-- Script configuration

DefaultPostFixe = "_nel_shoot.tga"

rollout db_shooter_rollout "Database Picture Shooter"
(
	Label RootDataBaseLabel "Root path: " align:#left
	EditText RootDataBase text:"c:\database" align:#left
	Spinner Width "Width:" range:[1,10000,320] type:#integer align:#left
	Spinner Height "Height:" range:[1,10000,200] type:#integer align:#left
	CheckBox Recurse "Recurse sub directories" checked:true align:#left
	CheckBox ReportErrors "Report errors" checked:true align:#left
	Button ShootTheDatabase "Shoot" width:110 align:#left
	Button ClearShootTheDatabase "Clear Shoot" width:110 align:#left

	fn shoot_directory path =
	(
		-- Make sure the path name is formatted
		if path.count > 0 then
		(
			-- Get last character
			lastChar = path[path.count]

			if ( lastChar != '\\' ) and ( lastChar != '/' ) then
			(
				path += "\\"
			)
		)

		-- List the file in this folder
		files = getFiles (path+"*.max")

		-- For each filename
		for i in files do
		(
			-- Open the project
			if (loadMaxFile i) == true then
			(
				-- Front view
				max vpt front

				-- Zoom
				max tool zoomextents all
				max tool zoomextents all
				max tool zoomextents all

				-- Hide all not geometry
				for i in objects do
				(
					if ((superClassOf i) != GeometryClass) or (matchPattern i.name pattern:"Bip01*") then
						hide i
					else
						unhide i
				)

				-- Output filename
				outputFileName = (getFilenamePath i) + (getFilenameFile i) + "_nel_shoot.tga"

				-- Render
				render outputwidth:(Width.value as integer) outputheight:(Height.value as integer) outputfile:outputFileName shadows:false autoReflect:false vfb:false
			)
		)

		-- Recursse ?
		if Recurse.checked == true then
		(
			-- For each others directory
			directories = getDirectories (path+"*")

			-- For each directories
			for i in directories do
			(
				-- Recall the function
				shoot_directory i
			)
		)
	)

	fn clear_shoot_directory path =
	(
		-- Make sure the path name is formatted
		if path.count > 0 then
		(
			-- Get last character
			lastChar = path[path.count]

			if ( lastChar != '\\' ) and ( lastChar != '/' ) then
			(
				path += "\\"
			)
		)

		-- List the file in this folder
		files = getFiles (path+"*.tga")

		-- For each filename
		for i in files do
		(
			-- Remove this shoot ?
			if ((findString (filenameFromPath i) DefaultPostFixe) != undefined) then
			(
				-- Erase the file
				deleteFile i
			)
		)

		-- Recursse ?
		if Recurse.checked == true then
		(
			-- For each others directory
			directories = getDirectories (path+"*")

			-- For each directories
			for i in directories do
			(
				-- Recall the function
				clear_shoot_directory i
			)
		)
	)

	on ShootTheDatabase pressed do
	(
		shoot_directory RootDataBase.text
	)

	on ClearShootTheDatabase pressed do
	(
		clear_shoot_directory RootDataBase.text
	)
)

	
if dbase_cleaner_floater != undefined do
(
	closerolloutfloater dbase_cleaner_floater
)	

dbase_cleaner_Floater = newRolloutFloater "NeL DB Shooter" 400 815 800 200
addrollout db_shooter_rollout dbase_cleaner_Floater