|
![](/i/fill.gif) |
> Alain wrote:
>> The source file is only opened and closed when you call it from
>> another file.
>> Also, if a macro from an include file calls a macro from the main file
>> or another include from which it was called, then NO file gets to be
>> open/read/closed.
>>
>> Call a macro from the SAME file = no additional file transaction.
>> Call a macro from a file upper in the calling list = still no
>> additional file transaction.
>> Example 1: A macro from an include file use a macro from the main file.
>> Example 2: A macro from an include file, included by another include
>> file, that use a macro from the preceding include (the one that caused
>> it's inclusion).
>>
>>
>> Alain
>
> Thanks, didn't know about the hierarchy part for not opening files
> higher in the chain.
>
> One further question:
> The main file includes IncludeA and IncludeB. IncludeB has a macro which
> uses a macro from within IncludeA.
>
> //-----main.pov
> #include "A.inc"
> #include "B.inc"
>
> MacroB(param)
> //-----end main.pov
>
> //-----A.inc
> #macro MacroA(param) //stuff
> #end
> //-----end A.inc
>
> //-----B.inc
> #macro MacroB(param)
> //stuff
> MacroA(param)
> #end
> //-----end B.inc
>
> What is the file I/O done in this case?
>
> Chris
Every time that the macro from B.inc is called, B.inc need to be
accessed. Then, every time that macro uses the macro from A.inc, A.inc
will get accessed.
So, each time that MacroB() is used, you'll end up accessing BOTH includes.
MUCH beter to copy MacroA() into B.inc or the main file.
Alain
Post a reply to this message
|
![](/i/fill.gif) |