Revision Difference
DModelPanel:SetCamPos#513460
<function name="SetCamPos" parent="DModelPanel" type="panelfunc">⤶
<ispanel>yes</ispanel>⤶
<description>Sets the position of the camera.</description>⤶
<realm>Client</realm>⤶
<args>⤶
<arg name="pos" type="Vector">The position to set the camera at.</arg>⤶
</args>⤶
</function>⤶
⤶
<example>⤶
<description>Creates a model panel focused on Gman's face while he adjusts his tie.</description>⤶
<code>⤶
BGPanel = vgui.Create("DPanel")⤶
BGPanel:SetPos(20, 20)⤶
BGPanel:SetSize(200, 200)⤶
BGPanel:SetBackgroundColor(Color(0, 0, 0, 255))⤶
⤶
local mdl = vgui.Create("DModelPanel", BGPanel)⤶
mdl:SetSize(BGPanel:GetSize())⤶
mdl:SetModel("models/player/gman_high.mdl")⤶
⤶
function mdl:LayoutEntity(ent)⤶
ent:SetSequence(ent:LookupSequence("menu_gman"))⤶
mdl:RunAnimation() ⤶
return⤶
end⤶
⤶
local eyepos = mdl.Entity:GetBonePosition(mdl.Entity:LookupBone("ValveBiped.Bip01_Head1"))⤶
⤶
eyepos:Add(Vector(0, 0, 2)) -- Move up slightly⤶
⤶
mdl:SetLookAt(eyepos)⤶
⤶
mdl:SetCamPos(eyepos-Vector(-12, 0, 0)) -- Move cam in front of eyes⤶
⤶
mdl.Entity:SetEyeTarget(eyepos-Vector(-12, 0, 0))⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Sets a model panel's camera position so the model won't go outside it</description>⤶
<code>⤶
local mdlpnl = vgui.Create( "DModelPanel" )⤶
⤶
local mn, mx = mdlpnl.Entity:GetRenderBounds()⤶
local size = 0⤶
size = math.max( size, math.abs(mn.x) + math.abs(mx.x) )⤶
size = math.max( size, math.abs(mn.y) + math.abs(mx.y) )⤶
size = math.max( size, math.abs(mn.z) + math.abs(mx.z) )⤶
⤶
mdlpnl:SetFOV( 45 )⤶
mdlpnl:SetCamPos( Vector( size, size, size ) )⤶
mdlpnl:SetLookAt( (mn + mx) * 0.5 )⤶
</code>⤶
⤶
</example>