[x3d-public] Interesting Example

Roy Walmsley roy.walmsley at ntlworld.com
Fri Jun 17 08:07:40 PDT 2016


Thanks for the validation, Don. I can confirm the functionality you observed
for BS Contact, Instant Reality and Xj3D. My own viewer is good
(notwithstanding some coding errors!).

I have a further observation on the file "Rotor.x3d". In particular, the
Script node with the DEF name "Rotor", starting at line 49. Notice that
there are five field definitions.

The first field definition has the name "set_axis", and the access type
inputOnly. The third field definition has the name "axis", and the access
type inputOutput. What would happen if the file contained a subsequent ROUTE
statement, connecting to the node "Rotor" and field "set_axis"? Which field
will it connect to? It could be either? So is this situation permitted? And,
if not, should the Schematron be updated to check for it?

Roy

-----Original Message-----
From: Don Brutzman [mailto:brutzman at nps.edu] 
Sent: 17 June 2016 15:17
To: Roy Walmsley; John Carlson
Cc: Holger Seelig; x3d-public at web3d.org
Subject: Re: Interesting Example

Yes, interesting.  Test report follows.

On 6/17/2016 3:32 AM, Roy Walmsley wrote:
> Hi,
>
> I have come across an interesting example, relating to the use of
Scripts/Prototypes.
>
> It is on the Cobweb site at http://titania.create3000.de/cobweb/. Scroll
down to examples, navigate to Page 3 of the Examples list, and choose
"Gears".
>
> This example is also available on Holger's GitHub site at
https://github.com/create3000/Library/tree/master/Examples/Gears. There are
four files, of which two are XML encoded X3D. The file Rotor.x3d supplies a
prototype declaration that is used within gears.x3d.
>
> Try opening the file gears.x3d in different browsers!

Success: InstantReality, Octaga
Partial success: BS Contact Geo (animates OK but problem with red gear
geometry), FreeWrl (problems with geometry) Load errors: Xj3D (dislikes Full
profile), view3dscene, H3DViewer

X3D Validator reports the following issues with these 2 scenes:
===============================================================
--------- Commence validation checks for Rotor.x3d ---------

Performing well-formed XML check...
Checking file:/C:/Users/don/Desktop/Rotor.x3d...
Well-formed XML check: pass

Performing DOCTYPE check...
[X3dDoctypeChecker] success: valid XML declaration found; success: final X3D
3.3 DOCTYPE found.

Performing DTD validation...
Checking file:/C:/Users/don/Desktop/Rotor.x3d...
XML DTD validation: pass

Performing X3D schema validation...
Checking file:/C:/Users/don/Desktop/Rotor.x3d...
Referenced entity at
"nbres:/org/web3d/x3d/externals/schemas/x3d-3.3-Web3dExtensionsPublic.xsd".
XML schema validation: pass

Performing X3D regular expression (regex) values check...

Performing X3dToClassicVrml.xslt conversion check...

Performing X3D Schematron check...
<X3D profile='Full'> is defined, but nodes in scene have actual
profile='Immersive' [/X3D, info] Missing X3D filename in meta tag, should
appear as <meta name='title' content='FileName.x3d'/> [/X3D/head, warning]
url for X3D file should appear in <meta name='identifier'
content='http://someAddress/somePath/FileName.x3d'/> [/X3D/head, warning]
Missing X3D scene description in meta tag, should appear as <meta
name='description' content='topic sentence plus good summary'/> [/X3D/head,
info] <ProtoInterface name='' DEF=''> <field name='angle' value=''/> field
declaration is missing initialization value
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[4], error] <ProtoInterface
name='' DEF=''> <field name='loop' value=''/> SFBool field must have
value='true' or value='false'
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[5], error] <ProtoInterface
name='' DEF=''> <field name='startTime' value=''/> field declaration is
missing initialization value
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[6], error] <ProtoInterface
name='' DEF=''> <field name='pauseTime' value=''/> field declaration is
missing initialization value
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[7], error] <ProtoInterface
name='' DEF=''> <field name='resumeTime' value=''/> field declaration is
missing initialization value
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[8], error] <ProtoInterface
name='' DEF=''> <field name='stopTime' value=''/> field declaration is
missing initialization value
[/X3D/Scene/ProtoDeclare/ProtoInterface/field[9], error] <Script
DEF='Rotor'/> contained source block must start with 'ecmascript:' rather
than 'vrmlscript:'[/X3D/Scene/ProtoDeclare/ProtoBody/Script, error] <Script
DEF='Rotor'/> contained CDATA source block must start with
'ecmascript:'[/X3D/Scene/ProtoDeclare/ProtoBody/Script, error] <Script
DEF='Rotor'> <field name='axis' accessType='inputOutput'/> does not send
output event via assignment statement axis=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[3], warning] <Script
DEF='Rotor'> <field name='angle' accessType='inputOutput'/> does not send
output event via assignment statement angle=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[4], warning]

--------- Validation checks complete for Rotor.x3d ---------

--------- Commence validation checks for gears.x3d ---------

Performing well-formed XML check...
Checking file:/C:/Users/don/Desktop/gears.x3d...
Well-formed XML check: pass

Performing DOCTYPE check...
[X3dDoctypeChecker] success: valid XML declaration found; success: final X3D
3.0 DOCTYPE found.

Performing DTD validation...
Checking file:/C:/Users/don/Desktop/gears.x3d...
XML DTD validation: pass

Performing X3D schema validation...
Checking file:/C:/Users/don/Desktop/gears.x3d...
XML schema validation: pass

Performing X3D regular expression (regex) values check...

Performing X3dToClassicVrml.xslt conversion check...

Performing X3D Schematron check...
<X3D profile='Full'> is defined, but nodes in scene have actual
profile='Immersive' [/X3D, info] url for X3D file should appear in <meta
name='identifier' content='http://someAddress/somePath/FileName.x3d'/>
[/X3D/head, warning] Missing X3D scene description in meta tag, should
appear as <meta name='description' content='topic sentence plus good
summary'/> [/X3D/head, info] <ExternProtoDeclare name="Rotor"/> url array
address(es) missing #Rotor appended [/X3D/Scene/ExternProtoDeclare, warning]
<ExternProtoDeclare name="Rotor"/> url array address(es) missing online http
references [/X3D/Scene/ExternProtoDeclare, info] <ProtoInterface name=''
DEF=''> <field name='creaseAngle' value=''/> field declaration is missing
initialization value [/X3D/Scene/ProtoDeclare/ProtoInterface/field[6],
error] <Coordinate DEF=''/> contains no point data
[/X3D/Scene/ProtoDeclare/ProtoBody/IndexedFaceSet/Coordinate, warning]
<Script DEF=''/> contained source block must start with 'ecmascript:' rather
than 'vrmlscript:'[/X3D/Scene/ProtoDeclare/ProtoBody/Script, error] <Script
DEF=''/> contained CDATA source block must start with
'ecmascript:'[/X3D/Scene/ProtoDeclare/ProtoBody/Script, error] <Script
DEF=''> <field name='teeth' accessType='inputOutput'/> must define function
set_teeth (newValue) [/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[1],
error] <Script DEF=''> <field name='teeth' accessType='inputOutput'/> does
not send output event via assignment statement teeth=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[1], warning] <Script DEF=''>
<field name='toothDepth' accessType='inputOutput'/> must define function
set_toothDepth (newValue)
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[2], error] <Script DEF=''>
<field name='toothDepth' accessType='inputOutput'/> does not send output
event via assignment statement toothDepth=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[2], warning] <Script DEF=''>
<field name='innerRadius' accessType='inputOutput'/> must define function
set_innerRadius (newValue)
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[3], error] <Script DEF=''>
<field name='innerRadius' accessType='inputOutput'/> does not send output
event via assignment statement innerRadius=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[3], warning] <Script DEF=''>
<field name='outerRadius' accessType='inputOutput'/> must define function
set_outerRadius (newValue)
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[4], error] <Script DEF=''>
<field name='outerRadius' accessType='inputOutput'/> does not send output
event via assignment statement outerRadius=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[4], warning] <Script DEF=''>
<field name='width' accessType='inputOutput'/> must define function
set_width (newValue) [/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[5],
error] <Script DEF=''> <field name='width' accessType='inputOutput'/> does
not send output event via assignment statement width=___;
[/X3D/Scene/ProtoDeclare/ProtoBody/Script/field[5], warning]

--------- Validation checks complete for gears.x3d ---------
===============================================================

> I don't know how you would get on with this one, John, in your prototype
expander.

wondering why?

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman




More information about the x3d-public mailing list