rgb <- function(r, g, b, names=NULL)
.Internal(rgb(r, g, b, names))

hsv <- function(h=1,s=1,v=1,gamma=1)
.Internal(hsv(h,s,v,gamma))


# This is a quick little ``rainbow'' function.

rainbow <-
function (n, s=1, v=1, start=0, end=(n-1)/n, gamma=1)
{
	hsv(seq(start, end, length=n), s, v, gamma)
}

"topo.colors" <-
function (n) 
{
	j <- round(n/3)
	k <- round(n/3)
	i <- n - j - k
	rval <- rainbow(i, start = 43/60, end = 31/60)
	rval <- c(rval, rainbow(j, start = 23/60, end = 10/60))
	rval <- c(rval, hsv(seq(from = 10/60, to = 6/60, length.out = k),
		s = seq(from = 1, to = 0.3, length.out = k), 1))
	rval
}

"terrain.colors" <-
function (n) 
{
	j <- round(n/3)
	k <- round(n/3)
	i <- n - j - k
	rval <- hsv(23/60, 1, v = seq(0.6, 0.85, len = i))
	rval <- c(rval, hsv(seq(23/60, 10/60, length = j), s = 1,
		v = seq(0.85 , 1, length = j)))
	rval <- c(rval, hsv(seq(from = 10/60, to = 6/60, length.out = k),
		s = seq(from = 1 , to = 0.3, length.out = k), 1))
	rval
}

"heat.colors" <-
function (n) 
{
	j <- round(n/4)
	i <- n - j
	rval <- rainbow(i, start = 0, end = 1/6)
	if (i>0) rval <- c(rval, hsv(1/6, seq(from = 1, to = 1/(2*j),
			length.out = j), 1))
}
