private List<Object3D> WrapTransform(TransformNode node, float[,] transformation) { float[,] matrix = node.GenerateTransformMatrix(); Shape3DComposite shapes = new Shape3DComposite(); List<Object3D> objects = new List<Object3D>(); objects.Add(shapes); foreach (BaseNode child in node) { List<Object3D> t = TestConvNode(child); foreach (Object3D obj in t) { if (obj != null) { if (obj is Shape3D) { shapes.Add((Shape3D)obj); } else { objects.Add(obj); } } } } return objects; }