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 | (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.m_alpha value. |
![]() | points | Coordinates of the control points. |
![]() | position | (OIV.Inventor.Fields.SoSFVec3f) Position interpolated from the OIV.Inventor.Engines.SoTrackFollower.m_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.m_orientation output field is a direct interpolation of OIV.Inventor.Engines.SoTrackFollower.m_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.m_points field is required. All other data fields are optional.
The input that drives the animation is the OIV.Inventor.Engines.SoTrackFollower.m_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.m_position field and an OIV.Inventor.Engines.SoTrackFollower.m_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.m_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 |