Kinetic Visualization (Visualisierung 2 - S2012)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ParticleFactory.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Particle.h"
4 
5 #include <memory>
6 
8 
12 {
13 public:
25  ParticleFactory(vl::ref<vl::Image> volume, vl::ref<vl::Image> gradient, vl::ref<vl::Image> curvature, float depth, float magThresh, int radius, int maxParticles );
26  ~ParticleFactory(void);
27 
28  // setters
29  void setDepth(float d) { _depth = d; }
31  void setRadius(int r) { _radius = r; }
32  void setMaxParticles(int p) { _maxParticles = p; }
33 
34  // getters
35  float getDepth() const { return _depth; }
36  float getMagnitudeThreshold() const { return _magnitudeThreshold; }
37  int getRadius() const { return _radius; }
38  int getMaxParticles() const { return _maxParticles; }
39 
41  void build();
42 
44  std::vector<std::shared_ptr<Particle>> getParticleList() const { return _particles; }
45 private:
46  bool containsParticle(int x, int y, int z) const;
47 
49  vl::ref<vl::Image> _volume;
51  vl::ref<vl::Image> _gradient;
53  vl::ref<vl::Image> _curvature;
55  float _depth;
59  int _radius;
62 
64  std::vector<std::shared_ptr<Particle>> _particles;
66  vl::ref<vl::Image> _particleImage;
67 };
68