</ProtoDeclare>
<!-- Test success: declarative statement createDeclarativeShapeTests() -->
<Group DEF='DeclarativeGroupExample'>
<Shape>
</Shape>
<!-- Test success: declarativeGroup.addChild() singleton pipeline method -->
</Group>
<!-- Test success: declarative statement addChild() -->
<!-- Test success: x3dModel.findNodeByDEF(DeclarativeAppearanceExample) = <Appearance
DEF='DeclarativeAppearanceExample'/> i.e. <Appearance DEF='DeclarativeAppearanceExample'>
<!- - DeclarativeMaterialExample gets overridden by subsequently added MaterialModulator
ProtoInstance - -> <ProtoInstance DEF='MyMaterialModulator' name='MaterialModulator'
containerField='material'/> </Appearance> -->
<!-- Test success: x3dModel.findElementByNameValue(findThisNameValue) = <MetadataString
DEF='FindableMetadataStringTest' name='findThisNameValue' value='"test case"'/>
-->
<!-- Test success: x3dModel.findElementByNameValue("ArtDeco01Material", "ProtoDeclare")
found -->
<!-- Test success: x3dModel.findElementByNameValue("MaterialModulator", "ProtoDeclare")
found -->
<!-- Test success: x3dModel.findElementByNameValue("MaterialModulator", "ProtoInstance")
found -->
<Group DEF='TestFieldObjectsGroup'>
<!-- testFieldObjects() results -->
<!-- SFBool default=false, true=true, false=false, negate()=true -->
<!-- MFBool default=, initial=true false true, negate()=false true false
-->
<!-- SFFloat default=0.0, initial=1.0, setValue(2)=2.0, setValue(3.0f)=3.0,
setValue(4.0)=4.0 -->
<!-- MFFloat default=, initial=1 2 3, append(5)=1 2 3 5, inserts(3,4)(0,0)=0
1 2 3 4 5, append(6)=0 1 2 3 4 5 6, size()=7 -->
<!-- ... get1Value[3]=3.0, remove[1]=0 2 3 4 5 6, set1Value(0,10)=10 2
3 4 5 6, multiply(2)=20 4 6 8 10 12, clear= -->
<!-- SFVec3f default=0 0 0, initial=1 2 3, setValue=4 5 6, multiply(2)=8
10 12, normalize()=0.45584232 0.5698029 0.68376344, regex matches()=true -->
<!-- regex test SFVec3f().matches("1 2 3")=true, regex test SFVec3f().matches("1
2 3 4")=false, regex test (SFRotation.matches("0 0 0 0")=true, failure detecting
illegal (zero axis) rotation value -->
</Group>
<Sound location='0 1.6 0'>
</Sound>
<Sound location='0 1.6 0'>
</Sound>
<!-- Test success: Anchor.isNode()=true, siteAnchor.isNode()=true -->
<!-- Test success: Anchor.isStatement()=false, siteAnchor.isStatement()=false
-->
<!-- Test success: ROUTE.isNode()=false, orbitPositionROUTE.isNode()=false -->
<!-- Test success: ROUTE.isStatement()=true, orbitPositionROUTE.isStatement()=true
-->
<!-- Test success: CommentsBlock.isNode()=false, testComments.isNode()=false
-->
<!-- Test failure: CommentsBlock.isStatement()=true, testComments.isStatement()=true
-->
<Shape DEF='ExtrusionShape'>
<!-- ExampleExtrusion isCrossSectionClosed()=true, crossSection='[1.0, 1.0, 1.0,
-1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0]' -->
<!-- ExampleExtrusion isSpineClosed()=false, spine='[0.0, 0.0, 0.0, 0.0, 1.0,
0.0]' -->
<Appearance DEF='TransparentAppearance'>
<Material transparency='1.0'/>
</Appearance>
<Extrusion DEF='ExampleExtrusion'/>
</Shape>
<Group>
<!-- Test MFNode children array as an ordered list consisting of comments,
statements, ProtoInstance and nodes -->
<ProtoDeclare name='NewWorldInfo'>
<ProtoInterface>
<field name='description' type='SFString' accessType='initializeOnly'/>
</ProtoInterface>
<ProtoBody>
<WorldInfo/>
</ProtoBody>
</ProtoDeclare>
<ProtoInstance name='NewWorldInfo' DEF='Proto1'>
<fieldValue name='description' value='testing 1 2 3'/>
</ProtoInstance>
<Group DEF='Node2'>
<!-- intentionally empty -->
</Group>
<ProtoInstance name='NewWorldInfo' DEF='Proto3'/>
<Transform DEF='Node4'>
<!-- intentionally empty -->
</Transform>
<!-- Test satisfactorily creates MFNode children array as an ordered list
with mixed content -->
</Group>
<ProtoDeclare name='ShaderProto'>
<ProtoBody>
<ProgramShader containerField='shaders'/>
</ProtoBody>
</ProtoDeclare>
<Shape>
<Appearance>
<!-- Test MFNode shaders array as an ordered list consisting of comments,
ProtoInstance and nodes -->
<!-- Test satisfactorily creates MFNode shaders array as an ordered list
with mixed content -->
<
ProgramShader DEF='
TestShader1'
containerField='
shaders'>
<
ShaderProgram DEF='
TestShader2'
containerField='
programs'>
</
ShaderProgram>
</
ProgramShader>
<ProtoInstance name='ShaderProto' DEF='TestShader3' containerField='shaders'/>
<
ComposedShader DEF='
TestShader4'
containerField='
shaders'>
<
ShaderPart DEF='
TestShader5'
containerField='
parts'>
</
ShaderPart>
</
ComposedShader>
</Appearance>
</Shape>
<Transform DEF='SpecialtyNodes'>
<CADLayer>
<CADAssembly>
<CADPart>
<CADFace/>
</CADPart>
</CADAssembly>
</CADLayer>
<EspduTransform containerField='children'/>
<ReceiverPdu receivedPower='0.0' containerField='children'/>
<SignalPdu containerField='children'/>
<TransmitterPdu relativeAntennaLocation='0 0 0' transmitFrequencyBandwidth='0.0' containerField='children'/>
<
DISEntityManager containerField='
children'>
<DISEntityTypeMapping containerField='children'/>
</
DISEntityManager>
</Transform>
<EspduTransform containerField='children'>
<WorldInfo/>
</EspduTransform>
<ReceiverPdu receivedPower='0.0' containerField='children'/>
<SignalPdu containerField='children'/>
<TransmitterPdu relativeAntennaLocation='0 0 0' transmitFrequencyBandwidth='0.0' containerField='children'/>
<
DISEntityManager containerField='
children'>
<DISEntityTypeMapping containerField='children'/>
</
DISEntityManager>
<LoadSensor>
<!-- Contained nodes typically must be USE references for nodes previously
DEFined in the scene -->
<!-- The following nodes are test cases for all X3DUrlObject nodes -->
<Anchor USE='siteAnchor'/>
<Inline USE='inlineScene'/>
<
DISEntityTypeMapping containerField='
children'/>
<GeoMetadata containerField='children'/>
<AudioClip containerField='children'/>
<
ImageCubeMapTexture containerField='
children'/>
<
ImageTexture3D containerField='
children'/>
<ImageTexture containerField='children'/>
<MovieTexture containerField='children'/>
<Script>
</Script>
<
PackagedShader containerField='
children'/>
<
ShaderPart containerField='
children'>
</
ShaderPart>
<
ShaderProgram containerField='
children'>
</
ShaderProgram>
</LoadSensor>