<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive'  version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.0.xsd ' >
<head>
<meta name='titlecontent=' XvlShellProtoDeclare.x3d '/>
<meta name='descriptioncontent='This is a development scene used to define the ProtoDeclaration for the XvlShell native node.'/>
<meta name=' warning content=' This scene is not for example use, instead it is a development scene used during X3D design. '/>
<meta name='creatorcontent='Marc Jablonski'/>
<meta name='createdcontent='22 November 2001'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name=' error content=' Test X3D DTD experimental extensions mechanisms, the XVL nodes are not legal X3D '/>
<meta name='referencecontent=' readme.txt '/>
<meta name='referencecontent=' docs/LatticeXvl/LatticeXvlOverview.html '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/Basic/LatticeXvl/docs/LatticeXvl/LatticeXvlOverview.html '/>
<meta name='referencecontent=' http://www.xvl3d.com '/>
<meta name='subjectcontent='Lattice XVL parametric geometry X3D VRML'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/LatticeXvl/XvlShellProtoDeclare.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: IFS, XvlShellScript

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: XvlShell
-->
<Scene>
<WorldInfo title='XvlShellProtoDeclare.x3d'/>
<ProtoDeclare name='XvlShell'>
<ProtoInterface>
<!-- Allowable children of XvlShell: a single Coordinate node (required for rendering) and a single TextureCoordinate node (optional) -->
<field name='shellTypetype='SFInt32value='1accessType='initializeOnly'/>
<field name='numberOfDivisionstype='SFInt32value='4accessType='initializeOnly'/>
<field name='coordtype='SFNodeaccessType='initializeOnly'/>
<field name='texCoordtype='SFNodeaccessType='initializeOnly'/>
<field name='vertexRoundtype='MFFloataccessType='initializeOnly'/>
<field name='edgeBeginCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='edgeEndCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='edgeRoundtype='MFFloataccessType='initializeOnly'/>
<field name='edgeBeginVectortype='MFVec3faccessType='initializeOnly'/>
<field name='edgeEndVectortype='MFVec3faccessType='initializeOnly'/>
<field name='faceCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='faceTexCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='faceEmptytype='MFBoolaccessType='initializeOnly'/>
<field name='faceHiddentype='MFBoolaccessType='initializeOnly'/>
</ProtoInterface>
<ProtoBody>
<Coordinate/>
<Normal/>
<TextureCoordinate/>
</IndexedFaceSet>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<field name='mShellTypetype='SFInt32accessType='initializeOnly'/>
<field name='mNumDivtype='SFInt32accessType='initializeOnly'/>
<field name='mCoordtype='SFNodeaccessType='initializeOnly'/>
<field name='mTexCoordtype='SFNodeaccessType='initializeOnly'/>
<field name='mVtxRoundtype='MFFloataccessType='initializeOnly'/>
<field name='mEdgeV0type='MFInt32accessType='initializeOnly'/>
<field name='mEdgeV1type='MFInt32accessType='initializeOnly'/>
<field name='mEdgeRoundtype='MFFloataccessType='initializeOnly'/>
<field name='mEdgeVec0type='MFVec3faccessType='initializeOnly'/>
<field name='mEdgeVec1type='MFVec3faccessType='initializeOnly'/>
<field name='mFaceCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='mFaceTexCoordIndextype='MFInt32accessType='initializeOnly'/>
<field name='mFaceEmptytype='MFBoolaccessType='initializeOnly'/>
<field name='mFaceHiddentype='MFBoolaccessType='initializeOnly'/>
<field name='coord_changedtype='SFNodeaccessType='outputOnly'/>
<field name='coordIndex_changedtype='MFInt32accessType='outputOnly'/>
<field name='texCoord_changedtype='SFNodeaccessType='outputOnly'/>
<field name='normal_changedtype='SFNodeaccessType='outputOnly'/>
<IS>
<connect nodeField='mShellTypeprotoField='shellType'/>
<connect nodeField='mNumDivprotoField='numberOfDivisions'/>
<connect nodeField='mCoordprotoField='coord'/>
<connect nodeField='mTexCoordprotoField='texCoord'/>
<connect nodeField='mVtxRoundprotoField='vertexRound'/>
<connect nodeField='mEdgeV0protoField='edgeBeginCoordIndex'/>
<connect nodeField='mEdgeV1protoField='edgeEndCoordIndex'/>
<connect nodeField='mEdgeRoundprotoField='edgeRound'/>
<connect nodeField='mEdgeVec0protoField='edgeBeginVector'/>
<connect nodeField='mEdgeVec1protoField='edgeEndVector'/>
<connect nodeField='mFaceCoordIndexprotoField='faceCoordIndex'/>
<connect nodeField='mFaceTexCoordIndexprotoField='faceTexCoordIndex'/>
<connect nodeField='mFaceEmptyprotoField='faceEmpty'/>
<connect nodeField='mFaceHiddenprotoField='faceHidden'/>
</IS>
</Script>
< ROUTE  fromNode=' XvlShellScript' fromField='coord_changed' toNode=' IFS' toField='set_coord'/>
< ROUTE  fromNode=' XvlShellScript' fromField='coordIndex_changed' toNode=' IFS' toField='set_coordIndex'/>
< ROUTE  fromNode=' XvlShellScript' fromField='texCoord_changed' toNode=' IFS' toField='set_texCoord'/>
< ROUTE  fromNode=' XvlShellScript' fromField='normal_changed' toNode=' IFS' toField='set_normal'/>
</ProtoBody>
</ProtoDeclare>
<Background groundColor='0 .1 .2skyColor='0 .1 .2'/>
<Viewpoint description='Hello LatticeXvl prototypeposition='0 0 8'/>
<!-- Redirection text in case a user examines this PROTO file via a 3D browser: -->
<Anchor description='XvlShellAttributeAllparameter='"target=_blank"'
  url=' "XvlShellAttributeAll.wrl" "https://www.web3d.org/x3d/content/examples/Basic/LatticeXvl/XvlShellAttributeAll.wrl" XvlShellAttributeAll.x3d"https://www.web3d.org/x3d/content/examples/Basic/LatticeXvl/XvlShellAttributeAll.x3d" ' >
<Shape>
<Appearance>
<Material diffuseColor='0 1 1emissiveColor='0 1 1'/>
</Appearance>
<Text string='"XvlShellProtoDeclare.wrl" "is a ProtoDeclare definition file." "" "To see an example scene using this new node," "click this text and view XvlShellAttributeAll"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.5'/>
</Text>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: IFS, XvlShellScript

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: XvlShell
-->

Event Graph ROUTE Table with 4 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

XvlShellScript
Script
coord_changed
SFNode

ROUTE
event to
(1)
IFS
IndexedFaceSet
set_coord
SFNode
XvlShellScript
Script
coordIndex_changed
MFInt32

ROUTE
event to
(1)
IFS
IndexedFaceSet
set_coordIndex
MFInt32
XvlShellScript
Script
texCoord_changed
SFNode

ROUTE
event to
(1)
IFS
IndexedFaceSet
set_texCoord
SFNode
XvlShellScript
Script
normal_changed
SFNode

ROUTE
event to
(1)
IFS
IndexedFaceSet
set_normal
SFNode


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/LatticeXvl/XvlShellProtoDeclareIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/LatticeXvl/XvlShellProtoDeclare.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoDeclare name='ProtoName'> <field name='fieldName'/> </ProtoDeclare> -->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->