Skip to content

Commit

Permalink
Merge pull request #23 from thomvet/fix_issue22
Browse files Browse the repository at this point in the history
use concrete type instead of abstract Point2
  • Loading branch information
stelmo authored Dec 10, 2024
2 parents 2484dc1 + ccb1b5a commit 8fa0c4f
Show file tree
Hide file tree
Showing 12 changed files with 74 additions and 40 deletions.
8 changes: 5 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "TernaryDiagrams"
uuid = "54198458-1476-45ac-9e44-88a4201bfea6"
authors = ["St. Elmo Wilken <[email protected]> and contributors"]
version = "0.1.2"
version = "0.1.3"

[deps]
ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
Expand All @@ -12,10 +12,11 @@ VoronoiDelaunay = "72f80fcb-8c52-57d9-aff0-40c1a3526986"

[compat]
Aqua = "0.8"
CairoMakie = "0.11, 0.12"
ColorSchemes = "3"
DocStringExtensions = "0.9"
GeometricalPredicates = "0.4"
GLMakie = "0.9, 0.10"
GeometricalPredicates = "0.4"
JLD2 = "0.5"
Makie = "0.20, 0.21"
ReferenceTests = "0.10"
Expand All @@ -26,11 +27,12 @@ julia = "1"

[extras]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a"
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Aqua", "GLMakie", "JLD2", "ReferenceTests", "SafeTestsets", "Test"]
test = ["Aqua", "CairoMakie", "GLMakie", "JLD2", "ReferenceTests", "SafeTestsets", "Test"]
Binary file modified figs/axis.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figs/contour.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figs/contourfill.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figs/lines.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figs/scatter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figs/temp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 10 additions & 10 deletions src/axis.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function draw_triangle_base!(tr::TernaryAxis)
lines!(tr, [Point2(r1...), Point2(r2...), Point2(r3...), Point2(r1...)], color = :black)
lines!(tr, [Point2f(r1...), Point2f(r2...), Point2f(r3...), Point2f(r1...)], color = :black)
end

function draw_triangle_vertex_labels!(tr::TernaryAxis)
Expand Down Expand Up @@ -43,7 +43,7 @@ function draw_triangle_axis_labels!(tr::TernaryAxis)
x1 = x0 - sqrt(3) * (y1 - y0)
isnothing(tr.labelz_arrow[]) || text!(
tr,
Point2(x1, y1);
Point2f(x1, y1);
text = tr.labelz_arrow[],
align = (:center, :center),
rotation = π / 3 * arrow_label_rot_adj, # sometimes this is not aligned
Expand All @@ -60,7 +60,7 @@ function draw_triangle_axis_labels!(tr::TernaryAxis)
x1 = x0 + sqrt(3) * (y1 - y0)
isnothing(tr.labely_arrow[]) || text!(
tr,
Point2(x1, y1);
Point2f(x1, y1);
text = tr.labely_arrow[],
align = (:center, :center),
rotation = -π / 3 * arrow_label_rot_adj,
Expand All @@ -83,7 +83,7 @@ function draw_triangle_axis_labels!(tr::TernaryAxis)
y1 = y0 - y_adj
isnothing(tr.labelx_arrow[]) || text!(
tr,
Point2(x1, y1);
Point2f(x1, y1);
text = tr.labelx_arrow[],
align = (:center, :center),
fontsize = tr.arrow_label_fontsize[] * !tr.hide_triangle_labels[],
Expand All @@ -106,8 +106,8 @@ function draw_grid!(tr::TernaryAxis)
vec1 = [f1, f2, 0]
vec2 = [f1, 0, f2]

x1 = Point2((R*vec1)[2:3]...)
x2 = Point2((R*vec2)[2:3]...)
x1 = Point2f((R*vec1)[2:3]...)
x2 = Point2f((R*vec2)[2:3]...)

lines!(tr, [x1, x2], linewidth = grid_line_width, color = grid_line_color)

Expand All @@ -128,8 +128,8 @@ function draw_grid!(tr::TernaryAxis)
vec1 = [0, f2, f1]
vec2 = [f1, f2, 0]

x1 = Point2((R*vec1)[2:3]...)
x2 = Point2((R*vec2)[2:3]...)
x1 = Point2f((R*vec1)[2:3]...)
x2 = Point2f((R*vec2)[2:3]...)

lines!(tr, [x1, x2], linewidth = grid_line_width, color = grid_line_color)

Expand All @@ -150,8 +150,8 @@ function draw_grid!(tr::TernaryAxis)
vec1 = [f2, 0, f1]
vec2 = [0, f2, f1]

x1 = Point2((R*vec1)[2:3]...)
x2 = Point2((R*vec2)[2:3]...)
x1 = Point2f((R*vec1)[2:3]...)
x2 = Point2f((R*vec2)[2:3]...)

lines!(tr, [x1, x2], linewidth = grid_line_width, color = grid_line_color)

Expand Down
4 changes: 2 additions & 2 deletions src/scatter.jl
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
function Makie.plot!(tr::TernaryScatter)

# create observables
dpoints = Observable(Point2[])
dpoints = Observable(Point2f[])

function update_plot(xs, ys, zs)
empty!(dpoints[])
for (x, y, z) in zip(xs, ys, zs)
carts = R * [x, y, z]
push!(dpoints[], Point2(carts[2], carts[3]))
push!(dpoints[], Point2f(carts[2], carts[3]))
end
end

Expand Down
12 changes: 12 additions & 0 deletions test/issues.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#This testset checks that reported issues have been resolved; prevents regressions.

#https://github.com/stelmo/TernaryDiagrams.jl/issues/22
using CairoMakie
using TernaryDiagrams
@test_nowarn begin
fig = Figure()
ax = Axis(fig[1, 1])
ternaryaxis!(ax)
ternaryscatter!(ax, [0.2, 0.1], [0.2, 0.6], [0.6, 0.3])
fig
end
69 changes: 44 additions & 25 deletions test/referencetests.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using GLMakie
#using ColorSchemes
using TernaryDiagrams
using JLD2
using ReferenceTests
Expand All @@ -10,42 +9,55 @@ a2 = a2[1:20]
a3 = a3[1:20]
mus = mus[1:20]

#ReferenceTests.jl doesn't deal directly with the output of colorbuffer; this helper function
#converts the PermutedDimsArray returned by Makie.colorbuffer into a regular Array that
#ReferenceTests.jl can deal with.
function colorbuffer_array(fig)
arr = colorbuffer(fig, px_per_unit = 2)
arr2 = zeros(eltype(arr), size(arr))
arr2 .= arr
return arr2
end

function testimage_axis()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])

ternaryaxis!(
ax;
labelx = "a1",
labely = "a2",
labelz = "a3",
# more options available, check out attributes with ?ternaryaxis
)

xlims!(ax, -0.2, 1.2) # to center the triangle
ylims!(ax, -0.3, 1.1) # to center the triangle
hidedecorations!(ax) # to hide the axis decos
fig

arr = colorbuffer_array(fig)
return arr
end

function testimage_lines()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])

ternaryaxis!(ax);
ternaryaxis!(ax)
ternarylines!(ax, a1, a2, a3; color = :blue)

xlims!(ax, -0.2, 1.2)
ylims!(ax, -0.3, 1.1)
hidedecorations!(ax)
fig

arr = colorbuffer_array(fig)
return arr
end

function testimage_scatter()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])

ternaryaxis!(ax);
ternaryaxis!(ax)
ternaryscatter!(
ax,
a1,
Expand All @@ -59,12 +71,14 @@ function testimage_scatter()
xlims!(ax, -0.2, 1.2)
ylims!(ax, -0.3, 1.1)
hidedecorations!(ax)
fig

arr = colorbuffer_array(fig)
return arr
end

function testimage_contour()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])

ternarycontour!(
ax,
Expand All @@ -79,28 +93,32 @@ function testimage_contour()
pad_data = true,
)

ternaryaxis!(ax);
ternaryaxis!(ax)

xlims!(ax, -0.2, 1.2)
ylims!(ax, -0.3, 1.1)
hidedecorations!(ax)
fig

arr = colorbuffer_array(fig)
return arr
end

function testimage_contourf()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])
ternarycontourf!(ax, a1, a2, a3, mus; levels = 10)
ternaryaxis!(ax);
ternaryaxis!(ax)
xlims!(ax, -0.2, 1.2)
ylims!(ax, -0.3, 1.1)
hidedecorations!(ax)
fig

arr = colorbuffer_array(fig)
return arr
end

function testimage_temp()
fig = Figure();
ax = Axis(fig[1, 1]);
fig = Figure(size = (900, 600))
ax = Axis(fig[1, 1])

ternarycontourf!(
ax,
Expand Down Expand Up @@ -135,13 +153,14 @@ function testimage_temp()
markersize = 10,
)

ternaryaxis!(ax);
ternaryaxis!(ax)

xlims!(ax, -0.2, 1.2)
ylims!(ax, -0.3, 1.1)
hidedecorations!(ax)
fig

arr = colorbuffer_array(fig)
return arr
end

@test_reference "../figs/axis.png" testimage_axis()
Expand Down
1 change: 1 addition & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ using Test

@testset "TernaryDiagrams" begin
@safetestset "Aqua" include("aqua.jl")
@safetestset "Issue check" include("issues.jl")
@safetestset "ReferenceTests" include("referencetests.jl")
end

0 comments on commit 8fa0c4f

Please sign in to comment.