go to www.geomview.org home page
 
Home

Overview
FAQ
Documentation

Download

Mailing List

Geomview For Windows?

Support
Users
Development

Bug Reporting
Contributing
Contact Us

Sponsors

 

Site Search

 

Advanced
Search

 
About the software@geom archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OOGL "*" behavior/documentation


  • To: munzner
  • Subject: OOGL "*" behavior/documentation
  • From: burchard
  • Date: Wed, 29 Jun 94 22:25:11 -0500

If I understand correctly, the (*) notation on an appearance (or  
material?) attribute in OOGL allows you to prevent lower objects in  
the hierarchy from overriding the attribute when it is inherited.

This is actually an important feature for VRML (and one that I don't  
see in the other proposed formats).  The reason is that it allows you  
to modify other people's canned objects (something virtual  
world-builders will frequently want to do).  If you want a red  
version of Fred's schoolhouse, you can say

  { appearance { material { *diffuse 1 0 0 } }
    { < http://www.somewhere.com/fred/school.oogl } }

However, the documentation in the manual is somewhat cryptic  
(actually misleading, I think):

> A "*" prefix on any attribute, e.g. "*+edge" or
> "*linewidth 2", selects "override" status for that
> attribute.  


I propose to change this to:

------------
Normally, an object in the hierarchy is free to override any of the  
appearance attributes it inherits.  However, it is often desirable to  
be able to enforce a specific appearance on pre-packaged objects  
instantiated deeper in the hierarchy.

For this reason, OOGL allows attributes to be "locked" against  
overrides by objects located deeper in the hierarchy.  Locked  
attributes are indicated with a "*" prefix; e.g. "*+edge" or  
"*linewidth 2".
------------

In testing this feature, I found what I believe to be a bug in  
Geomview: "*" does not currently interact correctly with itself.  In  
the following OOGL data

  { appearance { material { *diffuse 0 0 0 }}
    { LIST { appearance { material { *diffuse 1 1 1 } }
      { < dodec.off } } } }

the inner "*diffuse 1 1 1" is allowed to affect the appearance  
despite the higher-level attempt at locking/"override".

PB


 
Home | Overview | FAQ | Documentation | Support | Download | Mailing List
Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors
 
site hosted by
SourceForge Logo