function VelocityOrientationProperty(position, ellipsoid) {
  this._velocityVectorProperty = new VelocityVectorProperty(position, true);
  this._subscription = undefined;
  this._ellipsoid = undefined;
  this._definitionChanged = new Event();

  this.ellipsoid = ellipsoid ?? Ellipsoid.default;

  const that = this;
  this._velocityVectorProperty.definitionChanged.addEventListener(function () {
    that._definitionChanged.raiseEvent(that);
  });
}
A {@link Property} which evaluates to a {@link Quaternion} rotation
based on the velocity of the provided {@link PositionProperty}.

@alias VelocityOrientationProperty
@constructor

@param {PositionProperty} [position] The position property used to compute the orientation.
@param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid used to determine which way is up.

@example
//Create an entity with position and orientation.
const position = new Cesium.SampledProperty();
position.addSamples(...);
const entity = viewer.entities.add({
  position : position,
  orientation : new Cesium.VelocityOrientationProperty(position)
}));