// object owning accessory should be locked
        private static void Render3D(IPluginViewSettings pluginViewSettings, viz.Accessory accessory)
        {
            AccessoryPlugin3DViewSettings accessoryViewSettings = pluginViewSettings as AccessoryPlugin3DViewSettings;

            if ((accessoryViewSettings != null) && (accessory != null))
            {
                if (accessoryViewSettings.RenderOrientationCube)
                {
                    accessory.SetMode(viz.AccessoryMode.RotationCube);
                    accessory.Render();
                }

                if (accessoryViewSettings.RenderFrustum)
                {
                    accessory.SetMode(viz.AccessoryMode.ViewFrustum);
                    accessory.Render();
                }

                if (accessoryViewSettings.RenderFloorPlane)
                {
                    accessory.SetMode(viz.AccessoryMode.FloorPlane);
                    accessory.Render();
                }
            }
        }
        private AccessoryPlugin3DViewSettings(AccessoryPlugin3DViewSettings source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            this.frustum         = source.frustum;
            this.orientationCube = source.orientationCube;
            this.floorPlane      = source.floorPlane;
        }
        public IPluginViewSettings Add3DView(EventType eventType, Panel hostControl)
        {
            IPluginViewSettings pluginViewSettings = new AccessoryPlugin3DViewSettings();

            return(pluginViewSettings);
        }
        public IPluginViewSettings Add3DView(EventType eventType, Panel hostControl)
        {
            IPluginViewSettings pluginViewSettings = new AccessoryPlugin3DViewSettings();

            return pluginViewSettings;
        }
        private AccessoryPlugin3DViewSettings(AccessoryPlugin3DViewSettings source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            this.frustum = source.frustum;
            this.orientationCube = source.orientationCube;
            this.floorPlane = source.floorPlane;
        }