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

Andreas Plesch andreasplesch at gmail.com
Sun Sep 24 09:55:22 PDT 2017


On Sun, Sep 24, 2017 at 11:14 AM, Andreas Plesch <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>> 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>
>>>
>>>              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>
>>>
>>>              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>
>>>
>>>     Also updated diagram notes:
>>>
>>>              X3D Event-Utility Node Diagrams
>>>     http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-E
>>> ventUtilitiesScripting/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>
>>>         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>
>>>         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>>> 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/P
>>> art01/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>>>> 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/P
>>> art01/concepts.html#Events <http://www.web3d.org/document
>>> s/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/document
>>> s/specifications/19775-1/V3.3/Part01/concepts.html#Events>>
>>>                           <http://www.web3d.org/document
>>> s/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/document
>>> s/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>>>> wrote:
>>>
>>>             http://www.web3d.org/documents/specifications/19775-1/V3.3/P
>>> art01/components/utils.html#BooleanToggle <http://www.web3d.org/document
>>> s/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/document
>>> s/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#BooleanTog
>>> gle <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/cont
>>> ent/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/cont
>>> ent/X3dTooltips.html#BooleanToggle> <http://www.web3d.org/x3d/cont
>>> ent/X3dTooltips.html#BooleanToggle <http://www.web3d.org/x3d/cont
>>> ent/X3dTooltips.html#BooleanToggle>>>
>>>
>>>                               does not mention this and the diagram at
>>>             http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-E
>>> ventUtilitiesScripting/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/exampl
>>> es/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEve
>>> ntUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/exampl
>>> es/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEve
>>> ntUtilityNodeEventDiagrams.pdf> <http://x3dgraphics.com/exampl
>>> es/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEve
>>> ntUtilityNodeEventDiagrams.pdf <http://x3dgraphics.com/exampl
>>> es/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEve
>>> ntUtilityNodeEventDiagrams.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>
>>>     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
>>>
>>
>>
>> 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
>>
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>



-- 
Andreas Plesch
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170924/3037d261/attachment-0001.html>


More information about the x3d-public mailing list