private void Parse(agxCollide.Geometry geometry, Node parent) { var geometryNode = GetOrCreateGeometry(geometry, parent == null); if (parent != null) { parent.AddChild(geometryNode); } foreach (var shape in geometry.getShapes()) { var shapeNode = GetOrCreateShape(shape.get()); geometryNode.AddChild(shapeNode); } if (geometry.getMaterial() != null) { var materialNode = GetOrCreateMaterial(geometry.getMaterial()); geometryNode.AddReference(materialNode); } var groupsCollection = geometry.findGroupIdCollection(); foreach (var name in groupsCollection.getNames()) { geometryNode.AddReference(new Node() { Type = NodeType.GroupId, Object = name }); } foreach (var id in groupsCollection.getIds()) { geometryNode.AddReference(new Node() { Type = NodeType.GroupId, Object = id.ToString() }); } }