How can I animate the Box defined by Meshes.jl?
I thought the following code might work.
using GLMakie, Meshes, Rotations
b = Meshes.Box((-1, -1, -1), (1, 1, 1))
obs_b = Observable(b)
fig = Figure(size = (800, 500))
ax = Axis3(
fig[1, 1],
)
hidespines!(ax)
hidedecorations!(ax)
Meshes.viz(obs_b)
record(fig, "animation.gif", framerate = 20) do idx
# update observables
obs_b[] = b |> Rotate(AngleAxis(0.2, 1.0, 0.0, 0.0))
end
However, this gives an error:
ERROR: MethodError: Cannot `convert` an object of type TransformedGeometry{πΌ{3}, CoordRefSystems.Cart
esian3D{CoordRefSystems.NoDatum, Unitful.Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}(), Unitful.FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1),), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}(), nothing}}}, Meshes.Box{πΌ{3}, CoordRefSystems.Cartesian3D{CoordRefSystems.NoDatum, Unitful.Quantity{Float64, Unitful.Dim
ensions{(Unitful.Dimension{:Length}(1//1),)}(), Unitful.FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1),), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}(), nothing}}}}, Rotate{AngleAxis{Float64}}} to an object of type Meshes.Box{πΌ{3}, CoordRef
Systems.Cartesian3D{CoordRefSystems.NoDatum, Unitful.Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}(), Unitful.FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1),), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}(), nothing}}}}
The function `convert` exists, but no method is defined for this combination of argument types.