<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "https://www.web3d.org/specifications/x3d-3.1.dtd">
<X3D profile='Immersive'  version='3.1 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.1.xsd ' >
<head>
<meta name='titlecontent=' CadGeometryExternPrototypes.x3d '/>
<meta name='descriptioncontent='This scene provides tool developers with X3D Amendment 1 CAD Component node prototypes, providing backwards compatibility with VRML97 and X3D v3.0.'/>
<meta name='creatorcontent='Travis Rauch, Alan Shaffer, Mounir Sidhom, Patrick Sullivan and Don Brutzman'/>
<meta name='createdcontent='28 April 2005'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name=' warning content=' Do not use these prototypes in an up-to-date X3D browser that already provides CAD support. '/>
<meta name='informationcontent='Recommended practice: avoid using these prototypes, instead use native definitions for CAD nodes using an up-to-date X3D browser.'/>
<meta name='informationcontent='These scenes are not intended for regular authoring - use X3D v3.2 CAD component instead. Example scenes using these prototypes do not get support for making embdedded metadata values visible at run time, though metadata can certainly be saved in the scene file OK.'/>
<meta name='informationcontent='Example scenes using these prototypes do not get support for making embedded metadata values visible at run time, though separate metadata nodes can certainly be saved in the scene file OK.'/>
<meta name='referencecontent=' CadGeometryPrototypes.x3d '/>
<meta name='referencecontent=' CadTeapot.x3d '/>
<meta name='subjectcontent='CADAssembly CADFace CADLayer CADPart IndexedQuadSet QuadSet'/>
<meta name='referencecontent=' https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/CADGeometry.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryExternPrototypes.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 node: White Index for ExternProtoDeclare definitions: CADAssembly, CADFace, CADLayer, CADPart, IndexedQuadSet, QuadSet
-->
<Scene>
<WorldInfo title='CadGeometryExternPrototypes.x3d'/>
<ExternProtoDeclare name='IndexedQuadSetappinfo='The IndexedQuadSet node represents a 3D shape composed of a collection of individual quadrilaterals (quads). IndexedQuadSet uses the indices in its index field to specify the vertices of each quad from the coord field. Each quad is formed from a set of four vertices of the Coordinate node identified by four consecutive indices from the index field If the index field does not contain a multiple of four coordinate values the remaining vertices shall be ignored.'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#IndexedQuadSet '
  url=' "CadGeometryPrototypes.x3d#IndexedQuadSet" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#IndexedQuadSet" "CadGeometryPrototypes.wrl#IndexedQuadSet" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#IndexedQuadSet" ' >
<field name='set_indextype='MFInt32accessType='inputOnly'/>
<field name='colortype='SFNodeaccessType='inputOutput'
 appinfo='[X3DColorNode]' />

<field name='coordtype='SFNodeaccessType='inputOutput'
 appinfo='[X3DCoordinateNode]' />

<field name='fogCoordtype='SFNodeaccessType='inputOutput'
 appinfo='[FogCoordinate]' />

<field name='normaltype='SFNodeaccessType='inputOutput'
 appinfo='[X3DNormalNode]' />

<field name='texCoordtype='SFNodeaccessType='inputOutput'
 appinfo='[X3DTextureCoordinateNode]' />

<field name='ccwtype='SFBoolaccessType='initializeOnly'/>
<field name='colorPerVertextype='SFBoolaccessType='initializeOnly'/>
<field name='normalPerVertextype='SFBoolaccessType='initializeOnly'/>
<field name='solidtype='SFBoolaccessType='initializeOnly'/>
<field name='indextype='MFInt32accessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- =========================================== -->
<ExternProtoDeclare name='QuadSetappinfo='The QuadSet node represents a 3D shape that represents a collection of individual planar quadrilaterals. The coord field contains a Coordinate node that defines the 3D vertices that define the quad. Each quad is formed from a consecutive set of four vertices of the coordinate node. If the coordinate node does not contain a multiple of four coordinate values the remaining vertices shall be ignored.'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#QuadSet '
  url=' "CadGeometryPrototypes.x3d#QuadSet" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#QuadSet" "CadGeometryPrototypes.wrl#QuadSet" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#QuadSet" ' >
<field name='attribtype='MFNodeaccessType='inputOutput'
 appinfo='[X3DVertexAttributeNode]' />

<field name='colortype='SFNodeaccessType='inputOutput'
 appinfo='[X3DColorNode]' />

<field name='coordtype='SFNodeaccessType='inputOutput'
 appinfo='[X3DCoordinateNode]' />

<field name='fogCoordtype='SFNodeaccessType='inputOutput'
 appinfo='[FogCoordinate]' />

<field name='normaltype='SFNodeaccessType='inputOutput'
 appinfo='[X3DNormalNode]' />

<field name='texCoordtype='SFNodeaccessType='inputOutput'
 appinfo='[X3DTextureCoordinateNode]' />

<field name='ccwtype='SFBoolaccessType='initializeOnly'/>
<field name='colorPerVertextype='SFBoolaccessType='initializeOnly'/>
<field name='normalPerVertextype='SFBoolaccessType='initializeOnly'/>
<field name='solidtype='SFBoolaccessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- ======================================== -->
<ExternProtoDeclare name='CADLayerappinfo='The CADLayer node defines a hierarchy of nodes used for showing layer structure.'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#CADLayer '
  url=' "CadGeometryPrototypes.x3d#CADLayer" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#CADLayer" "CadGeometryPrototypes.wrl#CADLayer" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#CADLayer" ' >
<field name='addChildrentype='MFNodeaccessType='inputOnly'/>
<field name='removeChildrentype='MFNodeaccessType='inputOnly'/>
<field name='childrentype='MFNodeaccessType='inputOutput'/>
<field name='nametype='SFStringaccessType='inputOutput'/>
<field name='visibletype='MFBoolaccessType='inputOutput'/>
<field name='bboxCentertype='SFVec3faccessType='initializeOnly'/>
<field name='bboxSizetype='SFVec3faccessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- ======================================== -->
<ExternProtoDeclare name='CADAssemblyappinfo='The CADAssembly node holds a set of assemblies or parts grouped together.'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#CADAssembly '
  url=' "CadGeometryPrototypes.x3d#CADAssembly" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#CADAssembly" "CadGeometryPrototypes.wrl#CADAssembly" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#CADAssembly" ' >
<field name='addChildrentype='MFNodeaccessType='inputOnly'/>
<field name='removeChildrentype='MFNodeaccessType='inputOnly'/>
<field name='childrentype='MFNodeaccessType='inputOutput'/>
<field name='nametype='SFStringaccessType='inputOutput'/>
<field name='bboxCentertype='SFVec3faccessType='initializeOnly'/>
<field name='bboxSizetype='SFVec3faccessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- ======================================== -->
<ExternProtoDeclare name='CADPartappinfo='CADPart represents the location and faces that constitute a part'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#CADPart '
  url=' "CadGeometryPrototypes.wrl#CADPart" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#CADPart" "CadGeometryPrototypes.x3d#CADPart" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#CADPart" ' >
<field name='addChildrentype='MFNodeaccessType='inputOnly'/>
<field name='removeChildrentype='MFNodeaccessType='inputOnly'/>
<field name='childrentype='MFNodeaccessType='inputOutput'/>
<field name='nametype='SFStringaccessType='inputOutput'/>
<field name='translationtype='SFVec3faccessType='inputOutput'/>
<field name='rotationtype='SFRotationaccessType='inputOutput'/>
<field name='centertype='SFVec3faccessType='inputOutput'/>
<field name='scaletype='SFVec3faccessType='inputOutput'/>
<field name='scaleOrientationtype='SFRotationaccessType='inputOutput'/>
<field name='bboxCentertype='SFVec3faccessType='initializeOnly'/>
<field name='bboxSizetype='SFVec3faccessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- ======================================== -->
<ExternProtoDeclare name='CADFaceappinfo='The CADFace node holds the geometry representing a face of a part.'  documentation=' https://www.web3d.org/x3d/specifications/ISO-IEC-19775-Amendment1-PDAM-X3DAbstractSpecification/Part01/components/CADGeometry.html#CADFace '
  url=' "CadGeometryPrototypes.x3d#CADFace" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.x3d#CADFace" "CadGeometryPrototypes.wrl#CADFace" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryPrototypes.wrl#CADFace" ' >
<field name='nametype='SFStringaccessType='inputOutput'/>
<field name='shapetype='SFNodeaccessType='inputOutput'/>
<field name='bboxCentertype='SFVec3faccessType='initializeOnly'/>
<field name='bboxSizetype='SFVec3faccessType='initializeOnly'/>
<field name='metadatatype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<!-- ======================================== -->
<Transform translation='0 -2 0'>
<Anchor description='CAD Teapot'
  url=' CadTeapot.x3d"https://www.web3d.org/x3d/content/examples/Basic/CAD/CadTeapot.x3d" "CadTeapot.wrl" "https://www.web3d.org/x3d/content/examples/Basic/CAD/CadTeapot.wrl" ' >
<Shape>
<Text string='"Example CAD structure nodes" "are found in CadTeapot.x3d"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.9'/>
</Text>
<Appearance>
<Material diffuseColor='1 1 0.2'/>
</Appearance>
</Shape>
</Anchor>
</Transform>
<Transform translation='-3 2 0'>
<Shape>
<Appearance DEF='White'>
<Material diffuseColor='1 1 1'/>
</Appearance>
<ProtoInstance name='IndexedQuadSetcontainerField='geometry'>
<fieldValue name='indexvalue='0 3 2 1 4 5 6 7 2 7 9 8 2 3 4 7'/>
<fieldValue name='coord'>
<Coordinate point='-1.5 0 0 -1.5 1 -1 -.5 1 -1 -.5 0 0 0.5 0 0 1.5 0 0 1.5 1 -1 0.5 1 -1 -0.5 2 -1 0.5 2 -1'/>
</fieldValue>
</ProtoInstance>
</Shape>
</Transform>
<Transform translation='3 2 0'>
<Shape>
<Appearance USE=' White'/>
<ProtoInstance name='QuadSetcontainerField='geometry'>
<fieldValue name='coord'>
<Coordinate point='-1.5 0 0 -1.5 1 -1 -0.5 1 -1 -0.5 0 0 0.5 0 0 1.5 0 0 1.5 1 -1 0.5 1 -1'/>
</fieldValue>
</ProtoInstance>
</Shape>
</Transform>
<!-- ======================================== -->
<!-- Silence scene warnings by providing ordered ProtoInstance examples. Note warning above that this scene is for developmental use. The ProtoInstance form of the CAD nodes should not be used, native X3D encoding should be used instead. -->
<ProtoInstance name='CADLayer'>
<fieldValue name='children'>
<ProtoInstance name='CADAssembly'>
<fieldValue name='children'>
<ProtoInstance name='CADPart'>
<fieldValue name='children'>
<ProtoInstance name='CADFace'>
<fieldValue name='shape'>
<Shape>
<Cylinder bottom='falseheight='0.000001radius='0.000001side='false'/>
<Appearance>
<Material/>
</Appearance>
</Shape>
</fieldValue>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF node: White Index for ExternProtoDeclare definitions: CADAssembly, CADFace, CADLayer, CADPart, IndexedQuadSet, QuadSet
-->

Event Graph ROUTE Table with 0 ROUTE 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.


ProtoInstance
IndexedQuadSet
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
QuadSet
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CADLayer
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CADAssembly
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CADPart
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CADFace
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryExternPrototypesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/CAD/CadGeometryExternPrototypes.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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