/*
 * RGB.js
 * Copyright (c) 2003 Paul Sturm, all rights reserved.  For authorized use only.
 * sturm@branewave.com
 *
 * $Header: /home/sturm/js/RCS/RGB.js,v 1.1 2003/05/02 14:49:25 sturm Exp $
 *
 */


function RGB( r, g, b )
{
   this.r = parseInt( r ) || 0;
   this.g = parseInt( g ) || 0;
   this.b = parseInt( b ) || 0;


   this.toString = function( )
   {
      return "rgb( " + this.r + ", " + this.g + ", " + this.b + " )";
   }
}


function RGB_parseString( str )
{
   var color = /^\s*rgb\(\s*(\d+),\s*(\d+),\s*(\d+)\s*\)/i( str ).slice( 1, 4 );
   return new RGB( color[ 0 ], color[ 1 ], color[ 2 ] );
}


function RGB_mix( mixFrom, mixTo, fraction )
{
   return new RGB(
      mixFrom.r * ( 1 - fraction ) + mixTo.r * fraction,
      mixFrom.g * ( 1 - fraction ) + mixTo.g * fraction,
      mixFrom.b * ( 1 - fraction ) + mixTo.b * fraction
   );
}
