POV-Ray : Newsgroups : povray.general : long syntax : Re: long syntax Server Time
6 Aug 2024 04:20:44 EDT (-0400)
  Re: long syntax  
From: Fidel viegas
Date: 25 Jul 2002 11:56:18
Message: <B965DDA8.1580%fidel.viegas@artrecognition.co.uk>
Hello guys,

I don't think it is a good idea to add that ugly syntax to povray.
The best solution is write a preprocessor to do the translation just like
Antti said.
Povray looks great as it is. We don't mind typing extra because it looks
nice.

Anyway, All the best.

Fidel.

in article Xns### [at] 204213191226, Rafal 'Raf256' Maj at
raf### [at] raf256com wrote on 24/7/02 1:45 am:

> Hi,
> I have a little suggeston / future-request.
> Myself I like usign Pov without any editor (to type code "by hands" :)
> but there are one thing that IMHO makes it unnesesarly uncomfortalbe -
> [too] long names.
> 
> Compare i.e.:
> 
> difference {
> sphere { ... }
> torus { ... }
> finish { roughness 1 brillaince 2 relfection { .2 .5 } metallic 9 diffuse
> 0.7 }
> } superellipsoid { ... }
> 
> with :
> 
> @@diff {
> s { } tr { }
> fi { rou 1 bril 2 ref { .2 .5 } met 9 diff 0.7 }
> } @sup { ... }
> 
> 
> So the idea is to use aliases for important names, and to mark them with
> '@'.
> 
> Implementation imho would be quite easy - ther is probalby one function
> that reads next element, and tells is it an object, float, string,
> undeclared identyfier, etc...
> 
> So only we have to do something like
> void interprate(char *s) {
> if (s[0]=='@') {
> char *x = // match alias name, "s","tr","fi" etc
> interprate(x);
> } 
> }
> 
> 
> 
> 
> The more advanced idea is :
> 
> if alias is marked by "@@" like @@diff { ... } then assume that every name
> in it can be an alias, even it it is not marked with "@" (or "@@")
> 
> example :
> @sp { @fi { @ref } }   // ok. sp=sphere fi=finish ref=reflection
> @sp {  fi {  ref { } } // errors, fi and ref must be marked by "@"
> @@sp {  fi {  ref { } } // ok fi and ref are inside "@@" block
> @sp {@@fi {  ref { } } // ok ref is inside "@@" block
> 
> maybe alsow it will be a good idea to implement @! operator, that removes
> aliases from following block (i.e when we need names like "fi" in it)
> 
> #declare fi = 5.0;
> @@sp {
> fi { }
> @!pig {
> fi // fi is here an 5.0 float
> }
> }
> 
> this new syntax might look strange now, but it will shorten code about x3
> times ! x3 shorter code = x3 more writing, x3 more comfortable
> x3 more code on ona page (or screen)
> 
> 
> 
> 
> My suggestions :
> 
> @tex  texture
> @mat  material
> @fin  finish
> @nor  normal
> @int  interior
> 
> @cmap color_map
> @nmap normal_map
> @mmap material_map
> 
> @sp   sphere
> @bo   box
> @pl   plane
> @to   torus
> 
> @sup  superellipsoid (that's a good example ;)
> @blo  blob
> 
> @br   brilliance (only in finish block)
> @di   diffuse    (only in finish block)
> 
> 
> I want to *help* to implement aliases, but I can not do it my self (I do
> not understand Pov's souces enought)
> 
> 
> what do You thing about it ? If You agree that this is usefull, and
> somebody also want's to implement it - I will help :)


Post a reply to this message

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