Solve bug in SpinRanges
when indexing a phantom with a BitVector
#520
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This worked:
obj.motion = Translate(5e-4, 6e-4, 7e-4, TimeRange(0.0, 1.0), SpinRange(obj.x .> 0))
But this did not work, and it was not tested:
obj = obj[obj.x .> 0]
When executing this second line, the resulting phantom had lost its motion. Two additional method definitions for the
intersect_idx
function inside SpinSpan.jl can solve this.I also use this PR to solve a bug in
get_spin_coords(m::Motion)
. I initialized the displacement buffers as follows:ux, uy, uz = x .+ 0*t, y .+ 0*t, z .+ 0*t
And this is not correct, since it unnecessarily adds the initial positions to the displacements.
This is how it is solved:
ux, uy, uz = x .* (0*t), y .* (0*t), z .* (0*t)