mat4-interpolate

WebJar for mat4-interpolate

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

mat4-interpolate
Last Version

Last Version

1.0.4
Release Date

Release Date

Type

Type

jar
Description

Description

mat4-interpolate
WebJar for mat4-interpolate
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mattdesl/mat4-interpolate

Download mat4-interpolate

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/mat4-interpolate/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>mat4-interpolate</artifactId>
    <version>1.0.4</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/mat4-interpolate/
implementation 'org.webjars.npm:mat4-interpolate:1.0.4'
// https://jarcasting.com/artifacts/org.webjars.npm/mat4-interpolate/
implementation ("org.webjars.npm:mat4-interpolate:1.0.4")
'org.webjars.npm:mat4-interpolate:jar:1.0.4'
<dependency org="org.webjars.npm" name="mat4-interpolate" rev="1.0.4">
  <artifact name="mat4-interpolate" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='mat4-interpolate', version='1.0.4')
)
libraryDependencies += "org.webjars.npm" % "mat4-interpolate" % "1.0.4"
[org.webjars.npm/mat4-interpolate "1.0.4"]

Dependencies

compile (5)

Group / Artifact Type Version
org.webjars.npm : gl-vec3 jar [1.0.2,2)
org.webjars.npm : mat4-decompose jar [1.0.3,2)
org.webjars.npm : gl-mat4 jar [1.0.1,2)
org.webjars.npm : mat4-recompose jar [1.0.3,2)
org.webjars.npm : quat-slerp jar [1.0.0,2)

Project Modules

There are no modules declared in this project.

mat4-interpolate

stable

Interpolates between two 4x4 matrices, using algorithms from W3C Spec to produce consistent results with CSS animations. Like mat4-interpolator but does the decomposition in place.

Translation, scale, skew and perspective are interpolated linearly, and rotation is interpolated with spherical interpolation.

var mat4 = require('gl-mat4')
var start = mat4.create()
var end = mat4.fromRotationTranslation([], [0,1,0,0], [20, 50, -10])
var out = mat4.create()

//the matrix interpolator
var interpolate = require('mat4-interpolate')


//.. in your render loop
function render() {
    //interpolate based on alpha, storing results in 'out' matrix
    var vlid = interpolate(out, start, end, alpha)
    
    if (!valid) {
        //could not interpolate, you need to animate yourself somehow   
    }
}

Usage

NPM

valid = interpolate(out, start, end, alpha)

Interpolates between start and end matrices (16 floats in an array) and stores the result in out, using alpha for interpolation. This will decompose the two matrices into components, lerp/slerp, and then recompose.

Returns true is the interpolation succeeded, or false if either matrix is non-invertible (i.e. scale or perspective W of zero). W3C suggests falling back to discrete animations in this case.

License

MIT, see LICENSE.md for details.

Versions

Version
1.0.4