SoTimeCounter(3IV)

SoTimeCounter (SoTimeCounter) - timed integer counter

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoTimeCounter (SoTimeCounter) - timed integer counter

INHERITS FROM
     SoBase > SoFieldContainer > SoEngine > SoTimeCounter

SYNOPSIS
     #include <Inventor_c/engines/SoTimeCounter.h>

          Inputs from class SoTimeCounter:

     SoSFTime            timeIn
     SoSFShort           min
     SoSFShort           max
     SoSFShort           step
     SoSFBool            on
     SoSFFloat           frequency
     SoMFFloat           duty
     SoSFShort           reset
     SoSFTrigger         syncIn

          Outputs from class SoTimeCounter:

     (SoSFShort)         output
     (SoSFTrigger)       syncOut

          Functions from class SoTimeCounter:

     SoTimeCounter *     SoTimeCounterCreate()

          Functions from class SoEngine:

     SoType              SoTimeCounterGetTypeId()
     int                 SoTimeCounterGetOuts(const SoTimeCounter *this,
                              SoEngineOutputList *list)
     SoEngineOutput *    SoTimeCounterGetOut(const SoTimeCounter *this, const
                              char *outputName)
     SbBool              SoTimeCounterGetOutName(const SoTimeCounter *this,
                              const SoEngineOutput *output, SbName
                              *outputName)
     SoEngine *          SoTimeCounterCopy(const SoTimeCounter *this)
     SoEngine *          SoTimeCounterGetByName(const char *name)
     int                 SoTimeCounterGetByNameList(const char *name,
                              SoEngineList *list)

          Functions from class SoFieldContainer:

     SoType              SoTimeCounterGetClassTypeId()
     void                SoTimeCounterSetToDflts(SoTimeCounter *this)
     SbBool              SoTimeCounterHasDfltVals(const SoTimeCounter *this)
     SbBool              SoTimeCounterFldsAreEq(const SoTimeCounter *this,
                              const SoFieldContainer *fc)
     void                SoTimeCounterCopyFieldVals(SoTimeCounter *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoTimeCounterSet(SoTimeCounter *this, const char
                              *fieldDataString)
     void                SoTimeCounterGet(SoTimeCounter *this, SbString
                              *fieldDataString)
     int                 SoTimeCounterGetFields(const SoTimeCounter *this,
                              SoFieldList *resultList)
     SoField *           SoTimeCounterGetField(const SoTimeCounter *this,
                              const char *fieldName)
     SbBool              SoTimeCounterGetFieldName(const SoTimeCounter *this,
                              const SoField *field, SbName *fieldName)
     SbBool              SoTimeCounterIsNotifyEnabled(const SoTimeCounter
                              *this)
     SbBool              SoTimeCounterEnableNotify(SoTimeCounter *this, SbBool
                              flag)

          Functions from class SoBase:

     void                SoTimeCounterRef(SoTimeCounter *this)
     void                SoTimeCounterUnref(const SoTimeCounter *this)
     void                SoTimeCounterUnrefNoDelete(const SoTimeCounter *this)
     void                SoTimeCounterTouch(SoTimeCounter *this)
     SbBool              SoTimeCounterIsOfType(const SoTimeCounter *this,
                              SoType type)
     void                SoTimeCounterSetName(SoTimeCounter *this, const char
                              *name)
     SbName              SoTimeCounterGetName(const SoTimeCounter *this)


DESCRIPTION
     This engine is a counter that outputs numbers, starting at a minimum
     value, increasing by a step value, and ending with a number that does not
     exceed the maximum value. When the maximum number is reached, it starts
     counting from the beginning again.

     The difference between this engine and the SoCounter engine, is that this
     engine also has a timeIn input, which allows the counting cycles to be
     timed. This engine counts automatically over time; it does not need to be
     triggered to go to the next step. By default, the timeIn input is
     connected to the realTime global field. It can, however, be connected to
     any time source.

     The frequency input field controls how many min-to-max cycles are
     performed per second. For example, a frequency value of 0.5 means that it
     will take 2 seconds to complete a single min-to-max cycle.

     The steps in the count cycle do not necessarily all have the same
     duration. Using the duty input field, you can arbitrarily split the time
     period of the count cycle between the steps. For example, if there are 5
     steps in the cycle, a duty input of (1., 2., 2., 2., 1.) will make the
     second, third, and fourth steps take twice as long as the first and last
     steps.

     At any time the counter can be reset to a specific value. If you set the
     reset input field to a value, the engine will continue counting from
     there. Note that the counter will always output numbers based on the min,
     max and step values, and setting the reset value does not affect the
     those input fields. If the reset value is not a legal counter value, the
     counter will still behave as though it is:

          If reset is greater than max, the counter is set to max.
          If reset is less than min, the counter is set to min.
          If reset is between step values, the counter is set to the lower step.

     Each time a counting cycle is started, the syncOut output is triggered.
     This output can be used to synchronize some other event with the counting
     cycle. Other events can also synchronize the counter by triggering the
     syncIn input.

     You can pause the engine, by setting the on input to FALSE, and it will
     stop updating the output field. When you turn off the pause, by setting
     on to TRUE, it will start counting again from where it left off.

INPUTS
     SoSFTime            timeIn
          Running time.

     SoSFShort           min
          Minimum value for the counter.

     SoSFShort           max
          Maximum value for the counter.

     SoSFShort           step
          Counter step value.

     SoSFBool            on
          Counter pauses if this is set to FALSE.

     SoSFFloat           frequency
          Number of min-to-max cycles per second.

     SoMFFloat           duty
          Duty cycle values.

     SoSFShort           reset
          Reset the counter to the specified value.

     SoSFTrigger         syncIn
          Restart at the beginning of the cycle.

OUTPUTS
     (SoSFShort)         output
          Counts min-to-max, in step increments.

     (SoSFTrigger)       syncOut
          Triggers at cycle start.


FUNCTIONS
     SoTimeCounter *     SoTimeCounterCreate()
          Constructor


FILE FORMAT/DEFAULTS
     TimeCounter {
          min        0
          max        1
          step       1
          on         TRUE
          frequency  1
          duty       1
          timeIn     <current time>
          syncIn
          reset      0
     }

SEE ALSO
     SoCounter, SoElapsedTime, SoEngineOutput