Subversion Repositories gelsvn

Rev

Rev 631 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 631 Rev 643
Line 71... Line 71...
71
		string short_name = display_method.substr(0,3);
71
		string short_name = display_method.substr(0,3);
72
		if(short_name== "wir")
72
		if(short_name== "wir")
73
			renderer = new WireframeRenderer(mani, smooth);
73
			renderer = new WireframeRenderer(mani, smooth);
74
        
74
        
75
		else if(short_name == "har")
75
		else if(short_name == "har")
76
			renderer = new HarmonicsRenderer(harmonics);
76
			renderer = new HarmonicsRenderer(mani, *harmonics, cs);
77
        
77
        
78
		else if(short_name == "iso")
78
		else if(short_name == "iso") {
79
			renderer = new IsophoteLineRenderer(mani, smooth);
79
			renderer = new IsophoteLineRenderer();
-
 
80
            renderer->compile_display_list(mani,smooth);
80
        
81
        }
81
		else if(short_name == "ref")
82
		else if(short_name == "ref") {
82
			renderer = new ReflectionLineRenderer(mani, smooth);
83
			renderer = new ReflectionLineRenderer();
-
 
84
            renderer->compile_display_list(mani,smooth);
83
        
85
        }
84
		else if(short_name == "gla")
86
		else if(short_name == "gla") {
85
			renderer = new GlazedRenderer(mani, smooth, bsphere_radius);
87
			renderer = new GlazedRenderer();
-
 
88
            dynamic_cast<GlazedRenderer*>(renderer)->compile_display_list(mani,smooth, r);
-
 
89
        }
-
 
90
 
86
        
91
        
87
		else if(short_name == "too")
92
		else if(short_name == "too") {
88
			renderer = new ToonRenderer(mani, smooth);
93
			renderer = new ToonRenderer();
-
 
94
            renderer->compile_display_list(mani,smooth);
-
 
95
        }
-
 
96
 
89
        
97
        
90
		else if(short_name == "cur"){
98
		else if(short_name == "cur"){
91
            static Console::variable<string> line_direction("min");
99
            static Console::variable<string> line_direction("min");
92
            static Console::variable<string> method("tensors");
100
            static Console::variable<string> method("tensors");
93
            static Console::variable<int> smoothing_iter(1);
101
            static Console::variable<int> smoothing_iter(1);
Line 117... Line 125...
117
            else
125
            else
118
                curvature_paraboloids(mani,
126
                curvature_paraboloids(mani,
119
                                      min_curv_direction,
127
                                      min_curv_direction,
120
                                      max_curv_direction,
128
                                      max_curv_direction,
121
                                      curvature);
129
                                      curvature);
122
			renderer = new LineFieldRenderer(mani, smooth, lines, r);
130
            renderer = new LineFieldRenderer();
-
 
131
            dynamic_cast<LineFieldRenderer*>(renderer)->compile_display_list(mani, lines, r);
123
		}
132
		}
124
		else if(short_name == "gau"){
133
		else if(short_name == "gau"){
125
            static Console::variable<float> smoothing(2.0f);
134
            static Console::variable<float> smoothing(2.0f);
126
            smoothing.reg(cs, "display.gaussian_curvature_renderer.smoothing", "");
135
            smoothing.reg(cs, "display.gaussian_curvature_renderer.smoothing", "");
127
			VertexAttributeVector<double> scalars(mani.allocated_vertices());
136
			VertexAttributeVector<double> scalars(mani.allocated_vertices());
Line 129... Line 138...
129
			double max_G = 0;
138
			double max_G = 0;
130
            
139
            
131
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v)
140
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v)
132
				max_G = max(abs(scalars[*v]), max_G);
141
				max_G = max(abs(scalars[*v]), max_G);
133
            
142
            
-
 
143
            renderer = new ScalarFieldRenderer();
134
			renderer = new ScalarFieldRenderer(mani, smooth, scalars, max_G, gamma);
144
            dynamic_cast<ScalarFieldRenderer*>(renderer)->compile_display_list(mani, smooth, scalars, max_G, gamma);
135
			
145
			
136
		}
146
		}
137
		else if(short_name == "mea"){
147
		else if(short_name == "mea"){
138
            static Console::variable<int> smoothing(2);
148
            static Console::variable<int> smoothing(2);
139
            smoothing.reg(cs, "display.mean_curvature_renderer.smoothing", "");
149
            smoothing.reg(cs, "display.mean_curvature_renderer.smoothing", "");
Line 146... Line 156...
146
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v){
156
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v){
147
				max_G = max(abs(scalars[*v]), max_G);
157
				max_G = max(abs(scalars[*v]), max_G);
148
				mean += scalars[*v];
158
				mean += scalars[*v];
149
			}
159
			}
150
            
160
            
-
 
161
            renderer = new ScalarFieldRenderer();
151
			renderer = new ScalarFieldRenderer(mani, smooth, scalars, max_G, gamma);
162
            dynamic_cast<ScalarFieldRenderer*>(renderer)->compile_display_list(mani, smooth, scalars, max_G, gamma);
152
		}
163
		}
153
		else if(short_name == "amb"){
164
		else if(short_name == "amb"){
154
            static Console::variable<int> smoothing(2);
165
            static Console::variable<int> smoothing(2);
155
            smoothing.reg(cs, "display.ambient_occlusion_renderer.smoothing", "");
166
            smoothing.reg(cs, "display.ambient_occlusion_renderer.smoothing", "");
156
            
167
            
Line 159... Line 170...
159
			double max_G = 0;
170
			double max_G = 0;
160
            
171
            
161
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v)
172
            for(VertexIDIterator v = mani.vertices_begin(); v != mani.vertices_end(); ++v)
162
				max_G = max(abs(scalars[*v]), max_G);
173
				max_G = max(abs(scalars[*v]), max_G);
163
            
174
            
164
			renderer = new AmbientOcclusionRenderer(mani, smooth, scalars, max_G);
175
            renderer = new AmbientOcclusionRenderer();
-
 
176
            dynamic_cast<AmbientOcclusionRenderer*>(renderer)->compile_display_list(mani, scalars, max_G);
165
			
177
			
166
		}
178
		}
167
        else if(short_name == "pol")
179
        else if(short_name == "deb")
168
        {
180
        {
169
            double vmin, vmax;
-
 
170
            VertexAttributeVector<double> fun;
-
 
171
            VertexAttributeVector<Vec2d> par;
181
            renderer = new DebugRenderer;
172
            make_height_fun(mani, fun, vmin, vmax);
182
            renderer->compile_display_list(mani, smooth);
173
            polarize_mesh(mani, fun, vmin, vmax, 15, par);
-
 
174
			renderer = new CircleFieldRenderer(mani, smooth, par, gamma);
-
 
175
 
-
 
176
        }
183
        }
177
        else
184
        else {
178
			renderer = new NormalRenderer(mani, smooth);
185
			renderer = new NormalRenderer();
-
 
186
            renderer->compile_display_list(mani, smooth);
-
 
187
        }
-
 
188
 
179
		
189
		
180
	}
190
	}
181
	view_ctrl.set_gl_modelview();
191
	view_ctrl.set_gl_modelview();
182
	renderer->draw();
192
	renderer->draw();
183
}
193
}