comparison Framework/Toolbox/ParallelSlicesCursor.cpp @ 53:c2dc924f1a63 wasm

removing threading out of the framework
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 27 Apr 2017 16:57:49 +0200
parents 28956ed68280
children 53025eecbc95
comparison
equal deleted inserted replaced
52:37e504582af6 53:c2dc924f1a63
38 } 38 }
39 39
40 40
41 size_t ParallelSlicesCursor::GetSliceCount() 41 size_t ParallelSlicesCursor::GetSliceCount()
42 { 42 {
43 boost::mutex::scoped_lock lock(mutex_);
44
45 if (slices_.get() == NULL) 43 if (slices_.get() == NULL)
46 { 44 {
47 return 0; 45 return 0;
48 } 46 }
49 else 47 else
53 } 51 }
54 52
55 53
56 SliceGeometry ParallelSlicesCursor::GetSlice(size_t slice) 54 SliceGeometry ParallelSlicesCursor::GetSlice(size_t slice)
57 { 55 {
58 boost::mutex::scoped_lock lock(mutex_);
59
60 if (slices_.get() == NULL) 56 if (slices_.get() == NULL)
61 { 57 {
62 return SliceGeometry(); 58 return SliceGeometry();
63 } 59 }
64 else 60 else
68 } 64 }
69 65
70 66
71 void ParallelSlicesCursor::SetGeometry(const ParallelSlices& slices) 67 void ParallelSlicesCursor::SetGeometry(const ParallelSlices& slices)
72 { 68 {
73 boost::mutex::scoped_lock lock(mutex_);
74
75 slices_.reset(new ParallelSlices(slices)); 69 slices_.reset(new ParallelSlices(slices));
76 70
77 currentSlice_ = GetDefaultSlice(); 71 currentSlice_ = GetDefaultSlice();
78 } 72 }
79 73
80 74
81 SliceGeometry ParallelSlicesCursor::GetCurrentSlice() 75 SliceGeometry ParallelSlicesCursor::GetCurrentSlice()
82 { 76 {
83 boost::mutex::scoped_lock lock(mutex_);
84
85 if (slices_.get() != NULL && 77 if (slices_.get() != NULL &&
86 currentSlice_ < slices_->GetSliceCount()) 78 currentSlice_ < slices_->GetSliceCount())
87 { 79 {
88 return slices_->GetSlice(currentSlice_); 80 return slices_->GetSlice(currentSlice_);
89 } 81 }
94 } 86 }
95 87
96 88
97 bool ParallelSlicesCursor::SetDefaultSlice() 89 bool ParallelSlicesCursor::SetDefaultSlice()
98 { 90 {
99 boost::mutex::scoped_lock lock(mutex_);
100
101 size_t slice = GetDefaultSlice(); 91 size_t slice = GetDefaultSlice();
102 92
103 if (currentSlice_ != slice) 93 if (currentSlice_ != slice)
104 { 94 {
105 currentSlice_ = slice; 95 currentSlice_ = slice;
113 103
114 104
115 bool ParallelSlicesCursor::ApplyOffset(SliceOffsetMode mode, 105 bool ParallelSlicesCursor::ApplyOffset(SliceOffsetMode mode,
116 int offset) 106 int offset)
117 { 107 {
118 boost::mutex::scoped_lock lock(mutex_);
119
120 if (slices_.get() == NULL) 108 if (slices_.get() == NULL)
121 { 109 {
122 return false; 110 return false;
123 } 111 }
124 112
213 } 201 }
214 202
215 203
216 bool ParallelSlicesCursor::LookupSliceContainingPoint(const Vector& p) 204 bool ParallelSlicesCursor::LookupSliceContainingPoint(const Vector& p)
217 { 205 {
218 boost::mutex::scoped_lock lock(mutex_);
219
220 size_t slice; 206 size_t slice;
221 double distance; 207 double distance;
222 208
223 if (slices_.get() != NULL && 209 if (slices_.get() != NULL &&
224 slices_->ComputeClosestSlice(slice, distance, p)) 210 slices_->ComputeClosestSlice(slice, distance, p))