|
|
Op 31-5-2021 om 12:26 schreef Bald Eagle:
> Thomas de Groot <tho### [at] degrootorg> wrote:
>
>> There is indeed an error there. Replace the following line:
>>
>> #ifndef (_GRANITE_FILE_INC_) #include "DakotaRedGranite.inc" #end
>>
>> by:
>>
>> #ifndef (_GRANITE_FILE_INC_) #local Granite_file =
>> "DakotaRedGranite.inc" #end
>
>
> So, I guess I'm still not understanding your intent.
>
> Working backwards,
>
> You have :"DakotaRedGranite.inc", so I guess the file you recently supplied
> needs to be renamed with capitals.
>
No.
> Before this, You're checking to see if _GRANITE_FILE_INC_ is a declared
> identifier. Where is this identifier supposed to be properly declared? In the
> include file?
>
This is an ancient trick I learned decades ago ;-). The form
_GRANITE_FILE_INC_ (the last underscore is maybe redundant) somehow
covers all the possible forms of writing (capitals, dots, etc) of which
a file name is composed. And it works perfectly well for me.
And then...!!!! [thunderclap]
So I forgot to give you the proper Line 70, which should be of course,
after Line 69, as given:
#ifndef (_GRANITE_FILE_INC_) #local Granite_file =
"DakotaRedGranite.inc" #end
#include Granite_file
Sometimes I get blind to the most obvious things... :-/
For the proper use, you declare the file you want, /before/ calling the
macro. Example:
#declare Granite_file = "MyElectricGranite.inc";
Which includes the necessary paths too of course, like:
#declare Granite_file = "FolderA/FolderB/MyElectricGranite.inc";
> I just looked through "dakotaredgranite.inc" and it doesn't get declared in
> there.
> Also, this implies that _GRANITE_FILE_INC_ is a requisite line in any color_map
> include file. Correct?
>
No. It should be all controlled by the above.
> Also, the arrays in any include file must have the proper names: A_Granite_map1,
> A_Granite_map2, etc.
>
Yes indeed. Those names are then used by the macro.
>
> I see no real problem there at the moment, although it will need to be clear how
> to properly implement multiple granite materials in a scene, so a demo ought to
> have that feature and some comments. Just pointing it out, since some people
> like to have all of their include stuff at the top of a scene, and then do all
> the processing later.
>
YEs, that might give some clashes. Nothing very serious but one has to
be aware of /what/ the macro exactly does.
> One last thing that occurred to me as I was trying to get to sleep - I decided
> that I don't like the way I implemented the array for the color_map:
> 1. it uses separate entries for the color vector rather than a single vector.
> 2. That makes it difficult if not impossible to use rgbft colors
>
> a 2d array with color_map location and color vector would likely be better. The
> macro probably has to get tested with an rgbft statement as well to make sure an
> vector promotion happens as expected, etc.
>
The granite include files, as I have defined them, use a 2d array
already. As the macro can render veins, where transmit info is supplied
by the corresponding array (the map2 one) it is just a matter of reading
the proper info in the right place. The macro takes care of that.
Thanks for your thoughts! It keeps me on my toes. ;-)
--
Thomas
Post a reply to this message
|
|