SoOneShot(3IV)

SoOneShot - timer that runs for a pre-set amount of time

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoOneShot - timer that runs for a pre-set amount of time

INHERITS FROM
     SoBase > SoFieldContainer > SoEngine > SoOneShot

SYNOPSIS
     #include <Inventor/engines/SoOneShot.h>

     enum Flags {
          SoOneShot::RETRIGGERABLE  Can start over during the cycle
          SoOneShot::HOLD_FINAL     Output values stay high after cycle
     }

          Inputs from class SoOneShot:

     SoSFTime            timeIn
     SoSFTime            duration
     SoSFTrigger         trigger
     SoSFBitMask         flags
     SoSFBool            disable

          Outputs from class SoOneShot:

     (SoSFTime)          timeOut
     (SoSFBool)          isActive
     (SoSFFloat)         ramp

          Methods from class SoOneShot:

                         SoOneShot()

          Methods from class SoEngine:

     static SoType       getClassTypeId()
     virtual int         getOutputs(SoEngineOutputList &list) const
     SoEngineOutput *    getOutput(const SbName &outputName) const
     SbBool              getOutputName(const SoEngineOutput *output, SbName
                              &outputName) const
     SoEngine *          copy() const
     static SoEngine *   getByName(const SbName &name)
     static int          getByName(const SbName &name, SoEngineList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const SoFieldContainer *fc, SbBool
                              copyConnections = FALSE)
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName)
                              const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


DESCRIPTION
     This engine is a timer that runs for a pre-set amount of time and then
     stops. By default, the timeIn input is connected to the realTime global
     field. It can, however, by connected to any other time source.

     The timer is started when the trigger input is touched. It then runs for
     the specified duration, and updates the timeOut output with the time that
     has elapsed. During that time, the ramp output is also updated. The ramp
     output starts at 0.0 at the beginning of the cycle, and linearly
     increases until it reaches 1.0 at the end of the cycle.

     You can disable the timer by setting the disable input to TRUE. The
     output value remains 0.0 while the timer is disabled. If the timer is
     disabled in the middle of a cycle the output values will be set to 0.0.

     The flags input contains control flags. Using the flags you can set the
     timer to be retriggerable in the middle of a cycle, and set the output
     values to stay high after the cycle has been completed. By default, these
     flags are not set.

INPUTS
     SoSFTime            timeIn
          Running time.

     SoSFTime            duration
          Duration of the active cycle.

     SoSFTrigger         trigger
          Start the cycle. The trigger will be ignored if it is touched in the
          middle of a cycle and the RETRIGGERABLE flag is not set.

     SoSFBitMask         flags
          Control flags.

     SoSFBool            disable
          If TRUE, the timer is disabled.


OUTPUTS
     (SoSFTime)          timeOut
          Elapsed time from the start.

     (SoSFBool)          isActive
          Is TRUE during the active cycle.

     (SoSFFloat)         ramp
          Ramps linearly from 0.0 to 1.0.


METHODS
                         SoOneShot()
          Constructor


FILE FORMAT/DEFAULTS
     OneShot {
          duration  1
          trigger
          flags     ()
          disable   FALSE
          timeIn    <current time>
     }

SEE ALSO
     SoElapsedTime, SoEngineOutput