# IntegralNode

Artifact: [androidx.ink:ink-brush](https://developer.android.com/jetpack/androidx/releases/ink) [View Source](https://cs.android.com/search?q=file:androidx/ink/brush/behavior/IntegralNode.kt+class:androidx.ink.brush.behavior.IntegralNode) Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

*** ** * ** ***


```
public final class IntegralNode extends ValueNode
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.ink.brush.behavior.Node](https://developer.android.com/reference/androidx/ink/brush/behavior/Node) |||
|   | ↳ | [androidx.ink.brush.behavior.ValueNode](https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode) ||
|   |   | ↳ | [androidx.ink.brush.behavior.IntegralNode](https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode) |

*** ** * ** ***

A `https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode` that integrates an input value over time or distance.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#IntegralNode(androidx.ink.brush.behavior.ProgressDomain,kotlin.Float,kotlin.Float,androidx.ink.brush.behavior.OutOfRange,androidx.ink.brush.behavior.ValueNode)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ProgressDomain integrateOver, float integralValueRangeStart, float integralValueRangeEnd, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/OutOfRange integralOutOfRangeBehavior, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode input )` Creates an `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode` that integrates over an input value. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#getInput()()` The input node that produces the value to be integrated. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/OutOfRange` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#getIntegralOutOfRangeBehavior()()` The behavior to use if the integral produces a value outside the specified range. |
| `final float` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#getIntegralValueRangeEnd()()` The end of the range of values that the integral can produce. |
| `final float` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#getIntegralValueRangeStart()()` The start of the range of values that the integral can produce. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ProgressDomain` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#getIntegrateOver()()` The metric to integrate the input over. |
| `int` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#hashCode()()` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#toString()()` |

### Inherited methods

From [androidx.ink.brush.behavior.Node](https://developer.android.com/reference/androidx/ink/brush/behavior/Node) `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/Version` `https://developer.android.com/reference/androidx/ink/brush/behavior/Node#calculateMinimumRequiredVersion()()`

Returns the minimum required `https://developer.android.com/reference/androidx/ink/brush/Version` for this `https://developer.android.com/reference/androidx/ink/brush/behavior/Node`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode>` `https://developer.android.com/reference/androidx/ink/brush/behavior/Node#getInputs()()`

The ordered list of inputs that this node directly depends on.

## Public constructors

### IntegralNode

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public IntegralNode(
    @NonNull ProgressDomain integrateOver,
    float integralValueRangeStart,
    float integralValueRangeEnd,
    @NonNull OutOfRange integralOutOfRangeBehavior,
    @NonNull ValueNode input
)
```

Creates an `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode` that integrates over an input value.

If `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#(androidx.ink.brush.behavior.ProgressDomain,kotlin.Float,kotlin.Float,androidx.ink.brush.behavior.OutOfRange,androidx.ink.brush.behavior.ValueNode)` is `https://developer.android.com/reference/androidx/ink/brush/behavior/ProgressDomain#DISTANCE_IN_CENTIMETERS()` and the stroke input data does not indicate the relationship between stroke units and physical units (e.g. as may be the case for programmatically-generated inputs), then the output value will be null regardless of the input.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ProgressDomain integrateOver` | the metric to integrate the input over |
| `float integralValueRangeStart` | the start of the range of values that the integral can produce. Must be finite and distinct from `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#(androidx.ink.brush.behavior.ProgressDomain,kotlin.Float,kotlin.Float,androidx.ink.brush.behavior.OutOfRange,androidx.ink.brush.behavior.ValueNode)` |
| `float integralValueRangeEnd` | the end of the range of values that the integral can produce. Must be finite and distinct from `https://developer.android.com/reference/androidx/ink/brush/behavior/IntegralNode#(androidx.ink.brush.behavior.ProgressDomain,kotlin.Float,kotlin.Float,androidx.ink.brush.behavior.OutOfRange,androidx.ink.brush.behavior.ValueNode)` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/OutOfRange integralOutOfRangeBehavior` | the behavior to use if the integral produces a value outside the specified range |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/behavior/ValueNode input` | input node that produces the value to be integrated |

## Public methods

### equals

```
public boolean equals(Object other)
```

### getInput

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final @NonNull ValueNode getInput()
```

The input node that produces the value to be integrated.

### getIntegralOutOfRangeBehavior

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final @NonNull OutOfRange getIntegralOutOfRangeBehavior()
```

The behavior to use if the integral produces a value outside the specified range.

### getIntegralValueRangeEnd

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final float getIntegralValueRangeEnd()
```

The end of the range of values that the integral can produce.

### getIntegralValueRangeStart

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final float getIntegralValueRangeStart()
```

The start of the range of values that the integral can produce.

### getIntegrateOver

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final @NonNull ProgressDomain getIntegrateOver()
```

The metric to integrate the input over.

### hashCode

```
public int hashCode()
```

### toString

```
public @NonNull String toString()
```