that's an old bug, you have to set model again after hiding
Code:
local Redraw = function(self)
if not self.model_path then return end
self:SetModelScale(1)
self:SetPosition(0,0,0)
if type(self.model_path) == "number" then
self:SetDisplayInfo(self.model_path)
else
self:SetModel(self.model_path)
end
self:SetModelScale(self.model_scale)
self:SetPosition(self.ox, self.oy, self.oz)
end
local ResetTransformations = function(self)
self:SetModelScale(1)
self:SetPosition(0,0,0)
end
local pmf = CreateFrame("PlayerModel", nil, UIParent )
pmf.model_scale = 1
pmf.ox = 0
pmf.oy = 0
pmf.oz = 0
pmf.model_path = "..."
pmf:SetScript("OnHide", ResetTransformations)
pmf:SetScript("OnShow", Redraw)
pmf.Redraw = Redraw
pmf.ResetTransformations = ResetTransformations
pmf:Redraw()