/// <summary> /// Animation generator function /// </summary> private void GenerateAnimationWorker( IProgressMonitor monitor, WaveAnimationParameters model ) { WaveAnimationGenerator generator = new WaveAnimationGenerator( ); WaveAnimation animation = generator.GenerateHeightmapSequence( model, monitor ); m_Marshaller.PostAction( m_View.ShowAnimation, animation ); }
/// <summary> /// Executes this task /// </summary> public override bool Execute( ) { string definitionFile = SourceFile.ItemSpec; WaveAnimationParameters buildParams; using ( FileStream stream = new FileStream( definitionFile, FileMode.Open, FileAccess.Read ) ) { buildParams = ( WaveAnimationParameters )s_BuildParametersSerializer.Deserialize( stream ); } //bool dependenciesAreUpToDate = true; //DateTime inputTimestamp = File.GetLastWriteTime( SourceFile.ItemSpec ); //for ( int frame = 0; frame < buildParams.Frames; ++frame ) //{ // string filename = Path.Combine( OutputDirectory.ItemSpec, frame + ".png" ); // if ( !File.Exists( filename ) || File.GetLastWriteTime( filename ) < inputTimestamp ) // { // dependenciesAreUpToDate = false; // break; // } //} //if ( dependenciesAreUpToDate ) //{ // Log.LogMessage( "All dependencies for wave animation \"{0}\" are up to date", SourceFile.ItemSpec ); // return true; //} // Bitmap[] animationBitmaps = new WaveAnimationGenerator( ).GenerateHeightmapSequence( buildParams ); //if ( !Directory.Exists( OutputDirectory.ItemSpec ) ) //{ // Directory.CreateDirectory( OutputDirectory.ItemSpec ); //} //for ( int frame = 0; frame < animationBitmaps.Length; ++frame ) //{ // animationBitmaps[ frame ].Save( Path.Combine( OutputDirectory.ItemSpec, frame + ".png" ), ImageFormat.Png ); //} Log.LogMessage( "Generating wave animation as " + ( buildParams.StoreHeights ? "heightmaps" : "bump maps" ) ); WaveAnimation animation = new WaveAnimationGenerator( ).GenerateSequence( buildParams, null ); animation.Save( OutputFile.ItemSpec ); // animation.Frames[0].Save( OutputFile.ItemSpec + ".0.png" ); return true; }