SoTimeCounter Class |
Timed integer counter.
Namespace: OIV.Inventor.Engines
The SoTimeCounter type exposes the following members.
Name | Description | |
---|---|---|
SoTimeCounter | Constructor. |
Name | Description | |
---|---|---|
Copy | Creates and returns an exact copy of the engine. | |
CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) | |
CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. | |
Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) | |
EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. | |
Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. | |
GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. | |
GetEventIn | Returns a the eventIn with the given name. | |
GetEventOut | Returns the eventOut with the given name. | |
GetField | Returns a the field of this object whose name is fieldName. | |
GetFieldName | Returns the name of the given field in the fieldName argument. | |
GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetName | Returns the name of an instance. | |
GetOutput | Returns a reference to the engine output with the given name. | |
GetOutputName | Returns (in outputName) the name of the engine output (output). | |
GetOutputs | Returns a list of outputs in this engine. | |
GetStringName | (Inherited from SoBase.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
HasDefaultValues | Returns true if all of the object's fields have their default values. | |
IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. | |
IsSynchronizable | Gets the ScaleViz synchronizable state of this object. | |
Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. | |
SetName | (Inherited from SoBase.) | |
SetSynchronizable | Sets this to be a ScaleViz synchronizable object. | |
SetToDefaults | Sets all fields in this object to their default values. | |
ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) | |
Touch | Marks an instance as modified, simulating a change to it. |
Name | Description | |
---|---|---|
duty | Duty cycle values. | |
frequency | Number of min-to-max cycles per second. | |
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
max | Maximum value for the counter. | |
min | Minimum value for the counter. | |
on | Counter pauses if this is set to false. | |
output | ( OIV.Inventor.Fields.SoSFShort ) Counts min-to-max, in step increments. | |
reset | Reset the counter to the specified value. | |
step | Counter step value. | |
syncIn | Restart at the beginning of the cycle. | |
syncOut | ( OIV.Inventor.Fields.SoSFTrigger ) Triggers at cycle start. | |
timeIn | Running time. | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
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 OIV.Inventor.Engines.SoCounter engine, is that this engine also has a OIV.Inventor.Engines.SoTimeCounter.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 OIV.Inventor.Engines.SoTimeCounter.timeIn input is connected to the realTime global field. It can, however, be connected to any time source.
The OIV.Inventor.Engines.SoTimeCounter.frequency input field controls how many min-to-max cycles are performed per second. For example, a OIV.Inventor.Engines.SoTimeCounter.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 OIV.Inventor.Engines.SoTimeCounter.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 OIV.Inventor.Engines.SoTimeCounter.reset input field to a value, the engine will continue counting from there. Note that the counter will always output numbers based on the OIV.Inventor.Engines.SoTimeCounter.min, OIV.Inventor.Engines.SoTimeCounter.max and OIV.Inventor.Engines.SoTimeCounter.step values, and setting the OIV.Inventor.Engines.SoTimeCounter.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 OIV.Inventor.Engines.SoTimeCounter.reset is greater than OIV.Inventor.Engines.SoTimeCounter.max, the counter is set to OIV.Inventor.Engines.SoTimeCounter.max.
If OIV.Inventor.Engines.SoTimeCounter.reset is less than OIV.Inventor.Engines.SoTimeCounter.min, the counter is set to OIV.Inventor.Engines.SoTimeCounter.min.
If OIV.Inventor.Engines.SoTimeCounter.reset is between step values, the counter is set to the lower step.
Each time a counting cycle is started, the OIV.Inventor.Engines.SoTimeCounter.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 OIV.Inventor.Engines.SoTimeCounter.syncIn input.
You can pause the engine, by setting the OIV.Inventor.Engines.SoTimeCounter.on input to false, and it will stop updating the output field. When you turn off the pause, by setting OIV.Inventor.Engines.SoTimeCounter.on to true, it will start counting again from where it left off.
TimeCounter {
min | 0 |
max | 1 |
step | 1 |
on | true |
frequency | 1 |
duty | 1 |
timeIn | <current time> |
syncIn | |
reset | 0 |