create3000 / titania

Titania X3D Editor
https://github.com/create3000/titania/wiki
GNU General Public License v3.0
39 stars 10 forks source link

[INFO] Cosmo 1.0 working world with incompatible proto declaration events, produces error on load. #70

Closed splace closed 5 years ago

splace commented 5 years ago

example:

#VRML V2.0 utf8

PROTO Plane [
exposedField SFFloat stat 0
]{
PositionInterpolator{ set_fraction IS stat}
}

relevant spec.: http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#PrototypeSemantics

found when an old, claimed 'Cosmo 1.0 tested', world wouldn't load.

create3000 commented 5 years ago

No, this connection is forbitten.

If the proto interface has an inputOnly field, then it can be referenced by IS statement within the body to an inputOutput field, but the other way round is forbitten.

splace commented 5 years ago

when i initially went to check the spec. i thought you were right, and the file i found indicated Cosmo had it wrong.

but then i re-read it and was sure you were wrong (this is somewhat based on just being unable to understand why this way round, the reverse seems better.)

i now re-read it again and think you are right!

however; for me the use of the term 'undefined' means it can do anything and does not produce an error, but in different places it IS referred to as an error, which, to me, means an error message SHOULD be produced.

this means the maker of the 'problem' world misunderstood, and never noticed some of the code didn't work, no error message, or it did work just by accident (undefined).

not sure that checking Cosmo would achieve anything, but here it is, for ref: FARO3DN4.WRL.GZ