SoTrackFollower Class |
Animates an object or camera along a track.
Namespace: OIV.Inventor.Engines
The SoTrackFollower type exposes the following members.
Name | Description | |
---|---|---|
SoTrackFollower | Constructor. |
Name | Description | |
---|---|---|
ComputeData | Returns the position and the three rotations used to compute the orientation field for a given alpha value. | |
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. | |
GetAlphaValue | Returns the alpha value at a control point, depending on the distance between control points and on the timeStamps values. | |
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.) | |
GetTrackCoordinate(SoCoordinate3) | Calls GetTrackCoordinate(coords, 1, false, 16). | |
GetTrackCoordinate(SoCoordinate3, Single) | Calls GetTrackCoordinate(coords, width, false, 16). | |
GetTrackCoordinate(SoCoordinate3, Single, Boolean) | Calls GetTrackCoordinate(coords, width, flat, 16). | |
GetTrackCoordinate(SoCoordinate3, Single, Boolean, Int32) | Returns a set of coordinates that can be used to build a TriangleStripSet or a LineSet that materialized the track. | |
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 | |
---|---|---|
alpha | The value on which the interpolation is made. | |
headRotation | The final rotation applied at a control point, which allows the camera or the object to be rotated while following the track. | |
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
keepRollAngle | Indicates if the roll angle should be maintained after the middle of the turn. | |
loop | If loop is true, the animation will loop. | |
orientation | (OIV.Inventor.Fields.SoSFRotation) Rotation interpolated from the OIV.Inventor.Engines.SoTrackFollower.alpha value. | |
points | Coordinates of the control points. | |
position | (OIV.Inventor.Fields.SoSFVec3f) Position interpolated from the OIV.Inventor.Engines.SoTrackFollower.alpha value. | |
radius | Radius of the turn at a control point. | |
rollAngle | Roll angle during the turn at a control point. | |
rollSpeed | Speed at which the roll angle is reached during a turn. | |
timeStamps | Time stamps associated with the control points. | |
useHeadRotationOnly | If true, the OIV.Inventor.Engines.SoTrackFollower.orientation output field is a direct interpolation of OIV.Inventor.Engines.SoTrackFollower.headRotation values, without taking into consideration the roll angle or the track itself. | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
This engine is designed to add animations to a scene graph. It manages a track that can be followed either by an object (a sub scene graph) or by a camera. The track is defined by a set of control points. Each control point can be associated with a time stamp, a turn angle, roll information, and a head rotation. Only the OIV.Inventor.Engines.SoTrackFollower.points field is required. All other data fields are optional.
The input that drives the animation is the OIV.Inventor.Engines.SoTrackFollower.alpha field. This value should vary between 0 and 1, assuming 0 as the position and orientation at the first control point, and 1 as the position and orientation at the last control point. Alpha values are clamped to the interval [0,1]. An OIV.Inventor.Sensors.SoTimerSensor or other engines can be used to dynamically modify the alpha value.
The outputs are a OIV.Inventor.Engines.SoTrackFollower.position field and an OIV.Inventor.Engines.SoTrackFollower.orientation field that can be connected directly to the corresponding fields of an OIV.Inventor.Nodes.SoCamera or OIV.Inventor.Nodes.SoTransform node (see OIV.Inventor.Fields.SoField.ConnectFrom(OIV.Inventor.Engines.SoEngineOutput)). The values of these fields are computed by interpolating the track points with the OIV.Inventor.Engines.SoTrackFollower.alpha field value.
The rollAngle values are only used if the track specified by the points field is curved.
An example .iv file using OIV.Inventor.Engines.SoTrackFollower is provided in the directory $OIVHOME/data/models/toys/TrackSample.
TrackFollower {
points | 0 0 0 |
timeStamps | 0 |
radius | 0 |
rollAngle | 0 |
rollSpeed | 0 |
keepRollAngle | false |
headRotation | 0 0 1 0 |
alpha | 0 |
loop | true |
useHeadRotationOnly | false |