im am pretty close to completion..i think.. but i cannot seem to get this to work properly. $finalIndex keeps returning extra values ----"0" 's...
[codebox]///the puropse of this tool is to find duplicate geometery in a scene based on bounding boxes, not naming convention
///this tool should create bounding boxes around all meshes in the scene
///if two or more bounding boxes are at the exact same location, select those meshes
global proc int getArrayIndexOf(string $thisString, string $inThisArray[])
{
int $numItems = size($inThisArray);
for ($i = 0; $i < $numItems;$i++)
{
if ($inThisArray[$i] == $thisString)
return $i;
}
return -1;
}
proc gbRest()
{
string $sceneList[] = ls -g;
int $sceneListSize = size($sceneList);
float $boundBox[];
float $dataDotsum[];
int $compareMe;
string $finalArray[];
//////loop thru array creating bounding box info///
for ($i =0; $i<$sceneListSize; $i++)
{
$boundBox = `polyEvaluate -b $sceneList[$i]`;
//////feedback////////
print $sceneList[$i];
print "\n";
print $boundBox[0];
print "\n";
print $boundBox[1];
print "\n";
print $boundBox[2];
print "\n";
print $boundBox[3];
print "\n";
print $boundBox[4];
print "\n";
print $boundBox[5];
print "\n";
////////multiple to new array for comparison//////
$dataDotsum={$boundBox[0] * $boundBox[1] * $boundBox[2] * $boundBox[3] * $boundBox[4] * $boundBox[5]};
print $dataDotsum;
print "\n";
print "\n";
////////loop thru boundbox sum array copying to new array//////
for ($dotSum in $dataDotsum)
{
$compareMe = $dotSum;
}
$finalArray[$i] = $compareMe;
//////feedbackTESTING////////
print "\n";
print "\n";
}
////copy finalArray to finalArraysort and sort////
string $duplicateMeshes;
string $finalArraysort[];
print "$finalArray";
print "\n";
print $finalArray;
string $finalArraypresort[] = stringArrayRemoveDuplicates($finalArray);
$finalArraysort = sort $finalArraypresort;
print "$finalArraypresort";
print "\n";
print $finalArraypresort;
int $finalArraySize = size($finalArray);
for ($z =0; $z<$finalArraySize; $z++)
{
$duplicateMeshes = $finalArraysort[$z];
}
///loop thru $finalArraysort anytime a duplicate value is hit, copy that value to a new array $lightMeup[] ---THIS IS ADDING AN EXTRA VALUE??
string $lightMeup[];
for ($z =0; $z<$finalArraySize; $z++)
{
if ( $finalArraysort[$z] == $finalArraysort[$z++])
{
///
$lightMeup[$z] = $finalArraysort[$z];
///
}
else
{
print "your scene is >>>C L E A N<<<";
print "\n";
}
}
///test print////
///test print////
///test print////
///test print////
print "$finalArraysort";
print "\n";
print $finalArraysort;
print "\n";
print "$lightMeup";
print "\n";
print $lightMeup;
print "\n";
print "$finalArray";
print "\n";
print $finalArray;
print "\n";
///////select $lightMeup array values inside of $finalArray to locate index numbers
int $finalIndex[];
int $lightMeupSize = size($lightMeup);
for ($z =0; $z<$lightMeupSize; $z++)
{
int $indexComp = getArrayIndexOf $finalArray[$z] $lightMeup;
if ($indexComp != -1)
{
$finalIndex[$z] = $indexComp;
}
}
/////string $finalIndexremDup[] = stringArrayRemoveDuplicates($finalIndex);
/////////loop thru final index to select objects//////STUCK---FUCKSHIT
string $finalMeshes[];
int $m;
int $finalIndexSize = size($finalIndex);
for ($x =0; $x<$finalIndexSize; $x++)
{
$m = $finalIndex[$x];
select $sceneList[$m];
$finalMeshes[$x]=$sceneList[$m];
}
print "\n";
print "$finalIndex";
print "\n";
print $finalIndex;
select $finalMeshes;
print "$finalMeshes";
print "\n";
print $finalMeshes;
////CLEAR ALL ARRAYS to free up memory////
clear $finalArray;
clear $finalArraysort;
clear $lightMeup;
clear $boundBox;
clear $dataDotsum;
clear $sceneList;
clear $finalIndex;
clear $finalMeshes;
}
gbRest;
[/codebox]