| 
|  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | I know what ifdef does (the example below shows me using it)...
//#declare text2use = 2;
box     {
        <-10,0,11>,<10,10,10>
        #ifdef(text2use)
                texture { pigment { White } }
        #else
                texture { pigment { Green } }
        #end
        }
.... but I'm struggling to understand when you would use it. Why would you refer
to a variable you've not defined?  Isn't that just sloppy coding.
Has anyone got/had a real-use case for this command? I'd love to know what I'm
missing out on.
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | Le 03/03/2014 18:49, FNH nous fit lire :
> I know what ifdef does (the example below shows me using it)...
> 
> //#declare text2use = 2;
> 
> box     {
>         <-10,0,11>,<10,10,10>
> 
>         #ifdef(text2use)
>                 texture { pigment { White } }
>         #else
>                 texture { pigment { Green } }
>         #end
> 
>         }
> 
> .... but I'm struggling to understand when you would use it. Why would you refer
> to a variable you've not defined?  Isn't that just sloppy coding.
> 
> Has anyone got/had a real-use case for this command? I'd love to know what I'm
> missing out on.
> 
> 
you can define variable in code, but also in command line.
the most traditional use is the classical protection of include file: if
the value already exist, skip the definition.
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | Le_Forgeron <jgr### [at] free fr> wrote:
> Le 03/03/2014 18:49, FNH nous fit lire :
> > I know what ifdef does (the example below shows me using it)...
> >
> > //#declare text2use = 2;
> >
> > box     {
> >         <-10,0,11>,<10,10,10>
> >
> >         #ifdef(text2use)
> >                 texture { pigment { White } }
> >         #else
> >                 texture { pigment { Green } }
> >         #end
> >
> >         }
> >
> > .... but I'm struggling to understand when you would use it. Why would you refer
> > to a variable you've not defined?  Isn't that just sloppy coding.
> >
> > Has anyone got/had a real-use case for this command? I'd love to know what I'm
> > missing out on.
> >
> >
>
> you can define variable in code, but also in command line.
>
> the most traditional use is the classical protection of include file: if
> the value already exist, skip the definition.
Excellent, I'll have try using as a command line switch. Thanks :) Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | "FNH" <nomail@nomail> wrote:
> I know what ifdef does (the example below shows me using it)...
>
> //#declare text2use = 2;
>
> box     {
>         <-10,0,11>,<10,10,10>
>
>         #ifdef(text2use)
>                 texture { pigment { White } }
>         #else
>                 texture { pigment { Green } }
>         #end
>
>         }
>
> .... but I'm struggling to understand when you would use it. Why would you refer
> to a variable you've not defined?  Isn't that just sloppy coding.
>
> Has anyone got/had a real-use case for this command? I'd love to know what I'm
> missing out on.
It is just to ensure that a certain thing exists. Your code will use this thing
and you can define a default value, if you have not defined it earlier - may be
at the command line or with an earlier include or within the code itself.
Best regards,
Michael
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | 
> I know what ifdef does (the example below shows me using it)...
>
> //#declare text2use = 2;
>
> box     {
>          <-10,0,11>,<10,10,10>
>
>          #ifdef(text2use)
>                  texture { pigment { White } }
>          #else
>                  texture { pigment { Green } }
>          #end
>
>          }
>
> .... but I'm struggling to understand when you would use it. Why would you refer
> to a variable you've not defined?  Isn't that just sloppy coding.
>
> Has anyone got/had a real-use case for this command? I'd love to know what I'm
> missing out on.
>
>
It's often used in includes. Some uses are:
Make sure that you don't re-parse a file that's been included before. 
Take a look at the base includes, they all have this construct:
#ifndef(Include_File_Flag)
#declare Include_File_Flag=version;
...body of the include file goes here...
#end
Have some defaults parameters that you can optionaly define before 
calling an include or a macro.
Alain
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |