merge conflict
authorqmerigot@sphinx.inria.fr
Fri Nov 06 15:34:19 2009 +0100 (2009-11-06)
changeset 16c6adfac1205c
parent 15 52185d7e99b3
parent 14 0bfc67a366f8
child 17 901b0501ea6c
merge conflict
     1.1 --- a/cloudy/mesh/Mesh.hpp	Fri Nov 06 15:33:14 2009 +0100
     1.2 +++ b/cloudy/mesh/Mesh.hpp	Fri Nov 06 15:34:19 2009 +0100
     1.3 @@ -2,6 +2,8 @@
     1.4  #define MESH_HPP
     1.5  
     1.6  #include <istream>
     1.7 +
     1.8 +#include <cloudy/misc/Progress.hpp>
     1.9  #include <cloudy/Cloud.hpp>
    1.10  #include <cloudy/mesh/Gradient.hpp>
    1.11  
    1.12 @@ -88,6 +90,9 @@
    1.13  	 {
    1.14  	    std::vector<double> values(_points.size());
    1.15  	    double minval(0), maxval(0);
    1.16 +	    
    1.17 +	    std::cerr << "Colorizing ... \n";
    1.18 +	    cloudy::misc::Progress_display progress(_points.size(), std::cerr);
    1.19  
    1.20  	    for (size_t i = 0; i < _points.size(); ++i)
    1.21  	    { 
    1.22 @@ -116,6 +121,7 @@
    1.23  	    {
    1.24  	       double t = (values[i] - minval) / (maxval - minval);
    1.25  	       _colors[i] = g(t);
    1.26 +	       ++progress;
    1.27  	    }
    1.28  	 }
    1.29  
     2.1 --- a/cloudy/view/Viewer.hpp	Fri Nov 06 15:33:14 2009 +0100
     2.2 +++ b/cloudy/view/Viewer.hpp	Fri Nov 06 15:34:19 2009 +0100
     2.3 @@ -155,6 +155,7 @@
     2.4           double _radius;
     2.5           bool _spheres;
     2.6           int _sphere_tessel;
     2.7 +         double _low_threshold;
     2.8  	 
     2.9        public:
    2.10  	 Cloud_drawer(const std::string &name,
    2.11 @@ -166,7 +167,8 @@
    2.12  	    _percentage(1.0),
    2.13  	    _radius(1.0),
    2.14  	    _spheres(false),
    2.15 -	    _sphere_tessel(8)
    2.16 +	    _sphere_tessel(8),
    2.17 +	    _low_threshold(0.0)
    2.18  	 {}
    2.19  
    2.20           virtual void draw(size_t stride, bool fast)
    2.21 @@ -193,12 +195,12 @@
    2.22  		{
    2.23  		  double rr = (*_field)[i]*_radius/1000.0f;
    2.24  
    2.25 -		  if (rr <= 0.001)
    2.26 +		  if ((*_field)[i] < _low_threshold)
    2.27  		    continue;
    2.28  
    2.29  		  size_t div = _sphere_tessel;
    2.30  		  if (rr >= 0.1)
    2.31 -		    div = 16;
    2.32 +		    div *= 4;
    2.33  
    2.34  		  glPushMatrix();
    2.35  		  glTranslatef((*it)[0], (*it)[1], (*it)[2]);
    2.36 @@ -216,7 +218,7 @@
    2.37  	       for (Data_cloud::iterator it = _cloud->begin();
    2.38  		    it != _cloud->end(); ++it, ++i)
    2.39  	       {
    2.40 -		  if (i % stride != 0)
    2.41 +		 if (i % stride != 0 || (*_field)[i] < _low_threshold)
    2.42  		     continue;
    2.43  
    2.44  		  glPointSize((*_field)[i]*_radius);
    2.45 @@ -235,6 +237,19 @@
    2.46  	    editor->add_double_spin("Radius:", _radius, 0.0, 10.0);
    2.47  	    editor->add_bool("Spheres?", _spheres);
    2.48  	    editor->add_integer_spin("Tesselation", _sphere_tessel, 0, 16);
    2.49 +
    2.50 +	    
    2.51 +	    if ((!_field) || (_field->size() == 0))
    2.52 +	      return;
    2.53 +
    2.54 +	    double max = (*_field)[0], min = (*_field)[0];
    2.55 +	    for (size_t i = 1; i < (*_field).size(); ++i)
    2.56 +	      {
    2.57 +		max = std::max(max, (*_field)[i]);
    2.58 +		min = std::min(min, (*_field)[i]);
    2.59 +	      }
    2.60 +	    _low_threshold = min;
    2.61 +	    editor->add_double_spin("Low threshold:", _low_threshold, min, max);
    2.62  	 }
    2.63  	 
    2.64  	 virtual size_t stride()
     3.1 --- a/tools/offcolorize.cpp	Fri Nov 06 15:33:14 2009 +0100
     3.2 +++ b/tools/offcolorize.cpp	Fri Nov 06 15:34:19 2009 +0100
     3.3 @@ -20,19 +20,23 @@
     3.4  		 size_t comp = 0,
     3.5  		 double tmax = -1.0)
     3.6  {
     3.7 +  std::cerr << "loading cloud\n";
     3.8      cloudy::Data_cloud points;
     3.9      cloudy::load_cloud(isCloud, points);
    3.10  
    3.11 +  std::cerr << "loading field\n";
    3.12      cloudy::Data_cloud ifield;
    3.13      cloudy::load_cloud(isField, ifield);
    3.14 -
    3.15 +    
    3.16      std::vector<double> field;
    3.17      for (size_t i = 0; i < ifield.size(); ++i)
    3.18        field.push_back(ifield[i][comp]);
    3.19  
    3.20 +  std::cerr << "loading OFF\n";
    3.21      cloudy::Mesh mesh;
    3.22      mesh.read_off(isOff);
    3.23  
    3.24 +    std::cerr << "loading gradient\n";
    3.25      cloudy::Gradient ggr;
    3.26      ggr.read_ggr(isGradient);
    3.27  
    3.28 @@ -81,7 +85,8 @@
    3.29     
    3.30     if (param.size() == 5)
    3.31     {
    3.32 -      std::ofstream os(param[3].c_str());
    3.33 +     std::cerr << "outputing in " << param[4] << "\n";
    3.34 +      std::ofstream os(param[4].c_str());
    3.35        Process_all(isCloud, isField, isGradient, isOff, os, r, comp, tmax);
    3.36     }
    3.37     else
     4.1 --- a/tools/pcvcloud.cpp	Fri Nov 06 15:33:14 2009 +0100
     4.2 +++ b/tools/pcvcloud.cpp	Fri Nov 06 15:34:19 2009 +0100
     4.3 @@ -19,7 +19,7 @@
     4.4     cloudy::load_cloud(is, *cloud);
     4.5  
     4.6     Scalar_field_ptr weights;
     4.7 -   if (parameters.size() == 2)
     4.8 +   if (parameters.size() >= 2)
     4.9       {
    4.10         std::ifstream fs(parameters[1].c_str());
    4.11         weights = Scalar_field_ptr(new std::vector<double>());
    4.12 @@ -34,12 +34,14 @@
    4.13     w.add_drawer(Drawer_ptr(new Cloud_drawer("cloud", cloud, weights)));
    4.14  
    4.15     // temporary
    4.16 -#if 0
    4.17 -   cloudy::view::Mesh_ptr mesh (new cloudy::Mesh());
    4.18 -   std::ifstream iso("sharp_sphere.off");
    4.19 -   mesh->read_off(iso);
    4.20  
    4.21 -   w.add_drawer(Drawer_ptr(new Mesh_drawer("fandisk.off", mesh)));
    4.22 -#endif
    4.23 -   return true;
    4.24 +   if (parameters.size() == 3)
    4.25 +     {
    4.26 +       std::string meshname = parameters[2];
    4.27 +       cloudy::view::Mesh_ptr mesh (new cloudy::Mesh());
    4.28 +       std::ifstream iso(meshname.c_str());
    4.29 +       mesh->read_off(iso);
    4.30 +       
    4.31 +       w.add_drawer(Drawer_ptr(new Mesh_drawer(meshname, mesh)));
    4.32 +     }
    4.33  }