Merge pull request #443 from vlidholt/master
First pass on sprite 3D node
diff --git a/sky/packages/sky/example/game/lib/node3d.dart b/sky/packages/sky/example/game/lib/node3d.dart
new file mode 100644
index 0000000..d98d471
--- /dev/null
+++ b/sky/packages/sky/example/game/lib/node3d.dart
@@ -0,0 +1,36 @@
+part of sprites;
+
+class Node3D extends Node {
+
+ double _rotationX = 0.0;
+
+ double get rotationX => _rotationX;
+
+ set rotationX(double rotationX) {
+ _rotationX = rotationX;
+ invalidateTransformMatrix();
+ }
+
+ double _rotationY = 0.0;
+
+ double get rotationY => _rotationY;
+
+ set rotationY(double rotationY) {
+ _rotationY = rotationY;
+ invalidateTransformMatrix();
+ }
+
+ Matrix4 computeTransformMatrix() {
+ // Apply normal 2d transforms
+ Matrix4 matrix = super.computeTransformMatrix();
+
+
+ matrix.translate(0.0, 0.0, 500.0);
+
+ // Rotate around x and y axis
+ matrix.rotateY(radians(_rotationY));
+ matrix.rotateX(radians(_rotationX));
+
+ return matrix;
+ }
+}
diff --git a/sky/packages/sky/example/game/lib/sprites.dart b/sky/packages/sky/example/game/lib/sprites.dart
index 1da06b7..c25eace 100644
--- a/sky/packages/sky/example/game/lib/sprites.dart
+++ b/sky/packages/sky/example/game/lib/sprites.dart
@@ -22,6 +22,7 @@
part 'color_secuence.dart';
part 'image_map.dart';
part 'node.dart';
+part 'node3d.dart';
part 'node_with_size.dart';
part 'particle_system.dart';
part 'sprite.dart';