 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Tim Cook" <z99### [at] bellsouth net> 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
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] stmuc com
Web : http://www.stmuc.com/moray
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <4397f896$1@news.povray.org>, z99### [at] bellsouth net 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
...
> 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <4398ba80$1@news.povray.org>, z99### [at] bellsouth net 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |