|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I've been playing around with arrays(ver 3.6). You know how POV
handles arrays, one type of element per array. (float, vector, color,
...)I do a lot of animation. So some times I have several arrays that
are linked to one object. I usually made the arrays for each POV project
and handled the arrays individually.
I thought 'Why can't POV be more C++ like and use classes?' Well it
can't! I won't complain It's one great rendering tool!
But I can make a POV scrip that can produce a set of arrays that are
linked by name and use macros that treat those arrays as one virtual
array. I'm sure the idea isn't new.
Before I give the completed version to the POV community. What macros
would you like to be there?
I have: Put, Get, Trade, Copy, Sort, so far.
Put - Put values in virtual array
Get - Get values from virtual array
Trade - Trade one virtual array element with another
Copy - Copy one virtual array element with another
Sort - This lets you choose an array to use to
sort the rest of the virtual array. The
array you chose must have float values in it.
Final arrangement is from lowest to highest.
I'll put a copy of LinkMaker in P.B utilities
Your comments and suggestions are welcomed.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 5/2/2011 11:34, Leroy Whetstone wrote:
> Trade - Trade one virtual array element with another
The usual term for this is "Swap", if I understand what you're saying. It's
probably better to stick with the common terms.
--
Darren New, San Diego CA, USA (PST)
"Coding without comments is like
driving without turn signals."
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Darren New wrote:
> On 5/2/2011 11:34, Leroy Whetstone wrote:
>
>> Trade - Trade one virtual array element with another
>
>
> The usual term for this is "Swap", if I understand what you're saying.
> It's probably better to stick with the common terms.
>
Your right. When I'm working good, I rarely think along those lines.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Leroy Whetstone <lrw### [at] joplincom> wrote:
> Sort - This lets you choose an array to use to
> sort the rest of the virtual array. The
> array you chose must have float values in it.
> Final arrangement is from lowest to highest.
The standard arrays.inc already provides a Sort_Array() macro.
http://wiki.povray.org/content/Documentation:Reference_Section_7#arrays.inc
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp wrote:
> The standard arrays.inc already provides a Sort_Array() macro.
>
> http://wiki.povray.org/content/Documentation:Reference_Section_7#arrays.inc
>
True, but it does one array! It doesn't move associated arrays with it.
My idea is you have a group of arrays linked so if you sort using one of
them all the others are also move around. The Sort_Array() macro could
be modified to do so. You would have to rewrite it for every time the
number of arrays you have changed. I basically do that rewrite for ya.
What I had in mind is you put the Master name and all the sub names
into 'Linker' and it would make all the arrays and macros you need.
As an example I want a 50 element array of Robots. I'd use 'Robot' as
the Master and subs of 'Color', 'Location' and 'Active'. 'Linker' will
make this:
#declare RoBot_Color=array[50];
#declare RoBot_Location=array[50];
#declare RoBot_Active=array[50];
#macro RoBot_Put(Element,ColorV,LocationV,ActiveV)...
#macro RoBot_Get(Element,ColorV,LocationV,ActiveV)...
#macro RoBot_Swap(Element1,Element2)...
#macro RoBot_Copy(Element1,Element2)...
#macro RoBot_Sort(Array)...
Now all I have to do is fill up the arrays and do something with them.
The macros will only work with the 3 arrays. Now back to 'Sort' the way
I it is now I didn't use the Sort_Array() from 'arrays.inc'. I made an
simpler one that was easier to write to file.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Leroy Whetstone <lrw### [at] joplincom> wrote:
> Warp wrote:
> > The standard arrays.inc already provides a Sort_Array() macro.
> >
> > http://wiki.povray.org/content/Documentation:Reference_Section_7#arrays.inc
> >
> True, but it does one array! It doesn't move associated arrays with it.
> My idea is you have a group of arrays linked so if you sort using one of
> them all the others are also move around. The Sort_Array() macro could
> be modified to do so. You would have to rewrite it for every time the
> number of arrays you have changed.
You don't need to rewrite it. You simply implement your own comparison
and swapping macros (Sort_Compare() and Sort_Swap_Data()) to perform those
operations.
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Le 03/05/2011 23:00, Warp a écrit :
> Leroy Whetstone <lrw### [at] joplincom> wrote:
>
>> Warp wrote:
>>> The standard arrays.inc already provides a Sort_Array() macro.
>>>
>>> http://wiki.povray.org/content/Documentation:Reference_Section_7#arrays.inc
>>>
>
>> True, but it does one array! It doesn't move associated arrays with it.
>> My idea is you have a group of arrays linked so if you sort using one of
>> them all the others are also move around. The Sort_Array() macro could
>> be modified to do so. You would have to rewrite it for every time the
>> number of arrays you have changed.
>
> You don't need to rewrite it. You simply implement your own comparison
> and swapping macros (Sort_Compare() and Sort_Swap_Data()) to perform those
> operations.
>
Why sorting the other arrays if you can use explicit indirection instead ?
Let's A[] be the array to be sorted, and B[], C[], D[]... the associated
data.
You can of course re-order/swap items in A, and then swap also B, C, ...
Or you can leave A as it is, and compute an ordering array XOX[] of integer.
So that accessing the first element is no more A[0], B[0],... but
A[XOX[0]], B[XOX[0]]
The best data are the data that do not move. The order is in the eye of
the user.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Le_Forgeron wrote:
> Le 03/05/2011 23:00, Warp a écrit :
>
>>Leroy Whetstone <lrw### [at] joplincom> wrote:
>>
>>
>>>Warp wrote:
>>>
>>>> The standard arrays.inc already provides a Sort_Array() macro.
>>>>
>>>>http://wiki.povray.org/content/Documentation:Reference_Section_7#arrays.inc
>>>>
>>>
>>>True, but it does one array! It doesn't move associated arrays with it.
>>>My idea is you have a group of arrays linked so if you sort using one of
>>>them all the others are also move around. The Sort_Array() macro could
>>>be modified to do so. You would have to rewrite it for every time the
>>>number of arrays you have changed.
>>
>> You don't need to rewrite it. You simply implement your own comparison
>>and swapping macros (Sort_Compare() and Sort_Swap_Data()) to perform those
>>operations.
>>
>
> Why sorting the other arrays if you can use explicit indirection instead ?
>
> Let's A[] be the array to be sorted, and B[], C[], D[]... the associated
> data.
>
> You can of course re-order/swap items in A, and then swap also B, C, ...
>
> Or you can leave A as it is, and compute an ordering array XOX[] of integer.
>
> So that accessing the first element is no more A[0], B[0],... but
> A[XOX[0]], B[XOX[0]]
>
> The best data are the data that do not move. The order is in the eye of
> the user.
>
True I've use that before when dealing with a very large data set.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp wrote:
> You don't need to rewrite it. You simply implement your own comparison
> and swapping macros (Sort_Compare() and Sort_Swap_Data()) to perform those
> operations.
>
You right about that. I went through arrays.inc again, what you say is
true, And it wouldn't be that hard to write to file. Maybe my
reluctance was 'KISS' (Keep It Simple Stupid). I get a little antsy when
code isn't all in one place. A lot of times if I need an item from an
include file I just copy it and place it where needed.
But what do you think of linked arrays?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |