# KeyCycleOscillator

Artifact: [androidx.constraintlayout:constraintlayout-core](https://developer.android.com/jetpack/androidx/releases/constraintlayout) [View Source](https://cs.android.com/search?q=file:androidx/constraintlayout/core/motion/utils/KeyCycleOscillator.java+class:androidx.constraintlayout.core.motion.utils.KeyCycleOscillator) Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

*** ** * ** ***


```
public abstract class KeyCycleOscillator
```

<br />

Known direct subclasses [KeyCycleOscillator.PathRotateSet](https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator.PathRotateSet), [ViewOscillator](https://developer.android.com/reference/androidx/constraintlayout/motion/utils/ViewOscillator)

|---|---|
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator.PathRotateSet` |   |
| `https://developer.android.com/reference/androidx/constraintlayout/motion/utils/ViewOscillator` | Provide the engine for executing cycles. |

Known indirect subclasses [ViewOscillator.PathRotateSet](https://developer.android.com/reference/androidx/constraintlayout/motion/utils/ViewOscillator.PathRotateSet)

|---|---|
| `https://developer.android.com/reference/androidx/constraintlayout/motion/utils/ViewOscillator.PathRotateSet` |   |

*** ** * ** ***

Provide the engine for executing cycles. KeyCycleOscillator

## Summary

| ### Nested types |
|---|
| `public class https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator.PathRotateSet extends https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator` |

| ### Public fields |
|---|---|
| `int` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#mVariesBy()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#KeyCycleOscillator()()` |

| ### Public methods |
|---|---|
| `float` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#get(float)(float t)` |
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#getCurveFit()()` |
| `float` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#getSlope(float)(float position)` |
| `static https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#makeWidgetCycle(java.lang.String)(https://developer.android.com/reference/java/lang/String.html attribute)` |
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setPoint(int,int,java.lang.String,int,float,float,float,float)( int framePosition, int shape, https://developer.android.com/reference/java/lang/String.html waveString, int variesBy, float period, float offset, float phase, float value )` sets a oscillator wave point |
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setPoint(int,int,java.lang.String,int,float,float,float,float,java.lang.Object)( int framePosition, int shape, https://developer.android.com/reference/java/lang/String.html waveString, int variesBy, float period, float offset, float phase, float value, https://developer.android.com/reference/java/lang/Object.html custom )` sets a oscillator wave point |
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setProperty(androidx.constraintlayout.core.motion.MotionWidget,float)(https://developer.android.com/reference/androidx/constraintlayout/core/motion/MotionWidget widget, float t)` |
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setType(java.lang.String)(https://developer.android.com/reference/java/lang/String.html type)` |
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setup(float)(float pathLength)` |
| `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#toString()()` |
| `boolean` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#variesByPath()()` |

| ### Protected methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/KeyCycleOscillator#setCustom(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html custom)` |

## Public fields

### mVariesBy

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public int mVariesBy
```

## Public constructors

### KeyCycleOscillator

Added in 1.1.2

```
public KeyCycleOscillator()
```

## Public methods

### get

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public float get(float t)
```

### getCurveFit

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public CurveFit getCurveFit()
```

### getSlope

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public float getSlope(float position)
```

### makeWidgetCycle

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static KeyCycleOscillator makeWidgetCycle(String attribute)
```

### setPoint

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public void setPoint(
    int framePosition,
    int shape,
    String waveString,
    int variesBy,
    float period,
    float offset,
    float phase,
    float value
)
```

sets a oscillator wave point

| Parameters |
|---|---|
| `int framePosition` | the position |
| `int variesBy` | only varies by path supported for now |
| `float period` | the period of the wave |
| `float offset` | the offset value |
| `float value` | the adder |

### setPoint

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public void setPoint(
    int framePosition,
    int shape,
    String waveString,
    int variesBy,
    float period,
    float offset,
    float phase,
    float value,
    Object custom
)
```

sets a oscillator wave point

| Parameters |
|---|---|
| `int framePosition` | the position |
| `int variesBy` | only varies by path supported for now |
| `float period` | the period of the wave |
| `float offset` | the offset value |
| `float value` | the adder |
| `https://developer.android.com/reference/java/lang/Object.html custom` | The ConstraintAttribute used to set the value |

### setProperty

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public void setProperty(MotionWidget widget, float t)
```

### setType

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public void setType(String type)
```

### setup

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public void setup(float pathLength)
```

### toString

```
public String toString()
```

### variesByPath

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public boolean variesByPath()
```

## Protected methods

### setCustom

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected void setCustom(Object custom)
```