Module javafx.graphics
Package javafx.animation

# Class PathTransition

java.lang.Object
javafx.animation.Animation
javafx.animation.Transition
javafx.animation.PathTransition

public final class PathTransition extends Transition
This `Transition` creates a path animation that spans its `duration`. The translation along the path is done by updating the `translateX` and `translateY` variables of the `node`, and the `rotate` variable will get updated if `orientation` is set to `OrientationType.ORTHOGONAL_TO_TANGENT`, at regular interval.

The animated path is defined by the outline of a shape.

Code Segment Example:

     import javafx.scene.shape.*;
     import javafx.animation.*;

     ...

         Rectangle rect = new Rectangle (100, 40, 100, 100);
         rect.setArcHeight(50);
         rect.setArcWidth(50);
         rect.setFill(Color.VIOLET);

         Path path = new Path();
         path.getElements().add (new MoveTo (0f, 50f));
         path.getElements().add (new CubicCurveTo (40f, 10f, 390f, 240f, 1904, 50f));

         pathTransition.setDuration(Duration.millis(10000));
         pathTransition.setNode(rect);
         pathTransition.setPath(path);
         pathTransition.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
         pathTransition.setCycleCount(4f);
         pathTransition.setAutoReverse(true);

         pathTransition.play();

     ...

Since:
  JavaFX 2.0
See Also:
  - `Transition`
  - `Animation`

## Property Summary

Properties
Type
Property
Description
`final ObjectProperty<Duration>`
`duration`
The duration of this `Transition`.
`final ObjectProperty<Node>`
`node`
The target node of this `PathTransition`.
`final ObjectProperty<PathTransition.OrientationType>`
`orientation`
Specifies the upright orientation of `node` along the `path`.
`final ObjectProperty<Shape>`
`path`
The shape on which outline the node should be animated.

### Properties inherited from class javafx.animation.Transition

`interpolator`

### Properties inherited from class javafx.animation.Animation

`autoReverse, currentRate, currentTime, cycleCount, cycleDuration, delay, onFinished, rate, status, totalDuration`

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`PathTransition.OrientationType`
Specifies the upright orientation of `node` along the `path`.

## Nested classes/interfaces inherited from class javafx.animation.Animation

`Animation.Status`

## Field Summary

### Fields inherited from class javafx.animation.Animation

`INDEFINITE`

## Constructor Summary

Constructors
Constructor
Description
`PathTransition()`
The constructor of `PathTransition`.
`PathTransition(Duration duration, Shape path)`
The constructor of `PathTransition`.
`PathTransition(Duration duration, Shape path, Node node)`
The constructor of `PathTransition`.

## Method Summary

Modifier and Type
Method
Description
`final ObjectProperty<Duration>`
`durationProperty()`
The duration of this `Transition`.
`final Duration`
`getDuration()`
Gets the value of the `duration` property.
`final Node`
`getNode()`
Gets the value of the `node` property.
`final PathTransition.OrientationType`
`getOrientation()`
Gets the value of the `orientation` property.
`final Shape`
`getPath()`
Gets the value of the `path` property.
`void`
`interpolate(double frac)`
The method `interpolate()` has to be provided by implementations of `Transition`.
`final ObjectProperty<Node>`
`nodeProperty()`
The target node of this `PathTransition`.
`final ObjectProperty<PathTransition.OrientationType>`
`orientationProperty()`
Specifies the upright orientation of `node` along the `path`.
`final ObjectProperty<Shape>`
`pathProperty()`
The shape on which outline the node should be animated.
`final void`
`setDuration(Duration value)`
Sets the value of the `duration` property.
`final void`
`setNode(Node value)`
Sets the value of the `node` property.
`final void`
`setOrientation(PathTransition.OrientationType value)`
Sets the value of the `orientation` property.
`final void`
`setPath(Shape value)`
Sets the value of the `path` property.

### Methods inherited from class javafx.animation.Transition

`getCachedInterpolator, getInterpolator, getParentTargetNode, interpolatorProperty, setInterpolator`

### Methods inherited from class javafx.animation.Animation

`autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, getCuePoints, getCurrentRate, getCurrentTime, getCycleCount, getCycleDuration, getDelay, getOnFinished, getRate, getStatus, getTargetFramerate, getTotalDuration, isAutoReverse, jumpTo, jumpTo, onFinishedProperty, pause, play, playFrom, playFrom, playFromStart, rateProperty, setAutoReverse, setCycleCount, setCycleDuration, setDelay, setOnFinished, setRate, setStatus, statusProperty, stop, totalDurationProperty`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Property Details

### node

public final ObjectProperty<Node> nodeProperty
The target node of this `PathTransition`.

It is not possible to change the target `node` of a running `PathTransition`. If the value of `node` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

See Also:
  - `getNode()`
  - `setNode(Node)`
  - `nodeProperty()`

### duration

public final ObjectProperty<Duration> durationProperty
The duration of this `Transition`.

It is not possible to change the `duration` of a running `PathTransition`. If the value of `duration` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Note: While the unit of `duration` is a millisecond, the granularity depends on the underlying operating system and will in general be larger. For example animations on desktop systems usually run with a maximum of 60fps which gives a granularity of ~17 ms. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
See Also:
  - `getDuration()`
  - `setDuration(Duration)`
  - `durationProperty()`

### path

public final ObjectProperty<Shape> pathProperty
The shape on which outline the node should be animated.

It is not possible to change the `path` of a running `PathTransition`. If the value of `path` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  null
See Also:
  - `getPath()`
  - `setPath(Shape)`
  - `pathProperty()`

### orientation

public final ObjectProperty<PathTransition.OrientationType> orientationProperty
Specifies the upright orientation of `node` along the `path`. The default orientation is set to `PathTransition.OrientationType.NONE`.

It is not possible to change the `orientation` of a running `PathTransition`. If the value of `orientation` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  NONE
See Also:
  - `getOrientation()`
  - `setOrientation(PathTransition.OrientationType)`
  - `orientationProperty()`

## Constructor Details

### PathTransition

public PathTransition(Duration duration, Shape path, Node node)
The constructor of `PathTransition`.

Parameters:
  `duration` - The `duration` of this `PathTransition`
  `path` - The `path` of this `PathTransition`
  `node` - The `node` of this `PathTransition`

### PathTransition

public PathTransition(Duration duration, Shape path)
The constructor of `PathTransition`.

Parameters:
  `duration` - The `duration` of this `PathTransition`
  `path` - The `path` of this `PathTransition`

### PathTransition

public PathTransition()
The constructor of `PathTransition`.

## Method Details

### setNode

public final void setNode(Node value)
Sets the value of the `node` property.

Property description:
  The target node of this `PathTransition`.

  It is not possible to change the target `node` of a running `PathTransition`. If the value of `node` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Parameters:
  `value` - the value for the `node` property
See Also:
  - `getNode()`
  - `nodeProperty()`

### getNode

public final Node getNode()
Gets the value of the `node` property.

Property description:
  The target node of this `PathTransition`.

  It is not possible to change the target `node` of a running `PathTransition`. If the value of `node` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Returns:
  the value of the `node` property
See Also:
  - `setNode(Node)`
  - `nodeProperty()`

### nodeProperty

public final ObjectProperty<Node> nodeProperty()
The target node of this `PathTransition`.

It is not possible to change the target `node` of a running `PathTransition`. If the value of `node` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Returns:
  the `node` property
See Also:
  - `getNode()`
  - `setNode(Node)`

### setDuration

public final void setDuration(Duration value)
Sets the value of the `duration` property.

Property description:
  The duration of this `Transition`.

  It is not possible to change the `duration` of a running `PathTransition`. If the value of `duration` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

  Note: While the unit of `duration` is a millisecond, the granularity depends on the underlying operating system and will in general be larger. For example animations on desktop systems usually run with a maximum of 60fps which gives a granularity of ~17 ms. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Parameters:
  `value` - the value for the `duration` property
See Also:
  - `getDuration()`
  - `durationProperty()`

### getDuration

public final Duration getDuration()
Gets the value of the `duration` property.

Property description:
  The duration of this `Transition`.

  It is not possible to change the `duration` of a running `PathTransition`. If the value of `duration` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

  Note: While the unit of `duration` is a millisecond, the granularity depends on the underlying operating system and will in general be larger. For example animations on desktop systems usually run with a maximum of 60fps which gives a granularity of ~17 ms. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Returns:
  the value of the `duration` property
See Also:
  - `setDuration(Duration)`
  - `durationProperty()`

### durationProperty

public final ObjectProperty<Duration> durationProperty()
The duration of this `Transition`.

It is not possible to change the `duration` of a running `PathTransition`. If the value of `duration` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Note: While the unit of `duration` is a millisecond, the granularity depends on the underlying operating system and will in general be larger. For example animations on desktop systems usually run with a maximum of 60fps which gives a granularity of ~17 ms. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Returns:
  the `duration` property
See Also:
  - `getDuration()`
  - `setDuration(Duration)`

### setPath

public final void setPath(Shape value)
Sets the value of the `path` property.

Property description:
  The shape on which outline the node should be animated.

  It is not possible to change the `path` of a running `PathTransition`. If the value of `path` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  null
Parameters:
  `value` - the value for the `path` property
See Also:
  - `getPath()`
  - `pathProperty()`

### getPath

public final Shape getPath()
Gets the value of the `path` property.

Property description:
  The shape on which outline the node should be animated.

  It is not possible to change the `path` of a running `PathTransition`. If the value of `path` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  null
Returns:
  the value of the `path` property
See Also:
  - `setPath(Shape)`
  - `pathProperty()`

### pathProperty

public final ObjectProperty<Shape> pathProperty()
The shape on which outline the node should be animated.

It is not possible to change the `path` of a running `PathTransition`. If the value of `path` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  null
Returns:
  the `path` property
See Also:
  - `getPath()`
  - `setPath(Shape)`

### setOrientation

public final void setOrientation(PathTransition.OrientationType value)
Sets the value of the `orientation` property.

Property description:
  Specifies the upright orientation of `node` along the `path`. The default orientation is set to `PathTransition.OrientationType.NONE`.

  It is not possible to change the `orientation` of a running `PathTransition`. If the value of `orientation` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  NONE
Parameters:
  `value` - the value for the `orientation` property
See Also:
  - `getOrientation()`
  - `orientationProperty()`

### getOrientation

public final PathTransition.OrientationType getOrientation()
Gets the value of the `orientation` property.

Property description:
  Specifies the upright orientation of `node` along the `path`. The default orientation is set to `PathTransition.OrientationType.NONE`.

  It is not possible to change the `orientation` of a running `PathTransition`. If the value of `orientation` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  NONE
Returns:
  the value of the `orientation` property
See Also:
  - `setOrientation(PathTransition.OrientationType)`
  - `orientationProperty()`

### orientationProperty

public final ObjectProperty<PathTransition.OrientationType> orientationProperty()
Specifies the upright orientation of `node` along the `path`. The default orientation is set to `PathTransition.OrientationType.NONE`.

It is not possible to change the `orientation` of a running `PathTransition`. If the value of `orientation` is changed for a running `PathTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  NONE
Returns:
  the `orientation` property
See Also:
  - `getOrientation()`
  - `setOrientation(PathTransition.OrientationType)`

### interpolate

public void interpolate(double frac)
The method `interpolate()` has to be provided by implementations of `Transition`. While a `Transition` is running, this method is called in every frame. The parameter defines the current position with the animation. At the start, the fraction will be `0.0` and at the end it will be `1.0`. How the parameter increases, depends on the `interpolator`, e.g. if the `interpolator` is `Interpolator.LINEAR`, the fraction will increase linear. This method must not be called by the user directly.

Specified by:
  `interpolate` in class `Transition`
Parameters:
  `frac` - The relative position