|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I know arrays have undergone some work recently.
1. Are hash arrays working now?
2. Can an array contain different types of objects? (string, float, int,
etc.)
My POV version is 3.8.0-alpha.9475849+av541.msvc14.win64.
Thanks.
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I am trying to define an array like this:
#declare MeanAnomalyToday = array[8]
{
CalcMeanAnomalyToday(0),
CalcMeanAnomalyToday(1),
CalcMeanAnomalyToday(2),
CalcMeanAnomalyToday(3),
CalcMeanAnomalyToday(4),
CalcMeanAnomalyToday(5),
CalcMeanAnomalyToday(6),
CalcMeanAnomalyToday(7)
}
The macro "CalcMeanAnomalyToday" returns a number.
#macro CalcMeanAnomalyToday(i)
2 * i
#end
I get an error, "Parse Error: Expected 'array initializer element',
macro identifier found instead".
What am I doing incorrectly? Thanks.
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Am 13.09.2018 um 01:32 schrieb Mike Horvath:
> I know arrays have undergone some work recently.
>
> 1. Are hash arrays working now?
That depends on what exactly you mean by "hash array".
If you want associative arrays with arbitrary keys, the answer is "Nope".
If you are fine with string keys then the answer is "Sure". Search the
Wiki for "dictionary".
In a nutshell:
// requires POV-Ray v3.8
#version 3.8;
// create a dictionary
#declare Foo = dictionary;
// associate key "Fnord" with value 42
#declare Foo["Fnord"] = 42;
#declare Bar = "Fnord";
#declare Foo[Bar] = 42
#declare Foo.Fnord = 42;
// look up value associated with key "Fnord"
#declare Result = Foo["Fnord"];
// test if key "Fnord" has a value associated
#ifdef (Foo["Fnord"]) ... #end
// remove key "Fnord" from dictionary
#undef (Foo["Fnord"])
> 2. Can an array contain different types of objects? (string, float, int,
> etc.)
Yep. No extra syntax required (but POV-Ray v3.8 is needed).
3. Can an array be resized?
Yes, but only if it is one-dimensional, and it has to be declared using
a special syntax (note the missing size):
#declare Foo = array[];
> My POV version is 3.8.0-alpha.9475849+av541.msvc14.win64.
I recommend a newer version; but dictionaries and new array features
should be in there already.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I guess I've run into another one of those "macros aren't functions"
situations.
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Am 13.09.2018 um 02:42 schrieb Mike Horvath:
> I am trying to define an array like this:
>
> #declare MeanAnomalyToday = array[8]
> {
> CalcMeanAnomalyToday(0),
> CalcMeanAnomalyToday(1),
> CalcMeanAnomalyToday(2),
> CalcMeanAnomalyToday(3),
> CalcMeanAnomalyToday(4),
> CalcMeanAnomalyToday(5),
> CalcMeanAnomalyToday(6),
> CalcMeanAnomalyToday(7)
> }
>
> The macro "CalcMeanAnomalyToday" returns a number.
>
> #macro CalcMeanAnomalyToday(i)
> 2 * i
> #end
>
> I get an error, "Parse Error: Expected 'array initializer element',
> macro identifier found instead".
>
> What am I doing incorrectly? Thanks.
In a nutshell, POV-Ray doesn't like anything fancy in array initializers
- no macros, no #for loops, no #if statements, no nothing.
That's a long-standing featuroid, which a certain previous member of the
dev team would probably dismiss as entirely intentional; I for one would
call it a shortcoming that /should/ be fixed, but I'd rather not touch
the professional-league Jenga tower of code in which this issue is rooted.
https://youtu.be/7erl-bOWmOM
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
El 13/09/18 a las 01:32, Mike Horvath escribió:
> I know arrays have undergone some work recently.
>
> 1. Are hash arrays working now?
> 2. Can an array contain different types of objects? (string, float, int,
> etc.)
>
> My POV version is 3.8.0-alpha.9475849+av541.msvc14.win64.
>
> Thanks.
>
>
> Mike
I was now immersed in the same situation and I thought that dictionary
(working as an array) would save this obstacle, but as not seeing it in
the list of reserved words in version 3.7 I guess it must have been removed.
B.Gimeno
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Am 19.09.2018 um 11:38 schrieb BGimeno:
> El 13/09/18 a las 01:32, Mike Horvath escribió:
>> I know arrays have undergone some work recently.
>>
>> 1. Are hash arrays working now?
>> 2. Can an array contain different types of objects? (string, float,
>> int, etc.)
>>
>> My POV version is 3.8.0-alpha.9475849+av541.msvc14.win64.
>>
>> Thanks.
>>
>>
>> Mike
>
> I was now immersed in the same situation and I thought that dictionary
> (working as an array) would save this obstacle, but as not seeing it in
> the list of reserved words in version 3.7 I guess it must have been
> removed.
Um - nope?!
v3.7.0 never had `dictionary`. It only made its debut in v3.7.1 (some
alpha version) which was later re-branded v3.8.0.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
El 19/09/18 a las 12:00, clipka escribió:
>> the list of reserved words in version 3.7 I guess it must have been
>> removed.
>
> Um - nope?!
>
> v3.7.0 never had `dictionary`. It only made its debut in v3.7.1 (some
> alpha version) which was later re-branded v3.8.0.
>
I have been revising the documentation too many times and in the end I
see things where there are none. My source of information is in the
following link, you are right, my apologies.
http://news.povray.org/povray.documentation.inbuilt/thread/%3C584fbc8e%241%40news.povray.org%3E/
BGimeno
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |