POV-Ray : Newsgroups : moray.win : YAFR Server Time
28 Mar 2024 06:29:19 EDT (-0400)
  YAFR (Message 1 to 10 of 12)  
Goto Latest 10 Messages Next 2 Messages >>>
From: Tim Cook
Subject: YAFR
Date: 23 Nov 2005 16:51:40
Message: <4384e46c@news.povray.org>
Yet another feature request.
I'm finding that having usable hierarchical object names is incovenient, 
as well as running into the object name-length limit...but using 
hierarchical number scheme is troublesome to remember what it means.
For example:

HouseGroup.Room1Group.BaseboardCSG01.RoundingCSG.Curve

vs.

01.01.01.02.02

What'd be nice is a note or memo field for objects so I could have 
something like "House" for Group001, "Bedroom" for Group002, a subgroup 
of Group001, "Baseboard part 01" for CSG001, a part of Group002, 
"Rounding" for CSG002, a part of CSG001, and "Curve" for Cylinder001, a 
part of CSG002...and have those be viewable in the browser, so I don't 
have to rely on confusing or excessively long object names to find my 
way around a complex scene.

-- 
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------


Post a reply to this message

From: Thomas de Groot
Subject: Re: YAFR
Date: 24 Nov 2005 03:27:59
Message: <4385798f@news.povray.org>
"Tim Cook" <z99### [at] bellsouthnet> schreef in bericht
news:4384e46c@news.povray.org...
> Yet another feature request.
> I'm finding that having usable hierarchical object names is incovenient,
> as well as running into the object name-length limit...but using
> hierarchical number scheme is troublesome to remember what it means.

I support this. The fact that one can change the names of all objects in a
scene is not enough indeed. Extra info is often required, especially in
complex scenes, like Tim said. What Tim proposes could then be translated in
commented text in POV-Ray during render.

Thomas


Post a reply to this message

From: Lutz Kretzschmar
Subject: Re: YAFR
Date: 8 Dec 2005 02:58:56
Message: <qqpfp1t05je36rk9cbsi7ftqppf1ch7eb5@4ax.com>
Hi Tim Cook, you recently wrote in moray.win:

> Yet another feature request.
> I'm finding that having usable hierarchical object names is incovenient, 
> as well as running into the object name-length limit...but using 
> hierarchical number scheme is troublesome to remember what it means.
> For example:
> 
> HouseGroup.Room1Group.BaseboardCSG01.RoundingCSG.Curve
> 
> vs.
> 
> 01.01.01.02.02
> 
> What'd be nice is a note or memo field for objects so I could have 
> something like "House" for Group001, "Bedroom" for Group002, a subgroup 
> of Group001, "Baseboard part 01" for CSG001, a part of Group002, 
> "Rounding" for CSG002, a part of CSG001, and "Curve" for Cylinder001, a 
> part of CSG002...and have those be viewable in the browser, so I don't 
> have to rely on confusing or excessively long object names to find my 
> way around a complex scene.

So you're saying that actually changing the "Group001" name to "House"
is not a good thing? You'd rather add a seperate comment to "Group001"
saying it is "House"? Why? I don't get that....

Am I missing something?

- Lutz
- Lutz
  email : lut### [at] stmuccom
  Web   : http://www.stmuc.com/moray


Post a reply to this message

From: Tim Cook
Subject: Re: YAFR
Date: 8 Dec 2005 04:10:46
Message: <4397f896$1@news.povray.org>
Lutz Kretzschmar wrote:
> So you're saying that actually changing the "Group001" name to "House"
> is not a good thing? You'd rather add a seperate comment to "Group001"
> saying it is "House"? Why? I don't get that....
> Am I missing something?

Yes.  The reason being that to keep track of what things belong where, I 
use a recursive naming scheme as mentioned...which tends to become 
rather unwieldly, and runs into the length limit quickly enough unless 
you use an obscure numbering system.  I want to be able to have a scene 
hierarchy like, say...

Group01            - House #01
   Group02          - House #01 walls that are on the X axis
     Cube01         - House #01 X wall #01
     Cube02         - House #01 X wall #02
   Group03          - House #01 walls that are on the Y axis
     Cube03         - House #01 Y wall #01
     Cube04         - House #01 Y wall #02
   Group04          - House #01 wall plates
     CSG01          - House #01 wall plate #01
       Cube05       - House #01 wall plate #01 base
       CSG02        - House #01 wall plate #01 rounded edge (top)
         Cube06     - House #01 wall plate #01 rounded edge (top) base
         Cylinder01 - House #01 wall plate #01 rounded edge (top) curve
       CSG03        - House #01 wall plate #02 rounded edge (right)
         Cube07     - House #01 wall plate #02 rounded edge (right) base
         Cylinder02 - House #01 wall plate #02 rounded edge (right) curve
       CSG04        - House #01 wall plate #03 rounded edge (bottom)
         Cube08     - House #01 wall plate #03 rounded edge (bottom) base
         Cylinder03 - House #01 wall plate #03 rounded edge (bottom) curve
       CSG05        - House #01 wall plate #04 rounded edge (left)
         Cube09     - House #01 wall plate #04 rounded edge (left) base
         Cylinder04 - House #01 wall plate #04 rounded edge (left) curve

et cetera, if you can see what I'm doing, as opposed to what I'd do 
currently, namely

House
   House.GroupWallX
     House.GroupWallX.Wall01
     House.GroupWallX.Wall02
   House.GroupWallY
     House.GroupWallY.Wall01
     House.GroupWallY.Wall02
   House.GroupWallPlates
     House.GroupWallPlates.Plate01
       House.GroupWallPlates.Plate01.Base
       House.GroupWallPlates.Plate01.EdgeCSG01
         House.GroupWallPlates.Plate01.EdgeCSG01.Base
         House.GroupWallplates.Plate01.EdgeCSG01.Curve
       House.GroupWallPlates.Plate02.EdgeCSG01
         House.GroupWallPlates.Plate02.EdgeCSG01.Base
         House.GroupWallplates.Plate02.EdgeCSG01.Curve
       House.GroupWallPlates.Plate03.EdgeCSG01
         House.GroupWallPlates.Plate03.EdgeCSG01.Base
         House.GroupWallplates.Plate03.EdgeCSG01.Curve
       House.GroupWallPlates.Plate04.EdgeCSG01
         House.GroupWallPlates.Plate04.EdgeCSG01.Base
         House.GroupWallplates.Plate04.EdgeCSG01.Curve

...the fundamental problem is not being able to reuse object names for 
simple parts of complex things which you want to be able to group 
together so as to not end up with a meaningless 'screw941' object, 
which, even though is the same as the other 940 screws, 'belongs' to a 
certain object, and needs to be named in such a way that that is easy to 
see...

...probably not the best explanation of what I'm trying to get at. 
sorry.  ^^;

I think basically what I'm wanting is a better way of identifying parts 
of complex CSGs.  hehe

-- 
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------


Post a reply to this message

From: Patrick Elliott
Subject: Re: YAFR
Date: 8 Dec 2005 16:21:57
Message: <MPG.1e02512e49da21b7989e96@news.povray.org>
In article <4397f896$1@news.povray.org>, z99### [at] bellsouthnet says...
> Lutz Kretzschmar wrote:
> > So you're saying that actually changing the "Group001" name to "House"
> > is not a good thing? You'd rather add a seperate comment to "Group001"
> > saying it is "House"? Why? I don't get that....
> > Am I missing something?
> 
> Yes.  The reason being that to keep track of what things belong where, I 
> use a recursive naming scheme as mentioned...which tends to become 
> rather unwieldly, and runs into the length limit quickly enough unless 
> you use an obscure numbering system.  I want to be able to have a scene 
> hierarchy like, say...
> 
> Group01            - House #01
>    Group02          - House #01 walls that are on the X axis
>      Cube01         - House #01 X wall #01
>      Cube02         - House #01 X wall #02
>    Group03          - House #01 walls that are on the Y axis
>      Cube03         - House #01 Y wall #01
>      Cube04         - House #01 Y wall #02
>    Group04          - House #01 wall plates
>      CSG01          - House #01 wall plate #01
>        Cube05       - House #01 wall plate #01 base
>        CSG02        - House #01 wall plate #01 rounded edge (top)
>          Cube06     - House #01 wall plate #01 rounded edge (top) base
>          Cylinder01 - House #01 wall plate #01 rounded edge (top) curve
>        CSG03        - House #01 wall plate #02 rounded edge (right)
>          Cube07     - House #01 wall plate #02 rounded edge (right) base
>          Cylinder02 - House #01 wall plate #02 rounded edge (right) curve
>        CSG04        - House #01 wall plate #03 rounded edge (bottom)
>          Cube08     - House #01 wall plate #03 rounded edge (bottom) base
>          Cylinder03 - House #01 wall plate #03 rounded edge (bottom) curve
>        CSG05        - House #01 wall plate #04 rounded edge (left)
>          Cube09     - House #01 wall plate #04 rounded edge (left) base
>          Cylinder04 - House #01 wall plate #04 rounded edge (left) curve
> 
> et cetera, if you can see what I'm doing, as opposed to what I'd do 
> currently, namely
> 
> House
>    House.GroupWallX
>      House.GroupWallX.Wall01
>      House.GroupWallX.Wall02
>    House.GroupWallY
>      House.GroupWallY.Wall01
>      House.GroupWallY.Wall02
>    House.GroupWallPlates
>      House.GroupWallPlates.Plate01
>        House.GroupWallPlates.Plate01.Base
>        House.GroupWallPlates.Plate01.EdgeCSG01
>          House.GroupWallPlates.Plate01.EdgeCSG01.Base
>          House.GroupWallplates.Plate01.EdgeCSG01.Curve
>        House.GroupWallPlates.Plate02.EdgeCSG01
>          House.GroupWallPlates.Plate02.EdgeCSG01.Base
>          House.GroupWallplates.Plate02.EdgeCSG01.Curve
>        House.GroupWallPlates.Plate03.EdgeCSG01
>          House.GroupWallPlates.Plate03.EdgeCSG01.Base
>          House.GroupWallplates.Plate03.EdgeCSG01.Curve
>        House.GroupWallPlates.Plate04.EdgeCSG01
>          House.GroupWallPlates.Plate04.EdgeCSG01.Base
>          House.GroupWallplates.Plate04.EdgeCSG01.Curve
> 
> ...the fundamental problem is not being able to reuse object names for 
> simple parts of complex things which you want to be able to group 
> together so as to not end up with a meaningless 'screw941' object, 
> which, even though is the same as the other 940 screws, 'belongs' to a 
> certain object, and needs to be named in such a way that that is easy to 
> see...
> 
> ...probably not the best explanation of what I'm trying to get at. 
> sorry.  ^^;
> 
> I think basically what I'm wanting is a better way of identifying parts 
> of complex CSGs.  hehe
> 
> 
Why not function like you get in other high level languages, which can 
point to specific parts like:

def <temp name> as object using GroupWallPlates

or

for each <temp name> in House.GroupWallPlaces

Or something of that sort? You still have the layers of complexity in 
there, but you can specify which level of that complexity you want as the 
"base" starting point for referencing.

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}


Post a reply to this message

From: Tim Cook
Subject: Re: YAFR
Date: 8 Dec 2005 17:58:08
Message: <4398ba80$1@news.povray.org>
Patrick Elliott wrote:
> Why not function like you get in other high level languages, which can 
> point to specific parts like:
> def <temp name> as object using GroupWallPlates
> or
> for each <temp name> in House.GroupWallPlaces
> Or something of that sort? You still have the layers of complexity in 
> there, but you can specify which level of that complexity you want as the 
> "base" starting point for referencing.

Not quire following that, but...for things which are identical, you can 
easily enough use duplicate.  For things which are *almost* identical, 
you need to make an actual copy to change the thing that's different. 
How about...some kind of macro?  I know, just make a .inc file for it, 
but if there were a way to do this inside Moray...?  I dunno.  ^^;

-- 
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------


Post a reply to this message

From: StephenS
Subject: Re: YAFR
Date: 8 Dec 2005 18:00:41
Message: <4398bb19$1@news.povray.org>
> Yet another feature request.
> I'm finding that having usable hierarchical object names is incovenient,
> as well as running into the object name-length limit...but using
> hierarchical number scheme is troublesome to remember what it means.
> For example:
>
> HouseGroup.Room1Group.BaseboardCSG01.RoundingCSG.Curve
>
> vs.
>
> 01.01.01.02.02
>
> What'd be nice is a note or memo field for objects so I could have
> something like "House" for Group001, "Bedroom" for Group002, a subgroup
> of Group001, "Baseboard part 01" for CSG001, a part of Group002,
> "Rounding" for CSG002, a part of CSG001, and "Curve" for Cylinder001, a
> part of CSG002...and have those be viewable in the browser, so I don't
> have to rely on confusing or excessively long object names to find my
> way around a complex scene.
>
> --
> Tim Cook

I have not run into the 'object name-length limit' yet, but I could see
myself getting there some day.

In the Browser you get
  the name
  the material, if present
  the layer, if present
Would adding a forth entry be what your looking for?
  comment, if present

The 'Material Editor' has a comment option. How about when we 'right/click'
on an object in the Browser, one of the options in the drop down list is for
a view/edit comment? I would prefer this approach.

The last point in your post is interesting to me, 'find my way around a
complex scene'. I'm starting to have this in some of my scenes. I'm not sure
of any ideas to speed this up.

Stephen


Post a reply to this message

From: StephenS
Subject: Re: YAFR
Date: 8 Dec 2005 18:01:11
Message: <4398bb37$1@news.povray.org>
...
> So you're saying that actually changing the "Group001" name to "House"
> is not a good thing?
This is a very good thing, and I hope it doesn't change. If things where
optionaly (to the user) added to include more information, than that can be
good as well.

> You'd rather add a seperate comment to "Group001"
> saying it is "House"? Why? I don't get that....
>
> Am I missing something?
...

Most of the scenes I work on are not very complex, perhaps when I start
working on more complicated scenes my opinion will change.

Stephen


Post a reply to this message

From: Tim Cook
Subject: Re: YAFR
Date: 8 Dec 2005 19:07:36
Message: <4398cac8@news.povray.org>
StephenS wrote:
> In the Browser you get
>   the name
>   the material, if present
>   the layer, if present
> Would adding a forth entry be what your looking for?
>   comment, if present

yeah, that'd be it exactly...part of the problem with object names at 
present is they don't allow spaces, and are limited in length, as well 
as can't be duplicated, which clutters things up at times, having extra 
numbers associated with sub-parts of complex CSGs that you aren't so 
much concerned what it is part of, and only care about what its function 
in the CSG is...so I might have a bunch of 'rounded edge' CSG 
differences which are composed of a cylinder differenced from a cube, 
which I then difference from the parent, and I don't particularly care 
about the rounding beyond the fact that it's a rounding-CSG, and don't 
even need to have a number with it.

-- 
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------


Post a reply to this message

From: Patrick Elliott
Subject: Re: YAFR
Date: 9 Dec 2005 17:18:52
Message: <MPG.1e03af503877ce24989e98@news.povray.org>
In article <4398ba80$1@news.povray.org>, z99### [at] bellsouthnet says...
> Patrick Elliott wrote:
> > Why not function like you get in other high level languages, which can 
> > point to specific parts like:
> > def <temp name> as object using GroupWallPlates
> > or
> > for each <temp name> in House.GroupWallPlaces
> > Or something of that sort? You still have the layers of complexity in 
> > there, but you can specify which level of that complexity you want as the 
> > "base" starting point for referencing.
> 
> Not quire following that, but...for things which are identical, you can 
> easily enough use duplicate.  For things which are *almost* identical, 
> you need to make an actual copy to change the thing that's different. 
> How about...some kind of macro?  I know, just make a .inc file for it, 
> but if there were a way to do this inside Moray...?  I dunno.  ^^;
> 

The idea is to make something that can 'point' to at the part of the 
object whose sub-parts you want to work with. Having a pointer means that 
you could then do (I actually did the code a bit wrong):

def plates as pointer using House.GroupWallPlates
plates.Plate1 {rotate 90,0,0}

And that would rotate the Plate1 'sub-object'. You're replacing part of 
the entire name with a temporary pointer that automatically substitutes 
"House.GroupWallPlates" for plates. A macro would have to do the same 
thing, tacking on the part you leave off, in order to let you use a 
shorter version. So, why not provide something that lets you do that 
substitution 'in' the SDL itself, just as many programming languages let 
you define the scope of a property, so you don't have to constantly refer 
to the object it belongs to?

Is that clearer? I using isn't necessarily the right word, its just the 
one commonly used in programming languages that provide this feature. 
Though in those case, your actually specifying the 'scope' of the item 
your trying to deal with, such as the properties on Button1 from Window2, 
whose parent is Window1: Window1.Window2.Button1.Text, etc. Instead you 
tell the language to make Temp_Buttom = Window1.Window2.Button1, then 
just refer to Temp_Button.Text when writing the code.

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}


Post a reply to this message

Goto Latest 10 Messages Next 2 Messages >>>

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