C INTERNATIONAL AVS CENTER C (This disclaimer must remain at the top of all files) C C WARRANTY DISCLAIMER C C This module and the files associated with it are distributed free of charge. C It is placed in the public domain and permission is granted for anyone to use, C duplicate, modify, and redistribute it unless otherwise noted. Some modules C may be copyrighted. You agree to abide by the conditions also included in C the AVS Licensing Agreement, version 1.0, located in the main module C directory located at the International AVS Center ftp site and to include C the AVS Licensing Agreement when you distribute any files downloaded from C that site. C C The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module provide absolutely C NO WARRANTY OF ANY KIND with respect to this software. The entire risk as to C the quality and performance of this software is with the user. IN NO EVENT C WILL The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module BE LIABLE TO C ANYONE FOR ANY DAMAGES ARISING FROM THE USE OF THIS SOFTWARE, INCLUDING, C WITHOUT LIMITATION, DAMAGES RESULTING FROM LOST DATA OR LOST PROFITS, OR ANY C SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES. C C This AVS module and associated files are public domain software unless C otherwise noted. Permission is hereby granted to do whatever you like with C it, subject to the conditions that may exist in copyrighted materials. Should C you wish to make a contribution toward the improvement, modification, or C general performance of this module, please send us your comments: why you C liked or disliked it, how you use it, and most important, how it helps your C work. We will receive your comments at avs@ncsc.org. C C Please send AVS module bug reports to avs@ncsc.org. C C NOTE: THIS MODULE AND SOURCE CODE IS FOR USE C WITH THE AVS SOFTWARE ENVIRONMENT ONLY subroutine hsva_to_rgb(ht,s,v,r,g,b) real f, p, q, t real r, g, b real ht, s, v real h integer i C Make sure not to trash the input colormap h = ht if(v.eq.0) then r=0 g=0 b=0 goto 100 elseif(s.eq.0) then r = v g = v b = v goto 100 else h = h * 6.0 if(h.ge.6.0) then h = 0.0 endif i = h f = h - i p = v*(1.0-s) q = v*(1.0-s*f) t = v*(1.0-s*(1.0-f)) endif if(i.eq.0) then r = v g = t b = p elseif(i.eq.1) then r = q g = v b = p elseif(i.eq.2) then r = p g = v b = t elseif(i.eq.3) then r = p g = q b = v elseif(i.eq.4) then r = t g = p b = v elseif(i.eq.5) then r = v g = p b = q endif 100 return end