POV-Ray : Newsgroups : povray.advanced-users : Q: Advanced : Re: Advanced Server Time
2 Nov 2024 17:18:21 EDT (-0400)
  Re: Advanced  
From: Margus Ramst
Date: 18 Apr 1999 09:04:20
Message: <3719ca44.0@news.povray.org>
The reason would be that you can use this in a pigment or a density, whereas
by #declaring you would be restricted to one of the two.

You can't do this:

#declare Pattern=pigment{...}
media{density{Pattern}}

or vice versa.

Margus

Ken wrote in message <37194AB7.22B37382@pacbell.net>...
>When designing macros I have seen occassions where the macro was
>specified like this example shows:
>
> #macro Pattern ()
>      granite
>        color_map{
>                  [0.5000 rgb 0]
>                  [0.5001 rgb 1]
>                 }
>            warp { turbulence .03 lambda 1.4 omega 2.0 octaves 5 }
>       translate z*3
>    scale <2, .5, 2>
>  #end
>
> Note the absence of any identifiers inside the macro parenthesis ( )
> This was later used in a media statement as a density pattern.
>
>  My question then is this. Why go through the trouble of making a macro
>with no customizable attributes, for a one time use, when is would seem to
>me that a simple #declared density would serve the same purpose.
>
>  From where I sit there is no real difference from the above example
>and the one that follows.
>
> #declare Pattern =
>  density {
>      granite
>        color_map{
>                  [0.5000 rgb 0]
>                  [0.5001 rgb 1]
>                 }
>            warp { turbulence .03 lambda 1.4 omega 2.0 octaves 5 }
>       translate z*3
>    scale <2, .5, 2>
>  }
>
>  Would they not function the same way and is there anything to suggest
>that the macro offers any advantage the way it is illustrated above ?
>
>
>
>--
>Ken
>
>mailto://tylereng@pacbell.net


Post a reply to this message

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