POV-Ray : Newsgroups : povray.general : How to quick filling an array : Re: How to quick filling an array Server Time
29 Jul 2024 10:20:43 EDT (-0400)
  Re: How to quick filling an array  
From: Alain
Date: 7 Oct 2011 16:07:38
Message: <4e8f5c0a@news.povray.org>

> Hi people,
>
> I've defined an array, like this:
>
> #declare Detail=40;
> #declare VoxelSpace=array[Detail+1][Detail+1][Detail+1];
>
> to fill it, I did this:
>
> #debug "Filling...\n"
> #declare YI=0;
>   #while (YI<Detail)
>   #declare ZI=0;
>   #while (ZI<Detail)
>    #declare XI=0;
>     #while (XI<Detail)
>       #declare VoxelSpace[XI][YI][ZI]=0;
>     #declare XI=XI+1;
>     #end
>    #declare ZI=ZI+1;
>    #end
>   #declare YI=YI+1;
>   #end
>
> to fill an array on initialising-time, using "Array Initializers" the docs give
> me something like this:
>
> #declare Digits =
>   array[4][10]
>   {
>    {7,6,7,0,2,1,6,5,5,0},
>    {1,2,3,4,5,6,7,8,9,0},
>    {0,9,8,7,6,5,4,3,2,1},
>    {1,1,2,2,3,3,4,4,5,5}
>   }
This can be writen on one long line.
>
>
> Is there a way to fill an array, using only ONE line, saying that ALL values are
> =0?
>
> Best rgds,
> Holger
>
>
>

You can't quick fill all element of an array using only one instruction. 
Any element must be explicitely given a content before you can get it's 
content.

As you probably don't need the indexing variables outside the 
initialisation, and you surely don't need to keep the final values, you 
can use #local.
That way, the variables will not exist once the loops are terminated.


Post a reply to this message

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