/*
Select a poly object and then run the script.
*/

var otempPSet = ActiveSceneRoot.AddProperty("CustomProperty",false,"random polys") ;  
 
otempPSet.AddParameter3( "percvalue", siFloat,50,0,100,false) ; 

var oPPGLayout = otempPSet.PPGLayout ;

opercvalue = oPPGLayout.Additem( "percvalue" , "percentage of poly's to select" , siControlNumber ) ;

	

		
//______________________________________________________________________

try 
	{ 
	InspectObj( otempPSet, "", "random polys", siModal ); 		
	
	SelRndPoly()		
	}	
	
	
catch( e )
	{ 
	XSIUIToolkit.MsgBox ("Either you canceled or the selection is not valid. You must have a poly mesh selected (not components) " , siMsgOkOnly, "Random poly Error")

	Logmessage( "Cancel/Exit random poly's" ); 
	}

//______________________________________________________________________



function 	SelRndPoly()	
	{
	var perc = otempPSet.percvalue.value / 100 ;
	var osel = Selection(0) ;
	var ofac = osel.ActivePrimitive.Geometry.Facets ;
	var opolycount = ofac.count ; 
	var opolyselnumber = opolycount * perc ;
	var oselpolys = new Array()

	for (var i = 0; i<opolyselnumber; i++)
		{
		with (Math)
			{
			oselpolys[i] = round ( random() * opolycount )
			}
		}
	
	SelectGeometryComponents( osel + ".poly[" + oselpolys + "]" );
	DeleteObj(otempPSet)
}	
	
	
	
	
	