public DrawnSceneObject(DrawnSceneObject DSO, Scene ParentScene) : base(DSO, ParentScene) { this.Type = SceneObjectType.DrawnSceneObject; if (DSO._Visual.Type == DrawObjectType.Actor) { this._Visual = new Actor((Actor)DSO._Visual); } else if (DSO._Visual.Type == DrawObjectType.Background) { this._Visual = new Background((Background)DSO._Visual); } else if (DSO._Visual.Type == DrawObjectType.Camera) { this._Visual = new Camera((Camera)DSO._Visual); } else if (DSO._Visual.Type == DrawObjectType.Light) { this._Visual = new Light((Light)DSO._Visual); } else if (DSO._Visual.Type == DrawObjectType.Sprite) { this._Visual = new Sprite((Sprite)DSO._Visual); } else if (DSO._Visual.Type == DrawObjectType.Tile) { this._Visual = new Tile((Tile)DSO._Visual); } this.Events = new EventsPackage(DSO.Events, ParentScene); }
public static DrawnSceneObject Deserialize(string Path) { XmlSerializer Deserializer = new XmlSerializer(typeof(DrawnSceneObject)); TextReader Reader = new StreamReader(Path); DrawnSceneObject CurrentDrawnSceneObject = (DrawnSceneObject)Deserializer.Deserialize(Reader); Reader.Close(); return(CurrentDrawnSceneObject); }
public static void Serialize(DrawnSceneObject CurrentDrawnSceneObject, string Path) { XmlSerializer Serializer = new XmlSerializer(typeof(DrawnSceneObject)); using (TextWriter Writer = new StreamWriter(Path)) { Serializer.Serialize(Writer, CurrentDrawnSceneObject); } }
public static SceneObject FromFile(string FilePath, Scene CurrentScene) { if (!File.Exists(FilePath)) { return(null); } SceneObject New = null; if (FilePath.ToUpper().EndsWith(".OBJ") && CurrentScene.Type == SceneType.Scene3D) { OBJContainer OBJ = new OBJContainer(); OBJ.Load(FilePath, null); if (OBJ.Geometries[0].Normals.Count == 0) { OBJ.RecalculateNormals(); } OBJ.Repack(); Actor NewActor = new Actor(OBJ, Path.GetFileNameWithoutExtension(FilePath)); NewActor.Scale = new Vertex(0.001f, 0.001f, 0.001f); New = new DrawnSceneObject(NewActor.Name, NewActor); New.ParentScene = CurrentScene; } return(New); }