Skip to content

Commit d0a2018

Browse files
authored
Scaling for Meshes (#52)
Co-authored-by: jfkunz
1 parent cd25325 commit d0a2018

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/optional_components/shapes.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,23 @@ mutable struct Mesh{T} <: Shape{T}
99
qoffset::UnitQuaternion{T}
1010

1111
path::String
12+
scale::SVector{3,T}
1213
color::RGBA
1314

14-
1515
function Mesh(path::String;
16-
color = RGBA(0.75, 0.75, 0.75), xoffset::AbstractVector = zeros(3), qoffset::UnitQuaternion = one(UnitQuaternion)
16+
scale::AbstractVector = ones(3), color = RGBA(0.75, 0.75, 0.75), xoffset::AbstractVector = zeros(3), qoffset::UnitQuaternion = one(UnitQuaternion)
1717
)
1818
T = promote_type(eltype.((xoffset, qoffset))...)
1919

20-
new{T}(xoffset, qoffset, path, color)
20+
new{T}(xoffset, qoffset, path, scale, color)
2121
end
2222

2323
function Mesh(path::String, m::Real, J::AbstractMatrix;
24-
name::String="", color = RGBA(0.75, 0.75, 0.75), xoffset::AbstractVector = zeros(3), qoffset::UnitQuaternion = one(UnitQuaternion)
24+
scale::AbstractVector = ones(3), name::String="", color = RGBA(0.75, 0.75, 0.75), xoffset::AbstractVector = zeros(3), qoffset::UnitQuaternion = one(UnitQuaternion)
2525
)
2626
T = promote_type(eltype.((m, J, xoffset, qoffset))...)
2727

28-
return Body(m, J; name=name, shape=new{T}(xoffset, qoffset, path, color))
28+
return Body(m, J; name=name, shape=new{T}(xoffset, qoffset, path, scale, color))
2929
end
3030
end
3131

src/ui/urdf.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ function parse_shape(xvisual, materialdict, T)
143143
shape = Sphere(r, zero(T), color = color, xoffset = x, qoffset = q)
144144
elseif name(shapenode) == "mesh"
145145
path = attribute(shapenode, "filename")
146-
shape = Mesh(path, zero(T), zeros(T, 3, 3), color = color, xoffset = x, qoffset = q)
146+
scale = parse_vector(shapenode, "scale", T, default = "1 1 1")
147+
shape = Mesh(path, zero(T), zeros(T, 3, 3), scale=scale, color = color, xoffset = x, qoffset = q)
147148
else
148149
@info "Unkown geometry."
149150
shape = nothing

0 commit comments

Comments
 (0)