1 |
using System.Collections.Generic; |
2 |
|
3 |
namespace Oni.Dae |
4 |
{ |
5 |
internal class TransformCollection : List<Transform> |
6 |
{ |
7 |
public Matrix ToMatrix() |
8 |
{ |
9 |
var matrix = Matrix.Identity; |
10 |
|
11 |
foreach (var transform in Utils.Reverse(this)) |
12 |
matrix *= transform.ToMatrix(); |
13 |
|
14 |
return matrix; |
15 |
} |
16 |
|
17 |
public TransformScale Scale(string sid, Vector3 scale) |
18 |
{ |
19 |
var transform = new TransformScale(sid, scale); |
20 |
Add(transform); |
21 |
return transform; |
22 |
} |
23 |
|
24 |
public TransformRotate Rotate(string sid, Vector3 axis, float angle) |
25 |
{ |
26 |
var transform = new TransformRotate(sid, axis, angle); |
27 |
Add(transform); |
28 |
return transform; |
29 |
} |
30 |
|
31 |
public TransformTranslate Translate(string sid, Vector3 translate) |
32 |
{ |
33 |
var transform = new TransformTranslate(sid, translate); |
34 |
Add(transform); |
35 |
return transform; |
36 |
} |
37 |
} |
38 |
} |