mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #501 from vlidholt/master
Adds perspective projection to Node3D in sprites
This commit is contained in:
commit
45a83d565d
@ -20,12 +20,25 @@ class Node3D extends Node {
|
||||
invalidateTransformMatrix();
|
||||
}
|
||||
|
||||
double _projectionDepth = 500.0;
|
||||
|
||||
double get projectionDepth => _projectionDepth;
|
||||
|
||||
set projectionDepth(double projectionDepth) {
|
||||
_projectionDepth = projectionDepth;
|
||||
invalidateTransformMatrix();
|
||||
}
|
||||
|
||||
Matrix4 computeTransformMatrix() {
|
||||
// Apply normal 2d transforms
|
||||
Matrix4 matrix = super.computeTransformMatrix();
|
||||
|
||||
|
||||
matrix.translate(0.0, 0.0, 500.0);
|
||||
// Apply perspective projection
|
||||
Matrix4 projection = new Matrix4(1.0, 0.0, 0.0, 0.0,
|
||||
0.0, 1.0, 0.0, 0.0,
|
||||
0.0, 0.0, 1.0, -1.0/_projectionDepth,
|
||||
0.0, 0.0, 0.0, 1.0);
|
||||
matrix = matrix.multiply(projection);
|
||||
|
||||
// Rotate around x and y axis
|
||||
matrix.rotateY(radians(_rotationY));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user