Scroll to navigation

SoOneShot(3IV)() 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