Mercurial > hg > orthanc-stone
comparison Framework/Toolbox/ParallelSlices.cpp @ 110:53025eecbc95 wasm
renamed SliceGeometry as CoordinateSystem3D
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 14 Jun 2017 15:50:38 +0200 |
parents | 28956ed68280 |
children | 2eca030792aa |
comparison
equal
deleted
inserted
replaced
109:53bd9277b025 | 110:53025eecbc95 |
---|---|
39 slices_.resize(other.slices_.size()); | 39 slices_.resize(other.slices_.size()); |
40 | 40 |
41 for (size_t i = 0; i < slices_.size(); i++) | 41 for (size_t i = 0; i < slices_.size(); i++) |
42 { | 42 { |
43 assert(other.slices_[i] != NULL); | 43 assert(other.slices_[i] != NULL); |
44 slices_[i] = new SliceGeometry(*other.slices_[i]); | 44 slices_[i] = new CoordinateSystem3D(*other.slices_[i]); |
45 } | 45 } |
46 } | 46 } |
47 | 47 |
48 | 48 |
49 ParallelSlices::~ParallelSlices() | 49 ParallelSlices::~ParallelSlices() |
57 } | 57 } |
58 } | 58 } |
59 } | 59 } |
60 | 60 |
61 | 61 |
62 void ParallelSlices::AddSlice(const SliceGeometry& slice) | 62 void ParallelSlices::AddSlice(const CoordinateSystem3D& slice) |
63 { | 63 { |
64 if (slices_.empty()) | 64 if (slices_.empty()) |
65 { | 65 { |
66 normal_ = slice.GetNormal(); | 66 normal_ = slice.GetNormal(); |
67 slices_.push_back(new SliceGeometry(slice)); | 67 slices_.push_back(new CoordinateSystem3D(slice)); |
68 } | 68 } |
69 else if (GeometryToolbox::IsParallel(slice.GetNormal(), normal_)) | 69 else if (GeometryToolbox::IsParallel(slice.GetNormal(), normal_)) |
70 { | 70 { |
71 slices_.push_back(new SliceGeometry(slice)); | 71 slices_.push_back(new CoordinateSystem3D(slice)); |
72 } | 72 } |
73 else | 73 else |
74 { | 74 { |
75 LOG(ERROR) << "Trying to add a slice that is not parallel to the previous ones"; | 75 LOG(ERROR) << "Trying to add a slice that is not parallel to the previous ones"; |
76 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 76 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
80 | 80 |
81 void ParallelSlices::AddSlice(const Vector& origin, | 81 void ParallelSlices::AddSlice(const Vector& origin, |
82 const Vector& axisX, | 82 const Vector& axisX, |
83 const Vector& axisY) | 83 const Vector& axisY) |
84 { | 84 { |
85 SliceGeometry slice(origin, axisX, axisY); | 85 CoordinateSystem3D slice(origin, axisX, axisY); |
86 AddSlice(slice); | 86 AddSlice(slice); |
87 } | 87 } |
88 | 88 |
89 | 89 |
90 const SliceGeometry& ParallelSlices::GetSlice(size_t index) const | 90 const CoordinateSystem3D& ParallelSlices::GetSlice(size_t index) const |
91 { | 91 { |
92 if (index >= slices_.size()) | 92 if (index >= slices_.size()) |
93 { | 93 { |
94 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | 94 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); |
95 } | 95 } |
133 { | 133 { |
134 std::auto_ptr<ParallelSlices> reversed(new ParallelSlices); | 134 std::auto_ptr<ParallelSlices> reversed(new ParallelSlices); |
135 | 135 |
136 for (size_t i = slices_.size(); i > 0; i--) | 136 for (size_t i = slices_.size(); i > 0; i--) |
137 { | 137 { |
138 const SliceGeometry& slice = *slices_[i - 1]; | 138 const CoordinateSystem3D& slice = *slices_[i - 1]; |
139 | 139 |
140 reversed->AddSlice(slice.GetOrigin(), | 140 reversed->AddSlice(slice.GetOrigin(), |
141 -slice.GetAxisX(), | 141 -slice.GetAxisX(), |
142 slice.GetAxisY()); | 142 slice.GetAxisY()); |
143 } | 143 } |