diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-08 01:03:43 -0400 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-08 01:08:59 -0400 |
commit | ffefd65055a6fa0542fe56f5a544749b0eb568fa (patch) | |
tree | 1f7c1c057845665fd063acbc486fe44e7b3ff7eb | |
parent | 2ebb2aa2f34a1f2fd68676d6a078dbf68852beb6 (diff) | |
download | wgmr-ffefd65055a6fa0542fe56f5a544749b0eb568fa.tar.gz wgmr-ffefd65055a6fa0542fe56f5a544749b0eb568fa.zip |
image map is not created any more
-rw-r--r-- | beam_trace.m | 10 | ||||
-rw-r--r-- | example_beam_trace.m | 5 |
2 files changed, 8 insertions, 7 deletions
diff --git a/beam_trace.m b/beam_trace.m index 0896975..90359d4 100644 --- a/beam_trace.m +++ b/beam_trace.m @@ -1,10 +1,11 @@ -function img = beam_trace(beams, faces, borders, border_limits, img) +function [processed_beams] = beam_trace(beams, faces, borders, border_limits) %% trace beam and all it reflections and refractions on faces % for beams and faces structure description see face_beam_interaction.m % border similar to faces cell array which enclose the beam % i.e. it does not leave the polygon consisting of border faces intensity_threshold = 1e-3; % intensity of the weakest beam which we still trace + processed_beams = {}; Nbeams=size(beams)(2); if ( Nbeams == 0 ) @@ -17,6 +18,7 @@ function img = beam_trace(beams, faces, borders, border_limits, img) beam=beams{i}; [is_face_hit, hit_position, hit_distance, new_beams] = face_beam_interaction(beam, faces); if (is_face_hit) + beams{i}.hit_position=hit_position; %% remove beams which are to weak to trace N_new_beams=size(new_beams)(2); intense_enough_beams={}; @@ -27,7 +29,8 @@ function img = beam_trace(beams, faces, borders, border_limits, img) intense_enough_beams{intense_beams_counter}=new_beams{k}; end end - img = beam_trace(intense_enough_beams, faces, borders, border_limits, img); + [new_processed_beams] = beam_trace(intense_enough_beams, faces, borders, border_limits); + processed_beams=cat(2,processed_beams, new_processed_beams); else % beam does not hit face but it should stop and borders beam.face=NA; @@ -35,9 +38,10 @@ function img = beam_trace(beams, faces, borders, border_limits, img) if (!is_face_hit) error('borders are badly defined, the beam misses them'); end + beams{i}.hit_position=hit_position; end - img=make_beam_trace(beam, hit_position, border_limits, img); end + processed_beams=cat(2,beams, processed_beams); end diff --git a/example_beam_trace.m b/example_beam_trace.m index dfd3fa8..30703d2 100644 --- a/example_beam_trace.m +++ b/example_beam_trace.m @@ -50,10 +50,7 @@ borders={border1,border2, border3, border4}; beams={beam1,beam2}; -img=zeros(500,500); border_limits=[-2,-2, 2,2]; figure(1); -img = beam_trace(beams, faces, borders, border_limits, img ); +[processed_beams] = beam_trace(beams, faces, borders, border_limits ); -fig_handle=2; -plot_beams_and_faces_figure(border_limits, img, faces, fig_handle ); |