summaryrefslogtreecommitdiff
path: root/src/gui/BeamRenderer.cc
blob: c3aab57474fab34b4c2582068b02c5e94bc91909 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * BeamRenderer.cc
 *
 *  Created on: May 27, 2011
 *      Author: jakob
 */

#include <QtOpenGL>
#include "BeamRenderer.h"
#include "util.h"

namespace vhc {

BeamRenderer::BeamRenderer() {
	// TODO Auto-generated constructor stub

}

BeamRenderer::~BeamRenderer() {
	// TODO Auto-generated destructor stub
}

void BeamRenderer::render(const Beam& beam) const {
	const Beam::ParticleCollection& particles = beam.getParticles();

	if (_spheres) {
		for (Beam::ParticleCollection::const_iterator i = particles.begin(); i != particles.end(); ++i) {
			double pos[] = {(**i).getPosition().getX(), (**i).getPosition().getY(), (**i).getPosition().getZ()};
			glPushMatrix();
			glTranslated(pos[0], pos[1], pos[2]);
			util::sphere(0.01);
			glPopMatrix();
		}
	} else {
		glBegin(GL_POINTS);
		for (Beam::ParticleCollection::const_iterator i = particles.begin(); i != particles.end(); ++i) {
			double pos[] = {(**i).getPosition().getX(), (**i).getPosition().getY(), (**i).getPosition().getZ()};
			glVertex3dv(pos);
		}
		glEnd();

	}

}

void BeamRenderer::setSpheresEnabled(bool value) {
	_spheres = value;
}

bool BeamRenderer::getSpheresEnabled() const {
	return _spheres;
}

}