Commit 34ec8a820f0bdf37b0f47c8fc9ef99c915765771

Authored by David Mayerich
1 parent b50c840e

added comments

stim/gl/gl_spider.h
... ... @@ -49,7 +49,7 @@ namespace stim
49 49 {
50 50  
51 51 template<typename T>
52   -class gl_spider : public virtual gl_texture<T>
  52 +class gl_spider // : public virtual gl_texture<T>
53 53 {
54 54 //doen't use gl_texture really, just needs the GLuint id.
55 55 //doesn't even need the texture iD really.
... ... @@ -65,66 +65,70 @@ class gl_spider : public virtual gl_texture&lt;T&gt;
65 65 double hit_time;// = 0;
66 66 #endif
67 67  
68   - //
69 68 stim::vec3<float> p; //vector designating the position of the spider.
70   - stim::vec3<float> d; //vector designating the orientation of the spider
71   - //always a unit vector.
72   - stim::vec<float> m; //magnitude of the spider vector.
73   - //mag[0] = length.
74   - //mag[1] = width.
  69 + stim::vec3<float> d; //normalized direction of travel
  70 + stim::vec<float> m; //size of the spider in tissue space
  71 +
75 72 std::vector<stim::vec3<float> > dV; //A list of all the direction vectors.
76   - std::vector<stim::vec3<float> > pV; //A list of all the position vectors.
  73 + std::vector<stim::vec3<float> > pV; //A list of all test positions (relative to p)
77 74 std::vector<stim::vec3<float> > mV; //A list of all the size vectors.
78 75  
79   - stim::matrix<float, 4> cT; //current Transformation matrix
80   - //From tissue space to texture space.
81   - GLuint texID;
82   - stim::vec<float> S; //Size of a voxel in the volume.
83   - stim::vec<float> R; //Dimensions of the volume.
  76 + stim::matrix<float, 4> cT; //current Transformation matrix (tissue)->(texture)
  77 + GLuint texID; //OpenGL ID for the texture to be traced
  78 + stim::vec<float> S; //Size of a voxel in the volume.
  79 + stim::vec<float> R; //Dimensions of the volume.
84 80  
85 81  
86 82 //GL and Cuda variables
87   - GLuint dList; //displaylist ID
88   - GLuint fboID; //framebuffer ID
89   - GLuint texbufferID; //texbuffer ID, only necessary for
90   - //cuda aspect of the calculation.
91   - GLuint pfboID; //buffer object for position tracking.
92   - GLuint ptexbufferID; //texture object for position tracking.
93   -
94   - GLuint mfboID; //buffer object for magnitude adjustment.
95   - GLuint mtexbufferID; //texture object for magnitude adjustment.
96   - GLuint bfboID; //buffer object for position adjustment.
97   - GLuint btexbufferID; //buffer object for position adjustment.
  83 + GLuint dList; //ID of the starting display lists (series of 4)
  84 + //dList + 0 = direction template rectangles
  85 + //dList + 1 = position template rectangles
  86 + //dList + 2 = size template rectangles
  87 + //dList + 3 = branch detection cylinder around the fiber
  88 +
  89 + GLuint fboID; //framebuffer ID for direction templates
  90 + GLuint texbufferID; //texture ID for direction templates
  91 +
  92 + GLuint pfboID; //framebuffer ID, position templates
  93 + GLuint ptexbufferID; //texture ID, position templates
  94 +
  95 + GLuint mfboID; //framebuffer ID, radius templates
  96 + GLuint mtexbufferID; //texture ID, radius templates
  97 +
  98 + GLuint bfboID; //framebuffer ID, cylinder (surrounding fiber)
  99 + GLuint btexbufferID; //texture ID, cylinder
98 100  
99 101 int numSamples; //The number of templates in the buffer.
100 102 int numSamplesPos;
101 103 int numSamplesMag;
102 104  
103   - float stepsize;// = 5.0; //Step size.
104   -// float stepsize = 3.0; //Step size.
105   - int current_cost; //variable to store the cost of the current step.
106   -
  105 + float length; //this will be a function of the radius
  106 + float stepsize; //this will be a function of the length
  107 +
  108 + int current_cost; //variable to store the cost of the current step
107 109  
108 110 //Tracing variables.
109   - std::stack< stim::vec3<float> > seeds; //seed positions.
110   - std::stack< stim::vec3<float> > seedsvecs; //seed directions.
111   - std::stack< float > seedsmags; //seed magnitudes.
  111 + std::stack< stim::vec3<float> > seeds; //seed positions
  112 + std::stack< stim::vec3<float> > seedsvecs; //seed directions
  113 + std::stack< float > seedsmags; //seed magnitudes
112 114  
113   - std::vector< stim::vec3<float> > cL; //Positions of line currently being traced.
114   - std::vector< stim::vec3<float> > cD; //Direction of line currently being traced.
115   - std::vector< stim::vec<float> > cM; //Magnitude of line currently being traced.
  115 + std::vector< stim::vec3<float> > cL; //centerline up to the current point
  116 + std::vector< stim::vec3<float> > cD; //directions up to the current point (debugging)
  117 + std::vector< stim::vec<float> > cM; //radius up to the current point
116 118  
117   - stim::glnetwork<float> nt; //object for storing the network.
118   - stim::glObj<float> sk;
  119 + stim::glnetwork<float> nt; //network object holding the currently traced centerlines
  120 + stim::glObj<float> sk; //OBJ file storing the network (identical to above)
119 121  
120   - stim::vec<float> rev; //reverse vector;
121   - stim::camera camSel;
122   - stim::vec3<float> ps;
123   - stim::vec3<float> ups;
124   - stim::vec3<float> ds;
  122 + //consider replacing with two seed points facing opposite directions
  123 + stim::vec<float> rev; //reverse vector
125 124  
126   - //static const float t_length = 16.0;
127   - float t_length;
  125 + //selection mode - detecting fiber intersections
  126 + stim::camera camSel; //camera for selection mode (detecting collisions)
  127 + stim::vec3<float> ps; //position for the selection camera
  128 + stim::vec3<float> ups; //up direction for the selection camera
  129 + stim::vec3<float> ds; //direction for the selection camera
  130 +
  131 + float t_length; //length of the template (in pixels)
128 132  
129 133 //cuda texture variables that keep track of the binding.
130 134 stim::cuda::cuda_texture t_dir;
... ... @@ -148,7 +152,6 @@ class gl_spider : public virtual gl_texture&lt;T&gt;
148 152 setMatrix(); //create the transformation matrix.
149 153 glCallList(dList); //move the templates to p, d, m.
150 154 glFinish();
151   -// glFlush();
152 155 #ifdef TIMING
153 156 direction_time += gpuStopTimer();
154 157 #endif
... ... @@ -324,7 +327,7 @@ class gl_spider : public virtual gl_texture&lt;T&gt;
324 327 ///Stored in a display list.
325 328 ///uses the default d vector <0,0,1>
326 329 void
327   - genDirectionVectors(float solidAngle = M_PI/2)
  330 + genDirectionVectors(float solidAngle = stim::PI/2)
328 331 {
329 332  
330 333 //Set up the vectors necessary for Rectangle creation.
... ... @@ -1318,7 +1321,7 @@ class gl_spider : public virtual gl_texture&lt;T&gt;
1318 1321 //--------------------------------------------------------------------------//
1319 1322  
1320 1323 void
1321   - MonteCarloDirectionVectors(int nSamples, float solidAngle = 2*M_PI)
  1324 + MonteCarloDirectionVectors(int nSamples, float solidAngle = stim::TAU)
1322 1325 {
1323 1326 // float PHI[2];//, Z[2];//, range;
1324 1327 // PHI[0] = asin(solidAngle/2);
... ...
stim/gl/gl_texture.h
... ... @@ -68,10 +68,10 @@ class gl_texture : public virtual image_stack&lt;T&gt;
68 68 ///@param string path to the directory with the image files.
69 69 ///Creates an instance of the gl_texture object with a path to the data.
70 70  
71   - gl_texture(std::string file_path)
  71 + gl_texture(std::string file_mask)
72 72 {
73   - path = file_path;
74   - image_stack<T>::load_images(path.append("/*.jpg"));
  73 + //path = file_mask;
  74 + image_stack<T>::load_images(file_mask);
75 75 setTextureType();
76 76 }
77 77  
... ...
stim/grids/image_stack.h
... ... @@ -32,12 +32,6 @@ public:
32 32  
33 33 stim::filename file_path(file_mask);
34 34  
35   - //if the file path is relative, update it with the current working directory
36   -// if(file_path.is_relative()){
37   -// stim::filename wd = stim::filename::cwd();
38   -// file_path = wd.get_relative(file_mask);
39   -// }
40   -
41 35 //get the list of files
42 36 std::vector<stim::filename> file_list = file_path.get_list();
43 37  
... ... @@ -46,11 +40,10 @@ public:
46 40 std::cout<<"STIM ERROR (image_stack): No matching files for loading a stack."<<std::endl;
47 41 exit(1);
48 42 }
49   - for(int i = 0; i < file_list.size(); i++)
50   - std::cout << file_list[i].str() << std::endl;
  43 + //for(int i = 0; i < file_list.size(); i++)
  44 + // std::cout << file_list[i].str() << std::endl;
51 45  
52 46 //load the first image and set all of the image_stack properties
53   -// std::cout<<"File to Load: "<<file_list[0].str()<<std::endl;
54 47 stim::image<T> I(file_list[0].str());
55 48  
56 49 //set the image resolution and number of channels
... ... @@ -64,8 +57,6 @@ public:
64 57  
65 58 //load and copy each image into the grid
66 59 for(unsigned int i = 0; i<R[3]; i++){
67   -
68   -// std::cout<<"File to Load: "<<file_list[i].str()<<std::endl;
69 60 //load the image
70 61 stim::image<T> I(file_list[i].str());
71 62  
... ...
stim/visualization/cylinder.h
... ... @@ -331,7 +331,7 @@ class cylinder
331 331 }
332 332 // std::cout << e[idx].U.len() << " " << mags[idx][0] << std::endl;
333 333 // std::cout << v2 << std::endl;
334   - return(v2);
  334 + return(v1);
335 335 // return (mags[idx][0] + (mags[idx+1][0]-mags[idx][0])*rat);
336 336 // (
337 337 }
... ...