POV-Ray : Newsgroups : povray.advanced-users : function select logic : Re: function select logic Server Time
14 May 2024 01:53:14 EDT (-0400)
  Re: function select logic  
From: Bald Eagle
Date: 23 Nov 2016 07:55:00
Message: <web.583590e8a279be30c437ac910@news.povray.org>
Mike Horvath <mik### [at] gmailcom> wrote:
> I have the following three functions:
>
> #declare correctRGB_R = function(R,G,B) {min(max(R,0),1)}
> #declare correctRGB_G = function(R,G,B) {min(max(G,0),1)}
> #declare correctRGB_B = function(R,G,B) {min(max(B,0),1)}
>
> They each process input and output one component of an R,G,B color vector.
>
> However, instead of the above, I want the entire vector discarded if
> *any* of R, G or B is less than zero or greater than one.
>
> I'm not sure how to form the select statement. What is the best way to
> do this?
>
> Mike

Wrap all three #declares in a conditional block?

#if (R>1 | R<0 | G>1 | G<0 | B>1 | B<0)
     // do nothing, or whatever else you want
#else
     #declare correctRGB_R = function(R,G,B) {min(max(R,0),1)}
     #declare correctRGB_G = function(R,G,B) {min(max(G,0),1)}
     #declare correctRGB_B = function(R,G,B) {min(max(B,0),1)}
#end

or something along those lines....


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.