X3D Model Documentation: CreaseAngle.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  4       <head>
  5            <meta name='titlecontent='CreaseAngle.x3d'/>
  6            <meta name='descriptioncontent='creaseAngle demonstration: select and drag upper halves of quadrilaterals to change creaseAngle and shading.'/>
  7            <meta name='creatorcontent='John L. Moreland'/>
  8            <meta name='translatorcontent='Don Brutzman'/>
  9            <meta name='createdcontent='1 July 1998'/>
 10            <meta name='translatedcontent='2 February 2014'/>
 11            <meta name='modifiedcontent='20 October 2019'/>
 12            <meta name='referencecontent='originals/creangle.wrl'/>
 13            <meta name='referencecontent='http://www.siggraph.org/s98'/>
 14            <meta name='referencecontent='http://www.siggraph.org/s98/conference/courses/18.html'/>
 15            <meta name='referencecontent='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0243.htm'/>
 16            <meta name='referencecontent='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm'/>
 17            <meta name='referencecontent='https://www.web3d.org/x3d/content/examples/X3dResources.html'/>
 18            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/CreaseAngle.x3d'/>
 19            <meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
 20            <meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
 21            <meta name='licensecontent='../license.html'/>
 22       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: bendAngle, bendAngleLabel, CI, Crd1, Crd2, Crd3, FntColor, FntStyle, PS, Scr, White

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2
-->
 23       <Scene>
 24            <WorldInfo info='"copyright (c) 1997, John L. Moreland"title='Crease angle demonstration'/>
 25            <Viewpoint centerOfRotation='0 0.85 0description='Front Faceorientation='0 1 0 -0.62position='-2 0.85 3'/>
 26            <Viewpoint centerOfRotation='0 0.85 0description='Back Faceorientation='0.0 1.0 0.0 0.62position='2.4 0.85 3.0'/>
 27            <NavigationInfo/>
 28            <DirectionalLight color='1.0 0.0 0.0direction='0.0 -1.0 0.1'/>
 29            <DirectionalLight color='0.0 0.0 1.0direction='0.0 1.0 -0.1'/>
 30            <Transform translation='-1.1 0.0 0.0'>
 31                 <Shape>
 32 
                    <!-- Appearance White is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                    <Appearance DEF='White'>
 33                           <Material ambientIntensity='0.5diffuseColor='1.0 1.0 1.0'/>
 34                      </Appearance>
 35                      <IndexedFaceSet solid='falsecoordIndex='0 1 4 5 0 -1 1 2 3 4 1 -1'>
 36 
                         <!-- ROUTE information for Crd1 node:  [from CI.value_changed to set_point ] -->
                         <Coordinate DEF='Crd1point='0.0 0.0 1.0 0.0 1.0 1.0 0.0 2.0 1.0 0.0 2.0 -1.0 0.0 1.0 -1.0 0.0 0.0 -1.0'/>
 37                      </IndexedFaceSet>
 38                 </Shape>
 39                 <Transform translation='0.0 1.0 1.2'>
 40                      <Billboard>
 41                           <Shape>
 42 
                              <!-- Appearance FntColor is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                              <Appearance DEF='FntColor'>
 43                                     <Material diffuseColor='1.0 0.0 0.0'/>
 44                                </Appearance>
 45                                <Text string='"0.0"'>
 46 
                                   <!-- FontStyle FntStyle is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                   <FontStyle DEF='FntStylejustify='"BEGIN" "MIDDLE"size='0.1style='BOLD'/>
 47                                </Text>
 48                           </Shape>
 49 
                         <!-- Transform bendAngleLabel is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                         <Transform DEF='bendAngleLabeltranslation='0.0 -0.1 0.0'>
 50                                <Shape>
 51                                     <Appearance>
 52                                          <Material diffuseColor='0.0 0.5 0.0'/>
 53                                     </Appearance>
 54 
                                   <!-- ROUTE information for bendAngle node:  [from Scr.label_changed to set_string ] -->
                                   <Text DEF='bendAnglestring='"0.0"'>
 55                                          <FontStyle USE='FntStyle'/>
 56                                     </Text>
 57                                </Shape>
 58                           </Transform>
 59                      </Billboard>
 60                 </Transform>
 61            </Transform>
 62            <Transform>
 63                 <Shape>
 64                      <Appearance USE='White'/>
 65                      <IndexedFaceSet creaseAngle='0.785solid='falsecoordIndex='0 1 4 5 0 -1 1 2 3 4 1 -1'>
 66 
                         <!-- ROUTE information for Crd2 node:  [from CI.value_changed to set_point ] -->
                         <Coordinate DEF='Crd2point='0.0 0.0 1.0 0.0 1.0 1.0 0.0 2.0 1.0 0.0 2.0 -1.0 0.0 1.0 -1.0 0.0 0.0 -1.0'/>
 67                      </IndexedFaceSet>
 68                 </Shape>
 69                 <Transform translation='0.0 1.0 1.2'>
 70                      <Billboard>
 71                           <Shape>
 72                                <Appearance USE='FntColor'/>
 73                                <Text string='"0.785"'>
 74                                     <FontStyle USE='FntStyle'/>
 75                                </Text>
 76                           </Shape>
 77                           <Transform USE='bendAngleLabel'/>
 78                      </Billboard>
 79                 </Transform>
 80            </Transform>
 81            <Transform translation='1.1 0.0 0.0'>
 82                 <Shape>
 83                      <Appearance USE='White'/>
 84                      <IndexedFaceSet creaseAngle='1.57solid='falsecoordIndex='0 1 4 5 0 -1 1 2 3 4 1 -1'>
 85 
                         <!-- ROUTE information for Crd3 node:  [from CI.value_changed to set_point ] -->
                         <Coordinate DEF='Crd3point='0.0 0.0 1.0 0.0 1.0 1.0 0.0 2.0 1.0 0.0 2.0 -1.0 0.0 1.0 -1.0 0.0 0.0 -1.0'/>
 86                      </IndexedFaceSet>
 87                 </Shape>
 88                 <Transform translation='0.0 1.0 1.2'>
 89                      <Billboard>
 90                           <Shape>
 91                                <Appearance USE='FntColor'/>
 92                                <Text string='"1.57"'>
 93                                     <FontStyle USE='FntStyle'/>
 94                                </Text>
 95                           </Shape>
 96                           <Transform USE='bendAngleLabel'/>
 97                      </Billboard>
 98                 </Transform>
 99            </Transform>
100 
          <!-- ROUTE information for PS node:  [from translation_changed to Scr.set_translation ] -->
          <PlaneSensor DEF='PSdescription='Select and drag upper halves of quads to change creaseAngle and shadingmaxPosition='6.283 1.57'/>
101 
          <!-- ROUTE information for Scr node:  [from PS.translation_changed to set_translation ] [from fraction_changed to CI.set_fraction ] [from label_changed to bendAngle.set_string ] -->
          <Script DEF='Scr'>
102                 <field name='label_changedtype='MFStringaccessType='outputOnly'/>
103                 <field name='set_translationtype='SFVec3faccessType='inputOnly'/>
104                 <field name='fraction_changedtype='SFFloataccessType='outputOnly'/>
  <![CDATA[
      
ecmascript:
        function set_translation( tran, et )
        {
            tempCA = tran[0] / 4.0;
            if ( tempCA < 0.00 ) tempCA = 0.0;
            if ( tempCA > 1.57 ) tempCA = 1.57;
            fraction_changed = tempCA;
            // Hacks to get truncation/formatting
            tempCA = (Math.floor(tempCA*1000)/1000.0);
            if ( (tempCA > 0.1) && (tempCA < 1.0) )
                tempCA = '0' + tempCA;
            if ( tempCA <= 0.0 )
                tempCA = tempCA + '.' + '0';
            label_changed[0] = tempCA;
        }

    
]]>
106            </Script>
107 
          <!-- ROUTE information for CI node:  [from Scr.fraction_changed to set_fraction ] [from value_changed to Crd1.set_point ] [from value_changed to Crd2.set_point ] [from value_changed to Crd3.set_point ] -->
          <CoordinateInterpolator DEF='CIkey='0.0 1.57keyValue='0.0 0.0 1.0 0.0 1.0 1.0 0.0 2.0 1.0 0.0 2.0 -1.0 0.0 1.0 -1.0 0.0 0.0 -1.0 0.0 0.0 1.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0 0.0 1.0 -1.0 0.0 0.0 -1.0'/>
108            < ROUTE  fromNode='PS' fromField='translation_changed' toNode='Scr' toField='set_translation'/>
109            < ROUTE  fromNode='Scr' fromField='fraction_changed' toNode='CI' toField='set_fraction'/>
110            < ROUTE  fromNode='Scr' fromField='label_changed' toNode='bendAngle' toField='set_string'/>
111            < ROUTE  fromNode='CI' fromField='value_changed' toNode='Crd1' toField='set_point'/>
112            < ROUTE  fromNode='CI' fromField='value_changed' toNode='Crd2' toField='set_point'/>
113            < ROUTE  fromNode='CI' fromField='value_changed' toNode='Crd3' toField='set_point'/>
114       </Scene>
115  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: bendAngle, bendAngleLabel, CI, Crd1, Crd2, Crd3, FntColor, FntStyle, PS, Scr, White

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2
-->
X3D Tooltips element index: Appearance, Billboard, Coordinate, CoordinateInterpolator, DirectionalLight, field, FontStyle, head, IndexedFaceSet, Material, meta, NavigationInfo, PlaneSensor, ROUTE, Scene, Script, Shape, Text, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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

PS
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
Scr
Script
set_translation
SFVec3f
then
 
 
 
Scr
Script
fraction_changed
SFFloat

ROUTE
event to
(2)
CI
CoordinateInterpolator
set_fraction
SFFloat
then
 
 
 
CI
CoordinateInterpolator
value_changed
MFVec3f

ROUTE
event to
(3)
Crd1
Coordinate
set_point
MFVec3f
  then
 
 
 
CI
CoordinateInterpolator
value_changed
MFVec3f

ROUTE
event to
(3)
Crd2
Coordinate
set_point
MFVec3f
  then
 
 
 
CI
CoordinateInterpolator
value_changed
MFVec3f

ROUTE
event to
(3)
Crd3
Coordinate
set_point
MFVec3f
  then
 
 
 
Scr
Script
label_changed
MFString

ROUTE
event to
(2)
bendAngle
Text
set_string
MFString
Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/CreaseAngleIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/CreaseAngle.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)
-->

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