コード例 #1
0
ファイル: Solution.cs プロジェクト: AnomalousMedical/Engine
        public void createCurrentProject()
        {
            anomalyController.ResourceController.clearResources();
            if (currentProject != null)
            {
                currentProject.showScene(anomalyController);
            }
            else //Create an empty scene
            {
                SimSceneDefinition sceneDefinition = new SimSceneDefinition();
                anomalyController.SceneController.setSceneDefinition(sceneDefinition);

                SimObjectManagerDefinition simObjectManager = new SimObjectManagerDefinition();
                anomalyController.SimObjectController.setSceneManagerDefintion(simObjectManager);
            }
            anomalyController.ResourceController.applyToScene();
        }
コード例 #2
0
        private IEnumerable <IdleStatus> finishInitialization(String defaultModel)
        {
            yield return(IdleStatus.Ok);

            splashScreen.updateStatus(15, "Loading Resources");

            VirtualFileSystem.Instance.addArchive(OgreModelEditorConfig.VFSRoot);

            emptyResourceManager = pluginManager.createScratchResourceManager();
            liveResourceManager  = pluginManager.createLiveResourceManager("Scene");
            resourceManager      = pluginManager.createScratchResourceManager();

            yield return(IdleStatus.Ok);

            splashScreen.updateStatus(40, "Creating GUI");

            //Initialize controllers
            modelController = new ModelController(this);

            //Create the GUI
            consoleWindow = new LogWindow();
            guiManager.addManagedDialog(consoleWindow);
            consoleWindow.Visible = true;
            Log.Default.addLogListener(consoleWindow);

            virtualTextureDebugger = new VirtualTextureDebugger(virtualTextureLink.VirtualTextureManager);
            guiManager.addManagedDialog(virtualTextureDebugger);

            textureCompiler            = new TextureCompilerGUI(pluginManager, mainWindow);
            textureCompiler.CurrentSrc = OgreModelEditorConfig.LastTextureCompilerSourceDirectory;
            guiManager.addManagedDialog(textureCompiler);

            materialEditor = new MDIObjectEditor("Materials", "MaterialEditor", false);
            guiManager.addManagedDialog(materialEditor);
            materialEditor.CurrentDockLocation = DockLocation.Left;
            materialEditor.Visible             = true;
            materialEditor.EditInterface       = materialController.EditInterface;

            yield return(IdleStatus.Ok);

            splashScreen.updateStatus(70, "Creating Scene");

            //Create a simple scene to use to show the models
            SimSceneDefinition         sceneDefiniton = new SimSceneDefinition();
            OgreSceneManagerDefinition ogreScene      = new OgreSceneManagerDefinition("Ogre");
            SimSubSceneDefinition      mainSubScene   = new SimSubSceneDefinition("Main");

            sceneDefiniton.addSimElementManagerDefinition(ogreScene);
            sceneDefiniton.addSimSubSceneDefinition(mainSubScene);
            mainSubScene.addBinding(ogreScene);
            sceneDefiniton.DefaultSubScene = "Main";

            scene = sceneDefiniton.createScene();
            sceneViewController.createCameras(scene);
            lightManager.sceneLoaded(scene);
            objectMover.sceneLoaded(scene);
            virtualTextureLink.sceneLoaded(scene);

            yield return(IdleStatus.Ok);

            if (!String.IsNullOrEmpty(defaultModel))
            {
                splashScreen.updateStatus(80, "Loading Model");

                openModel(defaultModel);

                yield return(IdleStatus.Ok);
            }

            splashScreen.updateStatus(100, "Loaded");

            splashScreen.hide();

            yield return(IdleStatus.Ok);
        }
コード例 #3
0
ファイル: Project.cs プロジェクト: AnomalousMedical/Engine
        public Project(Solution solution, String name, String workingDirectory)
        {
            this.solution         = solution;
            this.name             = name;
            this.workingDirectory = workingDirectory;
            String instancesPath = Path.Combine(workingDirectory, "Instances");

            instanceGroup = new InstanceGroup("Instances", instancesPath);
            if (!Directory.Exists(instancesPath))
            {
                InstanceWriter.Instance.addInstanceGroup(instanceGroup);
            }
            else
            {
                InstanceWriter.Instance.scanForFiles(instanceGroup);
            }

            projectFile = Path.Combine(WorkingDirectory, Name + ".prj");
            if (File.Exists(projectFile))
            {
                try
                {
                    using (var stream = File.Open(projectFile, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
                    {
                        projectData = saver.restoreObject <ProjectData>(stream);
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Could not load project references file {0} because:\n{1}", projectFile, e.Message);
                }
            }
            if (projectData == null)
            {
                projectData = new ProjectData();
                projectData.SceneFileName = name + ".sim.xml";
            }

            String resourcesFile = Path.Combine(workingDirectory, "Resources.xml");

            if (!File.Exists(resourcesFile))
            {
                ResourceManager resources = PluginManager.Instance.createScratchResourceManager();
                using (var stream = File.Open(resourcesFile, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
                {
                    saver.saveObject(resources, stream);
                }
            }

            String sceneDefinitionFile = Path.Combine(workingDirectory, "SceneDefinition.xml");

            if (!File.Exists(sceneDefinitionFile))
            {
                SimSceneDefinition sceneDefinition = new SimSceneDefinition();
                using (var stream = File.Open(sceneDefinitionFile, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
                {
                    saver.saveObject(sceneDefinition, stream);
                }
            }

            resourceFileInterface = new ResourceManagerFileInterface("Resources", EngineIcons.Resource, resourcesFile, solution.GlobalResources);
            sceneFileInterface    = new SimSceneFileInterface("Scene Definition", EngineIcons.Scene, sceneDefinitionFile);
        }
コード例 #4
0
 public void setSceneDefinition(SimSceneDefinition sceneDefinition)
 {
     this.sceneDefinition = sceneDefinition;
 }