POV-Ray : Newsgroups : moray.win : YAFR : Re: YAFR Server Time
21 Jun 2024 01:15:32 EDT (-0400)
  Re: YAFR  
From: Patrick Elliott
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

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