public override BaseEditor CreateObject(ref BaseEditor parent, Mogre.NameValuePairList parameters) { LightEditor obj = new LightEditor(); NameValuePairList.Iterator ni; if ((ni = parameters.Find("Init")) != parameters.End()) { parameters["Name"] = "Light" + MogitorsRoot.Instance.CreateUniqueID("Light", "", -1); } obj.ProcessParameters(parameters); obj.Parent = parent; InstanceCount++; return(obj); }
public override void GetObjectProperties(Mogre.NameValuePairList retList) { retList.Clear(); retList["Name"] = this.name; retList["Colour"] = Mogre.StringConverter.ToString(this.colour); retList["Index"] = Mogre.StringConverter.ToString(ViewportIndex); retList["Dimensions"] = Mogre.StringConverter.ToString(this.dimensions); retList["Overlays"] = Mogre.StringConverter.ToString(this.overlays); retList["Skies"] = Mogre.StringConverter.ToString(this.skies); retList["Shadows"] = Mogre.StringConverter.ToString(this.shadows); retList["CamPosition"] = Mogre.StringConverter.ToString(ViewCamera.Position); retList["CamOrientation"] = Mogre.StringConverter.ToString(ViewCamera.Orientation); retList["CamFOV"] = Mogre.StringConverter.ToString(ViewCamera.FOV); retList["CamPolyMode"] = Mogre.StringConverter.ToString((int)ViewCamera.PolygonMode); retList["CamClipDistance"] = Mogre.StringConverter.ToString(ViewCamera.ClipDistance); Mogre.CompositorManager comMngr = Mogre.CompositorManager.Singleton; if (!comMngr.HasCompositorChain(this.handle)) { return; } int count = 0; Mogre.CompositorChain chain = comMngr.GetCompositorChain(this.handle); foreach (Mogre.CompositorInstance compositor in chain.GetCompositors()) { Mogre.Compositor sub = compositor.Compositor; if (sub == null) { continue; } if (sub.Name.Substring(1, 7) == "_Hydrax") { continue; } string compId = "Compositor" + Mogre.StringConverter.ToString(count); retList[compId + "Name"] = sub.Name; retList[compId + "Enabled"] = Mogre.StringConverter.ToString(compositor.Enabled); count++; } }
private void CreateViewport() { Mogre.NameValuePairList parameters = new Mogre.NameValuePairList(); parameters["Name"] = "intViewCamera" + Mogre.StringConverter.ToString(ViewportIndex); parameters["ClipDistance"] = "0.1 40000"; BaseEditor scnMgr = MogitorsRoot.Instance.SceneManagerEditor; ViewCamera = CameraEditor.Factory.CreateObject(ref scnMgr, parameters) as CameraEditor; ViewCamera.Load(); this.handle = MogitorsRoot.Instance.RenderTarget.AddViewport(ViewCamera.Camera, (int)ViewportIndex, dimensions.x, dimensions.y, dimensions.z, dimensions.w); if (Name == "") { this.name = "Viewport" + Mogre.StringConverter.ToString(ViewportIndex); } ViewCamera.Camera.AspectRatio = (float)this.handle.ActualWidth / (float)this.handle.ActualHeight; ViewCamera.ShowHelper = false; ActiveCamera = ViewCamera; this.handle.BackgroundColour = this.colour; PopCompositors(); ProjectOptions opt = MogitorsRoot.Instance.ProjectOptions; if (opt.Cameras.Count > 0) { ViewCamera.Position = opt.Cameras[opt.Cameras.Count - 1].Position; ViewCamera.Orientation = opt.Cameras[opt.Cameras.Count - 1].Orientation; } LoadEditorObjects(); }
public override void ProcessParameters(Mogre.NameValuePairList parameters) { Mogre.NameValuePairList.Iterator ni; if ((ni = parameters.Find("Name")) != parameters.End()) { this.name = ni.Value; } if ((ni = parameters.Find("Dimensions")) != parameters.End()) { this.dimensions = MogreX.StringConverter.ParseVector4(ni.Value); } if ((ni = parameters.Find("Skies")) != parameters.End()) { this.skies = Mogre.StringConverter.ParseBool(ni.Value); } if ((ni = parameters.Find("Shadows")) != parameters.End()) { this.shadows = Mogre.StringConverter.ParseBool(ni.Value); } if ((ni = parameters.Find("Overlays")) != parameters.End()) { this.overlays = Mogre.StringConverter.ParseBool(ni.Value); } if ((ni = parameters.Find("CamPosition")) != parameters.End()) { this.camPosition = Mogre.StringConverter.ParseVector3(ni.Value); } if ((ni = parameters.Find("CamOrientation")) != parameters.End()) { this.camOrientation = Mogre.StringConverter.ParseQuaternion(ni.Value); } if ((ni = parameters.Find("CamClipDistance")) != parameters.End()) { this.camClipDistance = MogreX.StringConverter.ParseVector2(ni.Value); } if ((ni = parameters.Find("CamPolyMode")) != parameters.End()) { this.camPolyMode = (Mogre.PolygonMode)Mogre.StringConverter.ParseInt(ni.Value); OnPropertyChanged("CamPolyMode"); } if ((ni = parameters.Find("CamFOV")) != parameters.End()) { this.camFOV = Mogre.StringConverter.ParseReal(ni.Value); } if ((ni = parameters.Find("Colour")) != parameters.End()) { this.colour = Mogre.StringConverter.ParseColourValue(ni.Value); } this.compositorStorage.Clear(); for (int cx = 0; cx < 100; ++cx) { string searchstr = "Compositor" + Mogre.StringConverter.ToString(cx); if ((ni = parameters.Find(searchstr + "Name")) != parameters.End()) { CompositorPush compData = new CompositorPush(); compData.Name = ni.Value; ni = parameters.Find(searchstr + "Enabled"); compData.Enabled = Mogre.StringConverter.ParseBool(ni.Value); this.compositorStorage.Add(compData); } else { break; } } }