[x3d-public] TimeTrigger [was: BooleanToggle output]

Don Brutzman brutzman at nps.edu
Mon Sep 25 05:43:34 PDT 2017


Scene worked as you described in InstantReality as well.

On 9/24/2017 9:55 AM, Andreas Plesch wrote:
> On Sun, Sep 24, 2017 at 11:14 AM, Andreas Plesch <andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>> wrote:
> 
>         ...
> 
> 
>             Looking into TimeTrigger next.
> 
> 
> 
> I put together a simple TimeTrigger test scene:
> 
> http://x3dom-timetrigger.glitch.me/TimeTrigger_test.x3d
> 
> and implemented the TimeTrigger node for x3dom:
> 
> https://x3dom-timetrigger.glitch.me/
> 
> 
>         same as point (2), only honoring true events for simplicity and logical clarity.
> 
> 
>     Agreed in general. Likely browsers currently also honor false events but will test.
> 
> 
> The test will trigger a time event for isOver TouchSensor input and then starts a color animation to announce the triggering.
> 
> All tested browser (Octaga, view3dscene, x_ite) trigger a time event upon receiving a isOver=false input, eg. when moving the mouse out of the cone.
> 
> This is probably because they interpret the sentence in 30.4.7
> 
> "The value of /set_boolean/ shall be ignored."
> 
> to mean that the value of set_boolean shall not bear on the decision to trigger or not.
> 
> This is just for confirmation, and not a proposal to maintain this behavior.
> 
> -Andreas
> 
>         Feels like we got another step closer, thanks...
> 
>         Once we have all this distilled in Mantis issue capturing best-effort prose, it will hopefully be straightforward to confirm resolution.
> 
> 
>     I do not have a sense of how widely the event utilities are used, eg. what the impact of such a resolution would be. I think it would be a positive change but a change nonetheless recognizing that this is the behaviour as it was originally intended.
> 
>     -Andreas
> 
>             On Sat, Sep 23, 2017 at 2:00 PM, Don Brutzman <brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>>> wrote:
> 
>                  Made some further improvements to tooltips.  Also added toggle_changed outputOnly event description to BooleanToggle.
> 
>                  When directly changing inputOutput fields, had mistaken identification of output event names in previous posts.  Two corrections:
> 
>                           BooleanToggle
>                           [toggle] Hint: directly resetting the toggle field generates a corresponding toggle_changed output event.
>             http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>>
> 
>                           IntegerTrigger
>                           [integerKey] Hint: directly resetting the integerKey field generates a corresponding triggerValue output event.
>             http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger> <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger>>
> 
>                           TimeTrigger
>             http://www.web3d.org/x3d/content/X3dTooltips.html#TimeTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#TimeTrigger> <http://www.web3d.org/x3d/content/X3dTooltips.html#TimeTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#TimeTrigger>>
> 
>                  For all three of these (but not for BooleanFilter):
> 
>                           [set_boolean] Hint: input event set_boolean false has no effect.
> 
>                  Changed status of prior Mantis issues 519, 520 to indicated current and related.
>             http://www.web3d.org/member-only/mantis/view.php?id=519 <http://www.web3d.org/member-only/mantis/view.php?id=519> <http://www.web3d.org/member-only/mantis/view.php?id=519 <http://www.web3d.org/member-only/mantis/view.php?id=519>>
> 
>                  Also updated diagram notes:
> 
>                           X3D Event-Utility Node Diagrams
>             http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf>>
> 
>                  Subject to specification-team review and resolution of Mantis issues, it appears that these are pretty well set now... hope so.
> 
>                  Further scrutiny remains welcome!
> 
>                  p.s. Roy, these corrections also pertain to the pending new mantis issues when they get added.  I can apply them later if you prefer.
> 
> 
>                  On 9/22/2017 5:58 PM, Don Brutzman wrote:
> 
>                      On 9/22/2017 3:20 PM, Andreas Plesch wrote:
> 
>                          I agree, IntegerTrigger would also require such a statement.
> 
> 
>                      Very good, tooltips updated.
> 
>             http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>>
>                      toggle: "Persistent state value that gets toggled or reset. Resetting the toggle field generates a corresponding toggle field output event."
> 
>             http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger> <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger <http://www.web3d.org/x3d/content/X3dTooltips.html#IntegerTrigger>>
>                      integerKey: "integerKey is value for output when triggered. Resetting the integerKey field generates a corresponding integerKey field output event."
> 
> 
>                          Since I have implemented IntegerTrigger now for x3dom, and recognize its utility for choosing a switch option, it is less obvious to me that resetting its value should always also lead to output of that value.
> 
>                          The more conservative approach would be to leave this decision to the author. If a new value is provided to the IntegerTrigger node, the same new value can also always be provided to another node.
> 
>                          But since players currently do forward these inputs as outputs, there may be a event cascade requirement or similar.
> 
> 
>                      It is this last case that pertains.  See discussion regarding 4.4.8.1 Events below for requirement.
> 
>                      Since it is required, it is helpful for us to list this in specification and tooltips so that implementations and expectations are all consistent for everyone.
> 
>                      Spec feedback submissions follow.  Again thanks.
> 
> 
>                          On Sep 20, 2017 10:20 AM, "Don Brutzman" <brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>>>> wrote:
> 
>                               This is an excellent improvement, we should submit a spec change.
> 
>                               Am thinking that similar wording should be provided for IntegerTrigger integerKey field, e.g.
> 
>                                        "Resetting the /integerKey/ field generates a
>                               corresponding /integerKey/ field output event."
> 
>             http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#IntegerTrigger>>>
> 
>                               ==============================================
>                               30.4.6 IntegerTrigger
> 
>                               IntegerTrigger : X3DTriggerNode {
>                                  SFBool  [in]     set_boolean
>                                  SFInt32 [in,out] integerKey   -1   (-∞,∞)
>                                  SFNode  [in,out] metadata     NULL [X3DMetadataObject]
>                                  SFInt32 [out]    triggerValue
>                               }
> 
>                               IntegerTrigger handles single field Boolean events to set an integer value for the output event. This is useful for connecting environmental events to the Switch node's whichChoice field.
> 
>                               Upon receiving a set_boolean event, the IntegerTrigger node will generate a triggerValue event with the current value of integerKey. The value of set_boolean shall be ignored.
>                               ==============================================
> 
> 
>                               On 9/18/2017 10:39 AM, Andreas Plesch wrote:
> 
>                                   Sending output fields upon value changes is how the browsers I tested behaved. Although to me the sentence in 4.4.8.1 which addresses this behaviour and begins with "Nodes also define output fields .." is more explanatory than defining and seems to be intended to leave the exact behavior specification to node definitions. Here is suggested wording to help clarify 30.4.3:
> 
>                                   The BooleanToggle can be reset to a specific state by directly setting the value of the inputOutput /toggle/ field. Resetting the /toggle/ field generates a corresponding /toggle/ field output event.
> 
>                                   There is probably a better and/or more concise phrase to add.
> 
>                                   -Andreas
> 
>                                   On Mon, Sep 18, 2017 at 12:46 PM, Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>>> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>>>>> wrote:
> 
>                                        Thank you Andreas.  Looks like you have identified an ambiguity in the spec
>                                        that might benefit from clarification.
> 
>                                        Since the first paragraph specifically identified output events, and the
>                                        second paragraph on "reset" did not, my interpretation was that no event was
>                                        sent as part of a reset.  That informed the tooltips and diagram notes.     However, checking event model rules:
>             http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events>>>
>                                        <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Events>>>>
> 
> 
>                                                4.4.8 Event model
> 
>                                                  4.4.8.1 Events
> 
>                                            /Events/ are the primary means of generating behaviors in the X3D run-time
>                                            environment. Events are used throughout X3D: driving time-based
>                                            animations; handling object picking; detecting user movement and
>                                            collision; changing the scene graph hierarchy. The run-time environment
>                                            manages the propagation of events through the system according to a
>                                            well-defined set of rules.
> 
>                                            Nodes define input fields (/i.e./, fields with inputOutput or inputOnly
>                                            access) that trigger behavior. When a given event occurs, the node
>                                            receives notification and can potentially change internal state and the
>                                            value of one or more of its fields. *Nodes also define output fields
>                                            (/i.e./, fields with inputOutput or outputOnly access) that are sent upon
>                                            signal state changes or other occurrences within the node.* Events sent to
>                                            input fields and events sent by output fields are referred to collectively
>                                            in ISO/IEC 19775 as /Events/.
> 
> 
>                                        The bolded sentence (beginning with "Nodes also define output fields... that
>                                        are sent upon signal state changes" ...) indicates that a corresponding
>                                        output event should be sent when the value is changed.
> 
>                                        Subject to review, am happy to make the tooltips and diagram notes more
>                                        explicit in this matter.  We should likely also add words to spec to avoid
>                                        indirect ambiguity and explicitly add clarity.
> 
>                                        all the best, Don
> 
> 
> 
>                                        On Sep 16, 2017, at 4:20 PM, Andreas Plesch <andreasplesch at gmail.com <mailto:andreasplesch at gmail.com> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>>>
>                                        <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com> <mailto:andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>>>>> wrote:
> 
>             http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle>>>
>                                            <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#BooleanToggle>>>>
> 
> 
>                                            produces a toggle output event after it receives a set_boolean event.
> 
>                                            Does it also produce a toggle output event after it receives a toggle
>                                            input event (to reset the toggle field value) ?
> 
>             http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>>>
>                                            <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/content/X3dTooltips.html#BooleanToggle>>>>
> 
>                                            does not mention this and the diagram at
>             http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf>> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf>>>
>                                            <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf>> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf
>             <http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf>>>>
> 
>                                            also seems silent.
> 
>                                            Not sure if there are examples which reset the internal value of the
>                                            toggle field ?
> 
>                                            Andreas
> 
> 
>                      all the best, Don
> 
> 
> 
>                  all the best, Don
>                  --     Don Brutzman  Naval Postgraduate School, Code USW/Br brutzman at nps.edu <mailto:brutzman at nps.edu> <mailto:brutzman at nps.edu <mailto:brutzman at nps.edu>>
>                  Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149 <tel:%2B1.831.656.2149> <tel:%2B1.831.656.2149>
>                  X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman <http://faculty.nps.edu/brutzman> <http://faculty.nps.edu/brutzman <http://faculty.nps.edu/brutzman>>
> 
> 
> 
> 
>             -- 
>             Andreas Plesch
>             Waltham, MA 02453
> 
> 
> 
>         all the best, Don
>         -- 
>         Don Brutzman  Naval Postgraduate School, Code USW/Br brutzman at nps.edu <mailto:brutzman at nps.edu>
>         Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149 <tel:%2B1.831.656.2149>
>         X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman <http://faculty.nps.edu/brutzman>
> 
> 
> 
> 
>     -- 
>     Andreas Plesch
>     Waltham, MA 02453
> 
> 
> 
> 
> -- 
> Andreas Plesch
> Waltham, MA 02453


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the x3d-public mailing list