  | 
  | 
 
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
What are the odds of this?
For instance, if I define a sphere{}, and pass it as an argument to 
something, I'd like that function to have access to information about 
the sphere.  Both shape specific (ie, center and radius), as well as 
generic (texture / transformations).
Once this is possible, then it's a trivial step to add a "world" or 
"scene" object which is simply a union of everything.
And that makes all kinds of fun tricks available ;)
---
On a separate note, I was looking at Thomas de Groot's image in p.b.i, 
"Ruined Place", and reading Jim's reply about moss growing where the sun 
doesn't reach.  Giving SDL access to more POV-Ray internals would enable 
things like asking POV to gather radiosity (or even simple lighting) 
samples at a particular point and return the result, allowing a scripted 
application of moss in the shade...
-- 
...Ben Chambers
www.pacificwebguy.com
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
Chambers <ben### [at] pacificwebguy com> wrote:
> What are the odds of this?
  One of the main points of pov4 is that it should have a better scripting
language.
-- 
                                                          - Warp
 
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
Warp wrote:
> Chambers <ben### [at] pacificwebguy com> wrote:
>> What are the odds of this?
> 
>   One of the main points of pov4 is that it should have a better scripting
> language.
> 
Nice :)  But I had to ask, since "a better scripting language" doesn't 
really tell us much, so I wasn't sure if this was being considered or not.
-- 
...Ben Chambers
www.pacificwebguy.com
 
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
Both properties and methods. Unions should have an add_object method :)
Now:
union {
     #while(I<10)
         sphere { x*I, 0.1 }
         #declare I=I+1;
     #end
}
Or, in loops which have things much more complex than that (for example 
if you need to trace() all the created spheres in order to create one more):
#declare Obj = union{};
#while(I<10)
     #declare Obj = union { object{Obj} sphere { x*I, 0.1 } };
     #declare I=I+1;
#end
(I heard POV-Ray has a special optimization for this, to make the final 
in-memory CSG be a flat union like from the first example, instead of a 
nested union)
So I'd like:
obj = union{};
while(I<10) {
     obj.add(sphere { x*I, 0.1 });
     I++;
}
(I'm not suggesting this script syntax, just the concept of adding 
objects to already-created CSG structures)
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
>>> What are the odds of this?
>>
>>   One of the main points of pov4 is that it should have a better 
>> scripting
>> language.
>>
>
> Nice :)  But I had to ask, since "a better scripting language" doesn't 
> really tell us much, so I wasn't sure if this was being considered or not.
Ideally it would be good enough that we wouldn't have to use another 
language to generate POV code.  I regularly use C++ to generate POV code, 
just because the SDL is too slow and clumsy for dealing with arrays of 
objects for animation.  It's a shame because it would be much nicer to be 
able to do that stuff within POV itself.
 
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
I've used Python to generate SDL before for a scene or two, and sometimes use
Python to generate prescene data files for the scene to use.  I think that the
current SDL is exactly that a 'description' language.  It has some scripting
support but not the most powerful and somewhat slow.
However a complete scripting-like language may also be undesired.  I created a
small python povray code once and the code looks like this:
import povray
scene = povray.Scene()
camera = povray.Camera((0, 0, -5), (0, 0, 0))
scene.Add(camera)
box = povray.Box(-2, 2)
scene.Add(box)
scene.Save('scene.pov')
I never completed the thing but even with that it's just to much like a
scripting language.  If somehow the descriptive language and a scripting
language could be combined but more powerful would be nice.
It would also be nice to be able to avoid reparsing the scene for animations
where possible.  And maybe get rid of '#' and add some more common constructs:
Instead of:
#declare x=0
#while(x<10)
blah
#declare x=x+1
#end
#if (somecondition)
  blah
#end
Something like:
for(x=0,x<10,x=x+1)
{
  blah
}
if(somecondition)
{
  blah
}
switch(something)
{
  case somecase
  {
  }
  case someothercase
  {
  }
  range somerange
  {
  }
}
For example:
count = 10 /* replaces #declare count = 10 */
MyObject = union {
  for(cur = 0, cur < count, cur = cur + 1) {
    sphere {
      <0, 0, 5>, 0.25
      rotate <0, cur * count / 360, 0>
      texture {
        pigment {
          if(cur % 2 == 0) { color White } else { color Black }
        }
      }
    }
  }
} // MyObject
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 
 | 
  |