Esempio n. 1
0
 /// <summary>
 /// Runs the specified plug-in from the list of plug-ins.
 /// </summary>
 /// <param name="index">The plug-in to run.</param>
 /// <param name="type">The type of plug-in to run.</param>
 /// <param name="owner">The Form calling the plug-in.</param>
 public bool RunPlugIn( int index, DataInterfacing.PlugIns.PlugInTypes type, Form owner )
 {
     return RunPlugInAuto( index, type, owner, null );
 }
Esempio n. 2
0
        /// <summary>
        /// Runs the specified plug-in from the list of plug-ins.
        /// </summary>
        /// <param name="index">The plug-in to run.</param>
        /// <param name="type">The type of plug-in to run.</param>
        /// <param name="owner">The Form calling the plug-in.</param>
        /// <param name="filename">The filename to load into the plug-in.</param>
        public bool RunPlugInAuto( int index, DataInterfacing.PlugIns.PlugInTypes type, Form owner,
			string filename )
        {
            bool success = false;
            ArrayList plugins = null;

            switch ( type )
            {
                case DataInterfacing.PlugIns.PlugInTypes.Textures:
                    plugins = _plugins.TexturePlugIns;
                    break;

                case DataInterfacing.PlugIns.PlugInTypes.Importing:
                    plugins = _plugins.FileImportPlugIns;
                    break;

                case DataInterfacing.PlugIns.PlugInTypes.Exporting:
                    plugins = _plugins.FileExportPlugIns;
                    break;

                case DataInterfacing.PlugIns.PlugInTypes.Vertices:
                default:
                    plugins = _plugins.VertexPlugIns;
                    break;
            }

            if ( index > -1 && index < plugins.Count )
            {
                try
                {
                    PlugIn plugin = (PlugIn) plugins[index];
                    ArrayList textures = new ArrayList();
                    DataCore.Texture tex, texCopy;

                    if ( _page != null )
                    {
                        foreach ( DataCore.Texture t in _page.TerrainPatch.Textures )
                            textures.Add( t.Name );
                    }

                    if ( type != DataInterfacing.PlugIns.PlugInTypes.Importing )
                        plugin.SetPage( new TerrainPage( _page ) );

                    plugin.StartPosition = FormStartPosition.CenterParent;
                    plugin.SetOwner( owner );
                    plugin.SetTextures( textures );
                    LoadDesiredPlugInData( plugin );

                    if ( filename == null )
                        plugin.Run();
                    else
                    {
                        ArrayList objects = new ArrayList();

                        objects.Add( filename );
                        plugin.AutoRun( objects );
                    }

                    success = plugin.GetSuccess();

                    if ( success )
                    {
                        StoreLastPage( plugin.GetPage(), plugin.GetName() );

                        if ( plugin.GetPage() != null && plugin.GetModifiedTextures() )
                        {
                            textures = plugin.GetTextures();

                            // Build new texture details
                            for ( int i = 0; i < textures.Count; i++ )
                            {
                                texCopy = (Texture) textures[i];
                                tex = (DataCore.Texture) _page.TerrainPatch.Textures[i];

                                if ( tex.DXTexture != null && !tex.DXTexture.Disposed )
                                    tex.DXTexture.Dispose();

                                tex.DXTexture = D3D.TextureLoader.FromFile( _viewport.Device, texCopy.FileName );
                                tex.Name = texCopy.Name;
                                tex.FileName = texCopy.FileName;
                                tex.OperationText = texCopy.OperationText;
                                tex.Operation = GetTextureOperation( tex.OperationText );
                                tex.Mask = texCopy.Mask;
                                tex.Scale = texCopy.Scale;
                                tex.Shift = texCopy.Shift;

                                _page.TerrainPatch.Textures[i] = tex;
                            }
                        }

                        _page.TerrainPatch.CalculateNormals();
                        _buffers.RefreshIndexBuffer_Page();
                    }
                }
                catch ( Exception e )
                {
                    string message = "An exception has been thrown!\n\n";

                    message += "Source: " + e.Source + "\n";
                    message += "Error: " + e.Message;

                    MessageBox.Show( null, message, "Error Running Application", MessageBoxButtons.OK,
                        MessageBoxIcon.Error );
                }
                finally
                {
                }
            }

            return success;
        }
Esempio n. 3
0
 public void LoadPlugIn( DataInterfacing.PlugIns.PlugInTypes type )
 {
     _plugins.LoadPlugIn( type );
 }