Skip to content
Snippets Groups Projects
Commit 33b80b83 authored by Wuttke, Joachim's avatar Wuttke, Joachim Committed by Wuttke, Joachim
Browse files

EquiScan -> bin width 0

parent 8c5b5b5a
No related branches found
No related tags found
No related merge requests found
...@@ -73,10 +73,19 @@ std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, dou ...@@ -73,10 +73,19 @@ std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, dou
Scale EquiScan(const std::string& name, size_t N, double start, double end) Scale EquiScan(const std::string& name, size_t N, double start, double end)
{ {
if (N < 2) ASSERT(N);
throw std::runtime_error("Cannot scan axis with less than two points"); std::vector<Bin1D> vec;
const double delta = (end - start) / (N - 1); if (N == 1) {
return EquiDivision(name, N, start - delta / 2, end + delta / 2); ASSERT(end == start);
vec.emplace_back(Bin1D::At(start));
} else {
ASSERT(start <= end);
for (size_t i = 0; i < N; ++i)
vec.emplace_back(Bin1D::At((N - 1 - i) * (start / (N - 1)) + i * (end / (N - 1))));
ASSERT(vec.size() == N);
}
return Scale(name, vec);
} }
Scale* newEquiScan(const std::string& name, size_t N, double start, double end) Scale* newEquiScan(const std::string& name, size_t N, double start, double end)
...@@ -84,14 +93,12 @@ Scale* newEquiScan(const std::string& name, size_t N, double start, double end) ...@@ -84,14 +93,12 @@ Scale* newEquiScan(const std::string& name, size_t N, double start, double end)
return new Scale(EquiScan(name, N, start, end)); return new Scale(EquiScan(name, N, start, end));
} }
std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start, std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start, double end)
double end)
{ {
return std::shared_ptr<Scale>(newEquiDivision(name, N, start, end)); return std::shared_ptr<Scale>(newEquiDivision(name, N, start, end));
} }
std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start, std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start, double end)
double end)
{ {
return std::unique_ptr<Scale>(newEquiDivision(name, N, start, end)); return std::unique_ptr<Scale>(newEquiDivision(name, N, start, end));
} }
...@@ -44,10 +44,8 @@ std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, dou ...@@ -44,10 +44,8 @@ std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, dou
//! Returns a EquiDivision determined by first and last point in scan. //! Returns a EquiDivision determined by first and last point in scan.
Scale EquiScan(const std::string& name, size_t N, double start, double end); Scale EquiScan(const std::string& name, size_t N, double start, double end);
Scale* newEquiScan(const std::string& name, size_t N, double start, double end); Scale* newEquiScan(const std::string& name, size_t N, double start, double end);
std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start, std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start, double end);
double end); std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start, double end);
std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start,
double end);
#endif // SWIG #endif // SWIG
#endif // BORNAGAIN_BASE_AXIS_MAKESCALE_H #endif // BORNAGAIN_BASE_AXIS_MAKESCALE_H
...@@ -78,7 +78,7 @@ void BasicAxisItem::setMax(double value) ...@@ -78,7 +78,7 @@ void BasicAxisItem::setMax(double value)
Scale BasicAxisItem::makeScale(std::string name) const Scale BasicAxisItem::makeScale(std::string name) const
{ {
return EquiDivision(name, binCount(), Units::deg2rad(min()), Units::deg2rad(max())); return EquiScan(name, binCount(), Units::deg2rad(min()), Units::deg2rad(max()));
} }
bool BasicAxisItem::isVisible() const bool BasicAxisItem::isVisible() const
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment