Пример #1
0
 public void Clear2DPropertyView()
 {
     foreach (IPlugin plugin in this.plugins)
     {
         I2DVisualPlugin visualPlugin = plugin as I2DVisualPlugin;
         if (visualPlugin != null)
         {
             visualPlugin.ClearPropertyView();
         }
     }
 }
Пример #2
0
 public void Update2DPropertyView(EventType eventType, double x, double y, uint width, uint height)
 {
     foreach (IPlugin plugin in this.plugins)
     {
         I2DVisualPlugin visualPlugin = plugin as I2DVisualPlugin;
         if (visualPlugin != null)
         {
             visualPlugin.UpdatePropertyView(eventType, x, y, width, height);
         }
     }
 }
        protected override IPluginViewSettings AddView(IPlugin plugin, out Panel hostControl)
        {
            DebugHelper.AssertUIThread();

            hostControl = null;
            IPluginViewSettings value = null;

            I2DVisualPlugin visualPlugin = plugin as I2DVisualPlugin;

            if (visualPlugin != null)
            {
                hostControl = new Canvas();

                value = visualPlugin.Add2DView(this.EventType, hostControl);
            }

            return(value);
        }
        private void Image2DPropertyViewContent_Loaded(object source, RoutedEventArgs e)
        {
            DebugHelper.AssertUIThread();

            this.Loaded -= Image2DPropertyViewContent_Loaded;

            if ((this.pluginService != null) && (this.viewSettings != null))
            {
                foreach (IPlugin plugin in pluginService.Plugins)
                {
                    XElement pluginViewSettingsElement = viewSettings.GetPluginViewSettings(plugin.Id);

                    I2DVisualPlugin visualPlugin = plugin as I2DVisualPlugin;
                    if (visualPlugin != null)
                    {
                        ContentControl hostControl = new ContentControl();

                        IPluginViewSettings pluginViewSettings = visualPlugin.Add2DPropertyView(hostControl);

                        if (pluginViewSettings != null)
                        {
                            XElement pluginViewDataElement = null;
                            if (pluginViewSettingsElement != null)
                            {
                                pluginViewDataElement = pluginViewSettingsElement.Element("data");
                            }
                            pluginViewSettings.ReadFrom(pluginViewDataElement);
                        }

                        if ((pluginViewSettings != null) || (hostControl.Content != null))
                        {
                            PluginViewState pluginViewState = new PluginViewState(plugin, pluginViewSettings, hostControl);

                            this.pluginViewStates.Add(pluginViewState);

                            if (hostControl.Content != null)
                            {
                                this.List.Children.Add(hostControl);
                            }
                        }
                    }
                }
            }
        }
        private bool DoRender()
        {
            DebugHelper.AssertUIThread();

            bool result = false;

            {
                if ((this.image != null) && (this.Visibility == System.Windows.Visibility.Visible))
                {
                    result = true;

                    viz.Context context = null;

                    if (this.PluginService != null)
                    {
                        context = this.PluginService.GetContext(this.EventType);
                    }

                    if (this.image != null)
                    {
                        if (context != null)
                        {
                            if (!context.BeginRender())
                            {
                                context = null;
                            }
                        }
                    }

                    if (context != null)
                    {
                        this.OnBeginRender(context);

                        viz.Texture texture = null;

                        foreach (PluginViewState pluginViewState in this.PluginViewStates)
                        {
                            if (pluginViewState.IsEnabled)
                            {
                                IImageVisualPlugin visualPlugin = pluginViewState.Plugin as IImageVisualPlugin;
                                if (visualPlugin != null)
                                {
                                    texture = visualPlugin.GetTexture(this.EventType, pluginViewState.PluginViewSettings);

                                    if (texture != null)
                                    {
                                        break;
                                    }
                                }
                            }
                        }

                        float scaledWidth  = 0;
                        float scaledHeight = 0;

                        this.OnGetLayout(context, texture, ref scaledWidth, ref scaledHeight);

                        if (this.imageHost is Canvas)
                        {
                            uint w = (uint)scaledWidth;
                            uint h = (uint)scaledHeight;

                            if (this.image != null)
                            {
                                this.image.Width  = w;
                                this.image.Height = h;
                            }

                            this.FixRenderTargetSize(w, h);
                        }

                        if (this.renderTarget != null)
                        {
                            if (this.renderTarget.BeginRender(this.ClearColor, 1))
                            {
                                foreach (PluginViewState pluginViewState in this.PluginViewStates)
                                {
                                    if (pluginViewState.IsEnabled)
                                    {
                                        IImageVisualPlugin visualPlugin = pluginViewState.Plugin as IImageVisualPlugin;
                                        if (visualPlugin != null)
                                        {
                                            I2DVisualPlugin visualPlugin2d = visualPlugin as I2DVisualPlugin;
                                            if (visualPlugin2d != null)
                                            {
                                                visualPlugin2d.Render2D(this.EventType, pluginViewState.PluginViewSettings, context, texture, 0, 0, scaledWidth, scaledHeight);
                                            }

                                            I3DVisualPlugin visualPlugin3d = visualPlugin as I3DVisualPlugin;
                                            if (visualPlugin3d != null)
                                            {
                                                visualPlugin3d.Render3D(this.EventType, pluginViewState.PluginViewSettings, context, texture);
                                            }
                                        }
                                    }
                                }

                                this.OnEndRender(context, texture, scaledWidth, scaledHeight);

                                this.renderTarget.EndRender();
                            }
                        }

                        context.EndRender();
                    }
                }
            }

            return(result);
        }