function render_circle_3d(dl, vecPosition, iPointCount, flRadius, a_color, width)
local flStep = math.pi * 2 / iPointCount;
local m_points = {}
for a = 0, math.pi * 2, flStep do
local vecEnd = Vector(flRadius * math.cos(a + flStep) + vecPosition.x, flRadius * math.sin(a + flStep) + vecPosition.y, vecPosition.z)
table.insert(m_points, imgui.ImVec2(convert3DCoordsToScreen(vecEnd.x, vecEnd.y, vecEnd.z)))
end
local pointlist = ffi.new("ImVec2[?]", #m_points)
for i = 0, #m_points-1 do pointlist[i] = m_points[i+1] end
dl:AddPolyline(pointlist, #m_points, imgui.ColorConvertFloat4ToU32(a_color), true, width)
end