SoOneShot(3IV)

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