GetDarkestVector MEL

From scripting
Jump to: navigation, search
global proc vector GetDarkestVector(vector $CurPos, float $Rad, int $NumTests, string $File) {
//0001D LLC 2015 Nick Pisca
//vector $CurPos = <<0.1,0.1,0.0>>; float $Rad = 0.1; int $NumTests = 5; string $File = "file1";
vector $WinVec = <<0.0,0.0,0.0>>;
float $WinF = 10000000.0;
for ($x=0;$x<$NumTests;$x++) { 
 	float $rx = rand(-$Rad,$Rad); 
	float $ry = rand(-$Rad,$Rad);
	 
	vector $rvec = <<$rx, $ry, 0.0>>;
	vector $runit = unit($rvec);
	vector $rrel = $Rad * $runit;

	vector $rwin = $CurPos + $rrel; 
	$rwin = <<abs(($rwin.x)),abs(($rwin.y)),0.0>>;	

	float $rdb[] = `colorAtPoint -u ($rwin.x) -v ($rwin.y) $File`;

	if ($rdb[0] < $WinF) { 
		$WinF = $rdb[0];
		$WinVec = $rwin;
	}
}
return $WinVec;
}





More information on polygon vertex manipulation, read pages 113-116 in YSYT.