SoTimeCounter(3IV)NAMESoTimeCounter (SoTimeCounter) - timed integer counter
INHERITS FROM
SoBase > SoFieldContainer > SoEngine > SoTimeCounterSYNOPSIS
#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)
Page 1SoTimeCounter(3IV)
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
Page 2SoTimeCounter(3IV)
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.
Page 3SoTimeCounter(3IV)OUTPUTS
(SoSFShort) output
Counts min-to-max, in step increments.
(SoSFTrigger) syncOut
Triggers at cycle start.
FUNCTIONSSoTimeCounter * 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
Page 4