Skip to content
Snippets Groups Projects
BooleanGenerator.wrl 11.91 KiB
#VRML V2.0 utf8
# X3D-to-VRML-97 XSL translation autogenerated by X3dToVrml97.xsl
# http://www.web3D.org/TaskGroups/x3d/translation/X3dToVrml97.xsl

# [X3D] VRML V3.0 utf8

# [head]
# [meta] filename: FilterExamples.x3d
# [meta] description: Contains examples for the prototypes defined in the FilterPrototypes.x3d
# [meta] author: Don Brutzman, James Harney, Jane Wu
# [meta] created: 18 December 2001
# [meta] revised: 27 October 2002
# [meta] reference: http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterPrototypes.x3d
# [meta] keywords: filter
# [meta] url: http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterExamples.x3d
# [meta] generator: X3D-Edit, http://www.web3d.org/TaskGroups/x3d/translation/README.X3D-Edit.html


EXTERNPROTO BooleanSequencer [
  # Regular interpolator-style input
  eventIn      SFFloat	set_fraction	# [appInfo] typically range [0..1]
  # When Script node supports exposedField, then it would be better to change key to exposedField.
  eventIn      MFFloat	set_key
  field        MFFloat	key		# [appInfo] Array sequentially increasing, typically [0..1].  Must have the same number of keys as keyValues.
  eventOut     MFFloat	key_changed
  # When Script node supports exposedField, then it would be better to change keyValue to exposedField.
  eventIn      SFString	set_keyValue
  field        SFString	keyValue	# [appInfo] Array of Boolean values (implemented as SFString).  Must have the same number of keys as keyValues.
  eventOut     SFString	keyValue_changed
  # Regular interpolator-style output
  eventOut     SFBool	value_changed
  # Utility methods
  eventIn      SFBool	previous
  eventIn      SFBool	next
][
      "BooleanSequencerPrototype.wrl#BooleanSequencer"
      "/www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.wrl#BooleanSequencer"
      "c:/www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.wrl#BooleanSequencer"
"http://www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.wrl#BooleanSequencer"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Animation/BooleanSequencerPrototype.wrl#BooleanSequencer"
      "BooleanSequencerPrototype.x3d#BooleanSequencer"
      "/www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.x3d#BooleanSequencer"
      "c:/www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.x3d#BooleanSequencer"
"http://www.web3D.org/TaskGroups/x3d/translation/examples/development/BooleanSequencerPrototype.x3d#BooleanSequencer"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Animation/BooleanSequencerPrototype.x3d#BooleanSequencer"
	# CosmoPlayer/Netscape 4.79 url bug workaround:
	"file:///c|\www.web3D.org\TaskGroups\x3d\translation\examples\development\BooleanSequencerPrototype.wrl#BooleanSequencer"
 ]

  # [Scene]

EXTERNPROTO FilterBooleanPassTrueEvents [
  # nodeType Script

  eventIn      SFBool	setBoolean
  eventOut     SFBool	trueEventOut
  eventOut     SFTime	trueEventTime
][
  "FilterPrototypes.wrl#FilterBooleanPassTrueEvents"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterPrototypes.wrl#FilterBooleanPassTrueEvents"
"FilterPrototypes.x3d#FilterBooleanPassTrueEvents"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterPrototypes.x3d#FilterBooleanPassTrueEvents"

 ]
EXTERNPROTO FilterBooleanPassFalseEvents [
  # nodeType Script

  eventIn      SFBool	setBoolean
  eventOut     SFBool	falseEventOut
  eventOut     SFTime	falseEventTime
][
  "FilterPrototypes.wrl#FilterBooleanPassFalseEvents"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterPrototypes.wrl#FilterBooleanPassFalseEvents"
"FilterPrototypes.x3d#FilterBooleanPassFalseEvents"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/FilterPrototypes.x3d#FilterBooleanPassFalseEvents"

 ]
EXTERNPROTO SingleTypeConversion [
  # nodeType Script

  field        SFInt32	decimalPlaces
  eventIn      SFInt32	setDecimalPlaces
  eventIn      SFBool	BooleanValue
  eventIn      SFFloat	FloatValue
  eventIn      SFInt32	IntegerValue
  eventIn      SFTime	TimeValue
  eventOut     SFBool	BooleanResult
  eventOut     SFFloat	FloatResult
  eventOut     SFInt32	IntegerResult
  eventOut     SFTime	TimeResult
  eventOut     SFString	StringResult
  eventOut     MFString	StringsResult
][
  "SingleTypeConversion.wrl#SingleTypeConversion"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/SingleTypeConversion.wrl#SingleTypeConversion"
"SingleTypeConversion.x3d#SingleTypeConversion"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Authoring/SingleTypeConversion.x3d#SingleTypeConversion"
 ]
EXTERNPROTO SliderFloat [
  # nodeType Group

  field        SFString	layoutDirection
  field        SFFloat	height
  field        SFFloat	radius
  field        SFFloat	barRadius
  field        SFColor	sliderBarColor
  field        SFColor	sliderBallColor
  field        SFColor	sliderEndColor
  field        SFFloat	min
  field        SFFloat	max
  field        SFFloat	value
  eventIn      SFFloat	setMin
  eventIn      SFFloat	setMax
  eventIn      SFFloat	setValue
  eventOut     SFFloat	valueChanged
  field        SFBool	dragEnabled
  eventIn      SFBool	setDragEnabled
  eventOut     SFBool	dragEnabledChanged
  field        SFBool	clickEnabled
  eventIn      SFBool	setClickEnabled
  eventOut     SFBool	clickEnabledChanged
][
  "../../Tools/Animation/SliderFloatPrototype.wrl#SliderFloat"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Animation/SliderFloatPrototype.wrl#SliderFloat"
"../../Tools/Animation/SliderFloatPrototype.x3d#SliderFloat"
"http://web.nps.navy.mil/~brutzman/Savage/Tools/Animation/SliderFloatPrototype.x3d#SliderFloat"
 ]
Viewpoint {
  description "Filter Examples"
  position 0 0 15
}
NavigationInfo {
  type [ "EXAMINE" "ANY" ]
}
Billboard {
  axisOfRotation 0 0 0
  children [
      Transform {
        translation 0 4 0
        children [
            Shape {
              appearance Appearance {
                material Material {
                  diffuseColor 0 1 1
                }
              }
              geometry Text {
                string [ "FilterBooleanPassTrueEvents," 
"FilterBooleanPassFalseEvents:"
""
"drag slider to test examples" ]
                fontStyle FontStyle {
                  justify [ "MIDDLE" "MIDDLE" ]
                  size 0.8
                }
              }
            }
         ]
      }
      Transform {
        translation 0 1 0
        children [
            Shape {
              appearance Appearance {
                material Material {
                }
              }
              geometry Text {
                string [ "BooleanSequencer:"
"key {0, 0.25, 0.5, 0.75, 1} keyValue {0, 1, 0, 1, 0}" ]
                fontStyle FontStyle {
                  justify [ "MIDDLE" "MIDDLE" ]
                  size 0.6
                }
              }
            }
            DEF BooleanGenerator BooleanSequencer {
              key [ 0, 0.25, 0.5, 0.75, 1 ]
              keyValue "false true false true false"
            }
         ]
      }
      Transform {
        translation -4 -1 0
        children [
            Shape {
              appearance Appearance {
                material Material {
                }
              }
              geometry Text {
                string [ "Fraction:" ]
                fontStyle FontStyle {
                  size 0.6
                }
              }
            }
            Transform {
              translation 3 0 0
              children [
                  Shape {
                    appearance Appearance {
                      material Material {
                      }
                    }
                    geometry DEF BooleanFractionText Text {
                      string [ "N/A" ]
                      fontStyle FontStyle {
                        size 0.6
                      }
                    }
                  }
               ]
            }
            Transform {
              translation 6 0.15 0
              children [
                  DEF Slider SliderFloat {
                    layoutDirection  "horizontal"
                    min  0
                    max  1
                    height  4
                  }
               ]
            ROUTE Slider.valueChanged TO BooleanGenerator.set_fraction
            }
            DEF BooleanFractionRoundOff SingleTypeConversion {
              decimalPlaces  2
            }
         ]
      ROUTE Slider.valueChanged TO BooleanFractionRoundOff.FloatValue
      ROUTE BooleanFractionRoundOff.StringsResult TO BooleanFractionText.set_string
      }
      Transform {
        translation -5 -3 0
        children [
            Shape {
              appearance Appearance {
                material Material {
                }
              }
              geometry Text {
                string [ "PassTrueEvents:" ]
                fontStyle FontStyle {
                  size 0.6
                }
              }
            }
            Transform {
              translation 3.85 0.15 0
              children [
                  Shape {
                    appearance Appearance {
                      material DEF TrueLightMaterial Material {
                        diffuseColor 0.45 0.45 0.45
                        emissiveColor 0.45 0.45 0.45
                      }
                    }
                    geometry Sphere {
                      radius 0.2
                    }
                  }
                  DEF TrueScript Script {
                    eventIn      SFBool	setTrue
                    eventOut     SFColor	colorChanged
url [ "javascript:

var r, g, b;
function initialize(timeStamp)
{
	r = 0;
	g = 0;
	b = 0;
}

function setTrue(value, timeStamp)
{
	if ( r >= 0.5)
		r = 0.25;
	else
		r = r + 0.25;

	if ( b >= 0.5)
		b = 0.25;
	else
		b = b + 0.25;

	colorChanged = new SFColor(r, g, b);
}
" ]
                  }
                  DEF TrueEventFilter FilterBooleanPassTrueEvents {
                  }
               ]
            ROUTE BooleanGenerator.value_changed TO TrueEventFilter.setBoolean
            ROUTE TrueEventFilter.trueEventOut TO TrueScript.setTrue
            ROUTE TrueScript.colorChanged TO TrueLightMaterial.diffuseColor
            ROUTE TrueScript.colorChanged TO TrueLightMaterial.emissiveColor
            }
         ]
      }
      Transform {
        translation 0 -3 0
        children [
            Shape {
              appearance Appearance {
                material Material {
                }
              }
              geometry Text {
                string [ "PassFalseEvents:" ]
                fontStyle FontStyle {
                  size 0.6
                }
              }
            }
            Transform {
              translation 4 0.15 0
              children [
                  Shape {
                    appearance Appearance {
                      material DEF FalseLightMaterial Material {
                        diffuseColor 0.45 0.45 0.45
                        emissiveColor 0.45 0.45 0.45
                      }
                    }
                    geometry Sphere {
                      radius 0.2
                    }
                  }
                  DEF FalseScript Script {
                    eventIn      SFBool	setFalse
                    eventOut     SFColor	colorChanged
url [ "javascript:

var r, g, b;
function initialize(timeStamp)
{
	r = 0;
	g = 0;
	b = 0;
}

function setFalse(value, timeStamp)
{
	if ( g >= 0.5)
		g = 0.25;
	else
		g = r + 0.25;
	if ( b >= 0.5)
		b = 0.25;
	else
		b = b + 0.25;

	colorChanged = new SFColor(r, g, b);
}
" ]
                  }
                  DEF FalseEventFilter FilterBooleanPassFalseEvents {
                  }
               ]
            ROUTE BooleanGenerator.value_changed TO FalseEventFilter.setBoolean
            ROUTE FalseEventFilter.falseEventOut TO FalseScript.setFalse
            ROUTE FalseScript.colorChanged TO FalseLightMaterial.diffuseColor
            ROUTE FalseScript.colorChanged TO FalseLightMaterial.emissiveColor
            }
         ]
      }
   ]
}