public static LDrawCommand DeserializeCommand(string line, LDrawModel parent) { LDrawCommand command = null; int type; var args = line.Split(' '); //first arg is the command type if (Int32.TryParse(args[0], out type)) { var commandType = (CommandType)type; switch (commandType) { case CommandType.SubFile: command = new LDrawSubFile(); break; case CommandType.Triangle: command = new LDrawTriangle(); break; case CommandType.Quad: command = new LDrawQuad(); break; } } //if it is a valid command if (command != null) { //parse the second arg for color code if (!int.TryParse(args[1], out command._ColorCode)) { command._Color = args[1]; } //set the parent ldraw command._Parent = parent; command.Deserialize(line); } return(command); }
public static LDrawCommand DeserializeCommand(string line, LDrawModel parent) { LDrawCommand command = null; int type; var args = line.Split(' '); if (Int32.TryParse(args[0], out type)) { var commandType = (CommandType)type; switch (commandType) { case CommandType.Comment: command = new LDrawComment(); break; case CommandType.SubFile: command = new LDrawSubFile(); break; case CommandType.Triangle: command = new LDrawTriangle(); break; case CommandType.Quad: command = new LDrawQuad(); break; } } if (command != null) { if (!(command is LDrawComment) && !int.TryParse(args[1], out command._ColorCode)) { command._Color = args[1]; } command._Parent = parent; command.Deserialize(line); } return(command); }