示例#1
0
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            editorService = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService;
              _rendererSetup = value as RendererSetup;
              _layer = context.Instance as V3DLayer;

              _listBox.Items.Clear();

              if (_rendererSetup == null || _layer == null)
            return value;

              bool bHasNodeClass = !string.IsNullOrEmpty(_rendererSetup._rendererNodeClass) && _rendererSetup._rendererNodeClass != EditorManager.RendererNodeManager.DefaultRendererNodeClass;
              _clipboardVersion = EditorManager.Clipboard.DataObject as RendererSetup;

              if (bHasNodeClass)
            ITEM_COPY = _listBox.Items.Add("Copy");
              if (_clipboardVersion != null)
            ITEM_PASTE = _listBox.Items.Add("Paste");
              ITEM_LOAD = _listBox.Items.Add("Load from external file");
              if (bHasNodeClass)
              {
            ITEM_SAVE = _listBox.Items.Add("Save to external file");
            ITEM_EXPORT = _listBox.Items.Add("Export to engine file");
              }

              editorService.DropDownControl(_listBox);
              return _rendererSetup; // might have changed
        }
示例#2
0
        /// <summary>
        /// Overridden NewScene function
        /// </summary>
        /// <param name="relFileName"></param>
        /// <param name="bPlainEmpty"></param>
        /// <returns></returns>
        public override bool NewScene(string relFileName, bool bPlainEmpty)
        {
            object[] parameters = { this, relFileName };
              EditorScene editorScene = EditorManager.SceneFactory.CreateInstance(parameters) as EditorScene;
              if (editorScene == null)
              {
            EditorManager.ShowMessageBox("Scene must be derived from class 'EditorScene'", "Failed to create scene", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return false;
              }

              EditorManager.ActiveView.SetCameraPosition(editorScene.Settings.CameraPosition);
              EditorManager.ActiveView.SetCameraRotation(editorScene.Settings.CameraAngles);

              _scene = editorScene;

              // save the scene (empty) such that all layers can be safely saved
              editorScene.SaveAs(relFileName);

              if (!bPlainEmpty)
              {
            V3DLayer MainLayer = new V3DLayer("Main layer");
            editorScene.AddLayer(MainLayer, true, false);

            // mark the layer as dirty, to ensure that it will be saved now
            MainLayer.Dirty = true;
              }

              // this will fire an event that is often used to set things up, so only now the scene will be set up completely
              Scene = editorScene; // set it afterwards so the OnSceneChanged callback has the correct name

              // save the scene again, now with all layers, because NOW all scene elements will be really setup
              editorScene.SaveAs(relFileName);

              return true;
        }