Fix #27346: When The FONT object is blank, the dimensions are calculated wong.
[blender.git] / intern / smoke / intern / original-main.cpp
1 //////////////////////////////////////////////////////////////////////
2 // This file is part of Wavelet Turbulence.
3 // 
4 // Wavelet Turbulence is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 // 
9 // Wavelet Turbulence is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 // 
14 // You should have received a copy of the GNU General Public License
15 // along with Wavelet Turbulence.  If not, see <http://www.gnu.org/licenses/>.
16 // 
17 // Copyright 2008 Theodore Kim and Nils Thuerey
18 // 
19 //////////////////////////////////////////////////////////////////////
20
21 #include <iostream>
22 #include "FLUID_3D.h"
23
24 using namespace std;
25
26 //////////////////////////////////////////////////////////////////////////////
27 //////////////////////////////////////////////////////////////////////////////
28 int main(int argc, char *argv[])
29 {
30   cout << "=========================================================================" << endl;
31   cout << " Wavelet Turbulence simulator " << endl;
32   cout << "=========================================================================" << endl;
33   cout << " This code is Copyright 2008 Theodore Kim and Nils Thuerey and released" << endl;
34   cout << " under the GNU public license. For more information see:" << endl << endl;
35   cout << "   http://www.cs.cornell.edu/~tedkim/WTURB" << endl;
36   cout << "=========================================================================" << endl;
37
38   int xRes = 48;
39   int yRes = 64;
40   int zRes = 48;
41   int amplify = 4;
42   int totalCells = xRes * yRes * zRes;
43   int amplifiedCells = totalCells * amplify * amplify * amplify;
44   
45   // print out memory requirements
46   long long int coarseSize = sizeof(float) * totalCells * 22 + 
47                    sizeof(unsigned char) * totalCells;
48   long long int fineSize = sizeof(float) * amplifiedCells * 7 + // big grids
49                  sizeof(float) * totalCells * 8 +     // small grids
50                  sizeof(float) * 128 * 128 * 128;     // noise tile
51   long long int totalMB = (coarseSize + fineSize) / 1048576;
52   cout << " Current coarse resolution: " << xRes << " x " << yRes << " x " << zRes << endl;
53   cout << " Current amplified resolution: " << xRes * amplify << " x " << yRes * amplify 
54                                             << " x " << zRes * amplify << endl;
55   cout << " At least " << totalMB << " MB of RAM needed " << endl;
56   cout << "=========================================================================" << endl;
57   cout.flush();
58
59   // create output directories
60   system("mkdir original.preview");
61   system("mkdir amplified.preview");
62   system("mkdir pbrt");
63   
64         FLUID_3D fluid(xRes, yRes, zRes, amplify);
65   for (int x = 0; x < 300; x++)
66   {
67     fluid.addSmokeColumn();
68     fluid.step();
69   }
70
71         return EXIT_SUCCESS;
72 }