GE Lua Documentation

Press F to search!

FloatPtr

Definition


-- @/lua/common/extensions/ui/imgui_custom_luaintf.lua:57
  function M.FloatPtr(x)
    if type(x) ~= 'number' then
      -- log('E', 'luaintf', 'conversion error')
      return {[0] = 0}
    end
    return {[0] = x}
  end

Callers

@/lua/ge/extensions/editor/masterSpline.lua
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.bankStrength)
      if im.SliderFloat('###4433', tmpPtr, 0.0, 1.0, "Auto Banking Strength = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.autoBankFalloff)
      if im.SliderFloat('###4434', tmpPtr, 0.5, 2.0, "Auto Banking Falloff = %.1f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selectedLayer.position)
              if im.SliderFloat("###8131", tmpPtr, latMin, latMax, "Lateral Position = %.2f") then
            im.PushItemWidth(-1)
            local tmpPtr = im.FloatPtr(terraParams.terraDOI)
            if im.SliderFloat('###23811', tmpPtr, DOImin, DOImax, "DOI = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(terraParams.terraMargin)
            if im.SliderFloat('###34341', tmpPtr, terraMarginMin, terraMarginMax, "Terraform Margin = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(terraParams.terraFalloff)
            if im.SliderFloat('###32226', tmpPtr, terraFalloffMin, terraFalloffMax, "Terraform Falloff = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(terraParams.terraRoughness)
            if im.SliderFloat('###32227', tmpPtr, 0.0, 1.0, "Noise Roughness = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(terraParams.terraScale)
            if im.SliderFloat('###32228', tmpPtr, 0.0, 1.0, "Noise Scale = %.2f") then
            im.PushItemWidth(-1)
            local tmpPtr = im.FloatPtr(autoParams.baseWidth)
            if im.SliderFloat("###35412", tmpPtr, autoRoadDefaults.minBaseWidth, autoRoadDefaults.maxBaseWidth, "Base Width = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(autoParams.slopeAvoidance)
            if im.SliderFloat("###35415", tmpPtr, 0, 1, "Slope Avoidance = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(autoParams.widthBlend)
            if im.SliderFloat("###65422", tmpPtr, 0, 1, "Added Width = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(autoParams.bankingStrength)
            if im.SliderFloat("###35417", tmpPtr, 0, 1, "Banking Strength = %.2f") then
@/lua/ge/extensions/editor/roadEditor.lua
local editingWidth = false
local nodeWidth = im.FloatPtr(0)
local function defaultWidthSlider()
  local defaultWidthPtr = im.FloatPtr(editor.getPreference("roadEditor.general.defaultWidth"))
  if im.InputFloat("##Default Width", defaultWidthPtr, 0.1, 0.5, "%0." .. editor.getPreference("ui.general.floatDigitCount") .. "f") then
@/lua/ge/extensions/editor/tech/roadArchitect/geometry.lua
    local w1Key, hL1Key, hR1Key = w1[k][0], hL1[k][0], hR1[k][0]
    w_q[k], hL_q[k], hR_q[k] = im.FloatPtr(w1Key + q * (w2[k][0] - w1Key)), im.FloatPtr(hL1Key + q * (hL2[k][0] - hL1Key)), im.FloatPtr(hR1Key + q * (hR2[k][0] - hR1Key))
  end
    local w1Key, hL1Key, hR1Key = w1[k][0], hL1[k][0], hR1[k][0]
    w_q[k], hL_q[k], hR_q[k] = im.FloatPtr(w1Key + q * (w2[k][0] - w1Key)), im.FloatPtr(hL1Key + q * (hL2[k][0] - hL1Key)), im.FloatPtr(hR1Key + q * (hR2[k][0] - hR1Key))
  end
    local w1Key, hL1Key, hR1Key = w1[k][0], hL1[k][0], hR1[k][0]
    w_q[k], hL_q[k], hR_q[k] = im.FloatPtr(w1Key + q * (w2[k][0] - w1Key)), im.FloatPtr(hL1Key + q * (hL2[k][0] - hL1Key)), im.FloatPtr(hR1Key + q * (hR2[k][0] - hR1Key))
  end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    isLocked = n.isLocked,
    rot = im.FloatPtr(n.rot[0]),
    widths = wC, heightsL = hLC, heightsR = hRC,
    widths = wC, heightsL = hLC, heightsR = hRC,
    incircleRad = im.FloatPtr(n.incircleRad[0]),
    isAutoBanked = n.isAutoBanked,
      for k, _ in pairs(p1.widths) do
        wDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.widths[k][0], p2.widths[k][0], p3.widths[k][0], p4.widths[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        wDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.widths[k][0], p2.widths[k][0], p3.widths[k][0], p4.widths[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        hRDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsR[k][0], p2.heightsR[k][0], p3.heightsR[k][0], p4.heightsR[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        hRDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsR[k][0], p2.heightsR[k][0], p3.heightsR[k][0], p4.heightsR[k][0], 0, 1, 2, 3, qPlus1))
      end
      for k, _ in pairs(p1.widths) do
        wDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.widths[k][0], p2.widths[k][0], p3.widths[k][0], p4.widths[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        wDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.widths[k][0], p2.widths[k][0], p3.widths[k][0], p4.widths[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        hRDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsR[k][0], p2.heightsR[k][0], p3.heightsR[k][0], p4.heightsR[k][0], 0, 1, 2, 3, qPlus1))
        hLDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsL[k][0], p2.heightsL[k][0], p3.heightsL[k][0], p4.heightsL[k][0], 0, 1, 2, 3, qPlus1))
        hRDisc[ctr][k] = im.FloatPtr(monotonicSteffen(p1.heightsR[k][0], p2.heightsR[k][0], p3.heightsR[k][0], p4.heightsR[k][0], 0, 1, 2, 3, qPlus1))
      end
    local nodes = road.nodes
    nodes[1].rot = im.FloatPtr(0.0)
    nodes[#nodes].rot = im.FloatPtr(0.0)
    nodes[1].rot = im.FloatPtr(0.0)
    nodes[#nodes].rot = im.FloatPtr(0.0)
    for i = 2, #nodes - 1 do
          local bankingSign = sign2((p2 - p1):cross(vertical):dot(p3 - p1))
          nodes[i].rot = im.FloatPtr(bankingSign * autoBankingFactor * angDeg)
        end
            origWidths[i][k] = nodes[i].widths[k][0]
            nodes[i].widths[k] = im.FloatPtr(nodes[i].widths[k][0] + extraHairpinLaneWidth)
          end
        for k, _ in pairs(origWidths[i]) do
          nodes[i].widths[k] = im.FloatPtr(origWidths[i][k])
        end
@/lua/ge/extensions/editor/audioRibbonEditor.lua
local isGizmoActive = false -- A flag which indicates if the gizmo is active, or not.
local masterSpeed = im.FloatPtr(defaultSpeed) -- Imgui binding for the speed slider.
local masterDepth = im.FloatPtr(defaultDepth) -- Imgui binding for the depth slider.
local masterSpeed = im.FloatPtr(defaultSpeed) -- Imgui binding for the speed slider.
local masterDepth = im.FloatPtr(defaultDepth) -- Imgui binding for the depth slider.
local ambientEventBinding = im.ArrayChar(128, defaultAmbientEventName) -- The event binding for the ambient emitter.
    local firstRibbon = ribbons[1]
    masterSpeed = im.FloatPtr(firstRibbon.speed)
    masterDepth = im.FloatPtr(firstRibbon.depths[1] or defaultDepth)
    masterSpeed = im.FloatPtr(firstRibbon.speed)
    masterDepth = im.FloatPtr(firstRibbon.depths[1] or defaultDepth)
    local emitters = firstRibbon.emitters
            if ribbon and #ribbon.depths > 0 then
              masterSpeed = im.FloatPtr(ribbon.speed)
              masterDepth = im.FloatPtr(ribbon.depths[1])
              masterSpeed = im.FloatPtr(ribbon.speed)
              masterDepth = im.FloatPtr(ribbon.depths[1])
              ambientEventBinding = im.ArrayChar(128, ribbon.emitters[1].eventNameStr)
        if editor.uiIconImageButton(icons.star_border, iconsSmall, cols.blueB, nil, nil, 'resetSpeedBtn') then
          masterSpeed = im.FloatPtr(defaultSpeed)
          selRibbon.speed = masterSpeed[0]
        if editor.uiIconImageButton(icons.star_border, iconsSmall, cols.blueB, nil, nil, 'resetDepthBtn') then
          masterDepth = im.FloatPtr(defaultDepth)
          for i = 1, #selRibbon.depths do
@/lua/ge/extensions/ui/bindingsLegend.lua
  if im.Begin("BindingsLegend Debug") then
    local var = im.FloatPtr(fadeDelaySeconds)
    im.PushItemWidth(120)
@/lua/ge/extensions/editor/util/vehicleFilterUtil.lua
        im.PushItemWidth(80)
        local minPtr = im.FloatPtr(filter.values.min)
        local maxPtr = im.FloatPtr(filter.values.max)
        local minPtr = im.FloatPtr(filter.values.min)
        local maxPtr = im.FloatPtr(filter.values.max)
        local minChanged = im.InputFloat("Min##min", minPtr)
        im.PushItemWidth(80)
        local minPtr = im.FloatPtr(filter.values.min)
        local maxPtr = im.FloatPtr(filter.values.max)
        local minPtr = im.FloatPtr(filter.values.min)
        local maxPtr = im.FloatPtr(filter.values.max)
        local minChanged = im.InputFloat("Min##min", minPtr)
    im.PushItemWidth(100)
    local weightPtr = im.FloatPtr(setting.weight or 1.0)
    if im.InputFloat("Weight##weight", weightPtr, 0.1, 1.0, "%.2f") then
          im.PushItemWidth(80)
          local minPtr = im.FloatPtr(filter.values.min)
          local maxPtr = im.FloatPtr(filter.values.max)
          local minPtr = im.FloatPtr(filter.values.min)
          local maxPtr = im.FloatPtr(filter.values.max)
          local minChanged = im.InputFloat("Min##min", minPtr)
          im.PushItemWidth(80)
          local minPtr = im.FloatPtr(filter.values.min)
          local maxPtr = im.FloatPtr(filter.values.max)
          local minPtr = im.FloatPtr(filter.values.min)
          local maxPtr = im.FloatPtr(filter.values.max)
          local minChanged = im.InputFloat("Min##min", minPtr)
@/lua/ge/extensions/editor/terrainAndRoadImporter.lua

local zMax = im.FloatPtr(400.0)
local DOI = im.IntPtr(150)
local DOI = im.IntPtr(150)
local margin = im.FloatPtr(7.0)
@/lua/ge/extensions/util/screenshotCreator.lua
  reloadUIOnJobFinished = im.BoolPtr(true),
  camSpeedPtr = im.FloatPtr(core_camera.getSpeed()),
  drivingEnabled = true,
  keepAspectRatio = im.BoolPtr(false),
  multiplyRes = im.FloatPtr(2)
}
@/lua/ge/extensions/editor/slotTrafficEditor.lua
    -- radius
    local radPtr = im.FloatPtr(node.radius)
    editor.uiInputFloat("Radius", radPtr, 0.1, 0.5, nil, nil, editEnded)
    -- drivability
    local drivabilityPtr = im.FloatPtr(linkData.drivability)
    editor.uiInputFloat("Drivability", drivabilityPtr, 0.1, 0.5, nil, nil, editEnded)
    -- speed limit
    local speedLimitPtr = im.FloatPtr(linkData.speedLimit)
    editor.uiInputFloat("Speed Limit", speedLimitPtr, 0.1, 0.5, nil, nil, editEnded)
@/lua/ge/extensions/gameplay/drift/sounds.lua
local simulateDriftPtr = im.BoolPtr(false)
local driftSpeedPtr = im.FloatPtr(20)
local driftAnglePtr = im.FloatPtr(40)
local driftSpeedPtr = im.FloatPtr(20)
local driftAnglePtr = im.FloatPtr(40)
local wallDistancePtr = im.FloatPtr(3)
local driftAnglePtr = im.FloatPtr(40)
local wallDistancePtr = im.FloatPtr(3)
local currentlyDoingATransition = false
@/lua/ge/extensions/editor/sitesEditor/parkingSpots.lua
  self.isMultiSpot = im.BoolPtr(false)
  self.multiSpotData = { spotAmount = im.IntPtr(1), spotOffset = im.FloatPtr(0), spotDirection = "Left", spotRotation = im.FloatPtr(0) }
  transformUtil = require('/lua/ge/extensions/editor/util/transformUtil')("Edit Sites", "Transform")
  self.isMultiSpot = im.BoolPtr(false)
  self.multiSpotData = { spotAmount = im.IntPtr(1), spotOffset = im.FloatPtr(0), spotDirection = "Left", spotRotation = im.FloatPtr(0) }
  transformUtil = require('/lua/ge/extensions/editor/util/transformUtil')("Edit Sites", "Transform")
@/lua/ge/extensions/core/vehicle/mirror.lua
      for k,v in pairs(imguiMirrordata) do
        imguiSliderData[k] = {im.FloatPtr(v.angleOffset.x or 0), im.FloatPtr(v.angleOffset.z or 0)}
      end
      for k,v in pairs(imguiMirrordata) do
        imguiSliderData[k] = {im.FloatPtr(v.angleOffset.x or 0), im.FloatPtr(v.angleOffset.z or 0)}
      end
@/lua/ge/extensions/editor/tech/roadArchitect/junctions.lua
      local profile = r.profile
      profile.condition = im.FloatPtr(jct.condition[0])
      profile.conditionSeed = im.IntPtr(jct.conditionSeed[0] + ctr)
  if isLowerSWAtPedX then
    roadCR_X.nodes[2].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[3].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[2].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[3].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[2].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[3].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[2].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[3].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[2].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadCR_X.nodes[3].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
  end
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr((boxXHalf - 0.5 * pedXWidth) / boxX),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr((boxXHalf - 0.5 * pedXWidth) / boxX),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
  if isLowerSWAtPedX then
    profileTL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileTL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
  end
  if isLowerSWAtPedX then
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    if isYOneWay then
      if isY1Outwards then
        roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY1_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
        roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY1_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
      else
      else
        roadY1_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY1_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
        roadY1_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY1_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
      end
      if isY2Outwards then
        roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
      else
      else
        roadY2_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
        roadY2_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
      end
    else
      roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
      roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
      roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
      roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
      roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
      roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
      roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
      roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
      roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
      roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
    end
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(laneIdx), laneMax = im.IntPtr(laneIdx),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(laneIdx), laneMax = im.IntPtr(laneIdx),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
              laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
              lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
              width = im.FloatPtr(pedXWidth),
              lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
              width = im.FloatPtr(pedXWidth),
              isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
              isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              mat = jct.arrowMat,
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              mat = jct.arrowMat,
              rot = im.IntPtr(sRot),
              pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
              numRows = im.IntPtr(4), numCols = im.IntPtr(4),
              rot = im.IntPtr(sRot),
              pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
              numRows = im.IntPtr(4), numCols = im.IntPtr(4),
              frame = im.IntPtr(frame),
              vertOffset = im.FloatPtr(0.0),
              latOffset = im.FloatPtr(0.0),
              vertOffset = im.FloatPtr(0.0),
              latOffset = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              latOffset = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              jitter = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              jitter = im.FloatPtr(0.0),
              useWorldZ = im.BoolPtr(false),
              laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
              lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
              width = im.FloatPtr(pedXWidth),
              lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
              width = im.FloatPtr(pedXWidth),
              isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
              isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              mat = jct.arrowMat,
              texLen = im.FloatPtr(5),
              fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
              mat = jct.arrowMat,
              rot = im.IntPtr(sRot),
              pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
              numRows = im.IntPtr(4), numCols = im.IntPtr(4),
              rot = im.IntPtr(sRot),
              pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
              numRows = im.IntPtr(4), numCols = im.IntPtr(4),
              frame = im.IntPtr(frame),
              vertOffset = im.FloatPtr(0.0),
              latOffset = im.FloatPtr(0.0),
              vertOffset = im.FloatPtr(0.0),
              latOffset = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              latOffset = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              jitter = im.FloatPtr(0.0),
              spacing = im.FloatPtr(5.0),
              jitter = im.FloatPtr(0.0),
              useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrossroadsSign,
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMax),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMax),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
  if isLowerSWAtPedX then
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
  end
    if isLowerSWAtPedX then
      roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
      roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
      roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
      roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
      roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
      if isYOneWay then
        if isY2Outwards then
          roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
          roadY2_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
          roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
          roadY2_O.nodes[5].heightsL[-1] = im.FloatPtr(0.01)
        else
        else
          roadY2_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
          roadY2_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
          roadY2_O.nodes[1].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
          roadY2_O.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
        end
      else
        roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
        roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
      end
      end
      roadT_S.nodes[1].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[2].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[1].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[2].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[5].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[2].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[5].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[6].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[5].heightsL[1] = im.FloatPtr(0.01)
      roadT_S.nodes[6].heightsL[1] = im.FloatPtr(0.01)
    end
        laneMin = im.IntPtr(laneIdx), laneMax = im.IntPtr(laneIdx),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(sRot),
        pos = im.FloatPtr(sPos), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0] * offsetSign),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame1),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame2),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame1),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame2),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
          lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(sRot),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(sRot),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(sRot),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignL,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignL,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignR,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignR,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(laneIdx), isLeft = im.BoolPtr(sIsLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLeftOrRightSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLeftOrRightSign,
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(sRot),
      pos = im.FloatPtr(0.5), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(latOffSign * 0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMax),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(1.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame1),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame2),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame1),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame2),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignL,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignL,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignR,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultTJunctionSignR,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLeftOrRightSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLeftOrRightSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesY), laneMax = im.IntPtr(numLanesY),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
  if isLowerSWAtPedX then
    profileTL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileTL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileTR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
    profileBL_S[1].heightL = im.FloatPtr(0.01)
    profileBR_S[1].heightL = im.FloatPtr(0.01)
  end
  if isLowerSWAtPedX then
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadX2_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
    roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadY1_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
    roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
    roadY2_O.nodes[5].heightsL[numLanesY + 1] = im.FloatPtr(0.01)
    roadY2_O.nodes[5].heightsL[-numLanesY - 1] = im.FloatPtr(0.01)
  end
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
        width = im.FloatPtr(1.0),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        texLen = im.FloatPtr(5),
        fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
        mat = trafficBoomMeshPath,
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        rot = im.IntPtr(3),
        pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
        numRows = im.IntPtr(1), numCols = im.IntPtr(1),
        frame = im.IntPtr(0),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        vertOffset = im.FloatPtr(0.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        latOffset = im.FloatPtr(jct.trafficLatOff[0]),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        spacing = im.FloatPtr(5.0),
        jitter = im.FloatPtr(0.0),
        useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoundaboutSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr(aPos),
          width = im.FloatPtr(pedXWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = jct.arrowMat,
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          rot = im.IntPtr(3),
          pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
          numRows = im.IntPtr(4), numCols = im.IntPtr(4),
          frame = im.IntPtr(frame),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(-i), laneMax = im.IntPtr(-i),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            lane = im.IntPtr(-i), isLeft = im.BoolPtr(true), off = im.FloatPtr((capLength - jct.arrowBackDistFromEnd[0]) / capLength),
            width = im.FloatPtr(pedXWidth),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = jct.arrowMat,
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            rot = im.IntPtr(3),
            pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
            numRows = im.IntPtr(4), numCols = im.IntPtr(4),
            frame = im.IntPtr(frame),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesX), laneMax = im.IntPtr(numLanesX),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesY), laneMax = im.IntPtr(numLanesY),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(-numLanesY), laneMax = im.IntPtr(numLanesY),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(pedXWidth),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPedXMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
    if jct.isY1Outwards[0] then
      roadX1_O.nodes[1].heightsL[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsL[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
    else
    else
      roadX1_O.nodes[5].heightsL[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsL[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsR[-1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadX1_O.nodes[5].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
    end
  else
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsL[-numLanesX - 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
    roadX1_O.nodes[5].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
  end
  local tapIdx = numLanesX + 1
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(laneWidthX)
  local tapIdx = numLanesX + 2
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(laneWidthX)
  roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(laneWidthX)
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.33), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.33), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.1), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-0.2),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
    local tapIdx = 1
    roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(cResWidth * 0.5)
    roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(cResWidth * 0.5)
    roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(cResWidth * 0.5)
    roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(cResWidth * 0.5)
    roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(cResWidth * 0.5)
    roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
    roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
    roadS2.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
    roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
    roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
    roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
    roadS2.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
  end
    local dW = hardWidth - jct.sidewalkWidth[0]
    roadS2.nodes[1].widths[tapIdx2] = im.FloatPtr(hardWidth)
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
    roadS2.nodes[1].widths[tapIdx2] = im.FloatPtr(hardWidth)
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
    roadS2.nodes[4].widths[tapIdx2] = im.FloatPtr(jct.sidewalkWidth[0])
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
    roadS2.nodes[4].widths[tapIdx2] = im.FloatPtr(jct.sidewalkWidth[0])
    if not isOneWay then
    if not isOneWay then
      roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(hardWidth)
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
      roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(hardWidth)
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 1.0 / 3.0))
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
      roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(jct.sidewalkWidth[0])
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth - (dW * 2.0 / 3.0))
      roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(jct.sidewalkWidth[0])
    end
  else
    roadS2.nodes[1].widths[tapIdx2] = im.FloatPtr(hardWidth)
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth * 2.0 / 3.0)
    roadS2.nodes[1].widths[tapIdx2] = im.FloatPtr(hardWidth)
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth * 2.0 / 3.0)
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth / 3.0)
    roadS2.nodes[2].widths[tapIdx2] = im.FloatPtr(hardWidth * 2.0 / 3.0)
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth / 3.0)
    roadS2.nodes[4].widths[tapIdx2] = im.FloatPtr(0.0)
    roadS2.nodes[3].widths[tapIdx2] = im.FloatPtr(hardWidth / 3.0)
    roadS2.nodes[4].widths[tapIdx2] = im.FloatPtr(0.0)
    if not isOneWay then
    if not isOneWay then
      roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(hardWidth)
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth * 2.0 / 3.0)
      roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(hardWidth)
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth * 2.0 / 3.0)
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS2.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth * 2.0 / 3.0)
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
      roadS2.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS2.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
    end
    if isOneWay then
      roadS3.nodes[1].heightsL[-1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsL[-1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsR[-1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
    else
    else
      roadS3.nodes[4].heightsL[-numLanesX - 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsL[-numLanesX - 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsR[-numLanesX - 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.001)
      roadS3.nodes[4].heightsR[numLanesX + 1] = im.FloatPtr(0.001)
    end
      laneMin = im.IntPtr(-1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(1.0),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(1.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultSeperatorMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultSeperatorMaterial,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(leftIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(leftIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(rIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(rIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(0),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(-0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(rIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(rIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultCrashBarrierPath,
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(2),
    pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    vertOffset = im.FloatPtr(-0.15),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    latOffset = im.FloatPtr(0.15),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(-0.17),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultKeepRightSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultKeepRightSign,
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.95), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.95), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultKeepRightSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultKeepRightSign,
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(1),
      pos = im.FloatPtr(0.05), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoadNarrowsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoadNarrowsSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.89), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.89), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoadNarrowsSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultRoadNarrowsSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
    if isSidewalk then
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(sidewalkWidth)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(sidewalkWidth)
    else
    else
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
    end
    if isSidewalk then
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) * (2.0 / 3.0))
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(sidewalkWidth)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(sidewalkWidth + (hardWidth - sidewalkWidth) / 3.0)
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(sidewalkWidth)
    else
    else
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[4].widths[tapIdx] = im.FloatPtr(hardWidth)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * (2.0 / 3.0))
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
      roadS1.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth / 3.0)
      roadS1.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
    end
    if not jct.isY1Outwards[0] then
      roadS2.nodes[4].heightsL[-1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsL[-1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsR[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[4].heightsR[numLanesX + 1] = im.FloatPtr(0.01)
    else
    else
      roadS2.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsL[-1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsR[-1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsL[numLanesX + 1] = im.FloatPtr(0.01)
      roadS2.nodes[1].heightsR[numLanesX + 1] = im.FloatPtr(0.01)
    end
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.5),
      width = im.FloatPtr(2.0),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.5),
      width = im.FloatPtr(2.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(-0.5),
      width = im.FloatPtr(2.0),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(-0.5),
      width = im.FloatPtr(2.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(-0.5),
      width = im.FloatPtr(2.0),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(true), off = im.FloatPtr(-0.5),
      width = im.FloatPtr(2.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lMax), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.5),
      width = im.FloatPtr(2.0),
      lane = im.IntPtr(lMax), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.5),
      width = im.FloatPtr(2.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      texLen = im.FloatPtr(18),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = jct.edgeBlendMat or defaultEdgeBlendMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
  local tapIdx = numLanesX + 2
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS2.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  local tapIdx = numLanesX + 2
  roadS3.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS3.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS3.nodes[1].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS3.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS3.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[1].widths[tapIdx] = im.FloatPtr(0.0)
  roadS3.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[2].widths[-tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS3.nodes[2].widths[tapIdx] = im.FloatPtr(jct.sepWidthI[0])
  roadS3.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS3.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS3.nodes[3].widths[-tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  roadS3.nodes[3].widths[tapIdx] = im.FloatPtr(jct.sepWidthO[0])
  local tapIdx = numLanesX + 2
  roadS4.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
  roadS4.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS4.nodes[4].widths[tapIdx] = im.FloatPtr(0.0)
  roadS4.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS4.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[4].widths[-tapIdx] = im.FloatPtr(0.0)
  roadS4.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[3].widths[tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * 0.66666666667)
  roadS4.nodes[3].widths[-tapIdx] = im.FloatPtr(hardWidth * 0.3333333333)
  roadS4.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * 0.66666666667)
  roadS4.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth * 0.66666666667)
  roadS4.nodes[2].widths[tapIdx] = im.FloatPtr(hardWidth * 0.66666666667)
  roadS4.nodes[2].widths[-tapIdx] = im.FloatPtr(hardWidth * 0.66666666667)
    laneMin = im.IntPtr(-numLanesX - 2), laneMax = im.IntPtr(-numLanesX - 2),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(1.0),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(1.0),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultSeperatorMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultSeperatorMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(numLanesX + 2), laneMax = im.IntPtr(numLanesX + 2),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(1.0),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(1.0),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultSeperatorMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultSeperatorMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
    laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
    width = im.FloatPtr(0.25),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    texLen = im.FloatPtr(5),
    fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
    mat = defaultEdgeMaterial,
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    rot = im.IntPtr(3),
    pos = im.FloatPtr(laneWidthX * 0.5), size = im.FloatPtr(jct.arrowSize[0]),
    numRows = im.IntPtr(4), numCols = im.IntPtr(4),
    frame = im.IntPtr(0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    vertOffset = im.FloatPtr(0.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    latOffset = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    spacing = im.FloatPtr(5.0),
    jitter = im.FloatPtr(0.0),
    useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 2), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 2), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 3), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 3), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 4), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 4), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(-0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 4), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 4), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultCrashBarrierPath,
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(2),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      vertOffset = im.FloatPtr(-0.15),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      latOffset = im.FloatPtr(0.15),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(-0.17),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(-numLanesX - 1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPassEitherSideSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultPassEitherSideSign,
      rot = im.IntPtr(3),
      pos = im.FloatPtr(1.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(3),
      pos = im.FloatPtr(1.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-jct.sepWidthO[0] * 0.5),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(-jct.sepWidthO[0] * 0.5),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(-jct.sepWidthO[0] * 0.5),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      lane = im.IntPtr(numLanesX + 1), isLeft = im.BoolPtr(false), off = im.FloatPtr(0.0),
      width = im.FloatPtr(0.25),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = defaultLaneMergeSign,
      rot = im.IntPtr(1),
      pos = im.FloatPtr(1.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      rot = im.IntPtr(1),
      pos = im.FloatPtr(1.0), size = im.FloatPtr(5),
      numRows = im.IntPtr(4), numCols = im.IntPtr(4),
      frame = im.IntPtr(0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(jct.sepWidthO[0] * 0.5),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(jct.sepWidthO[0] * 0.5),
      spacing = im.FloatPtr(1.0),
      latOffset = im.FloatPtr(jct.sepWidthO[0] * 0.5),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(1.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(10.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(3.5),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(3.5),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-0.5),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(4.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(4.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(false),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(9.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(false),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(10.0),
      theta = im.FloatPtr(20.0),
      bevel = im.FloatPtr(10.0),
      theta = im.FloatPtr(20.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(20.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-0.5),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(9.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(1),
      numRBLanes = im.IntPtr(1),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(-1.2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(-1.2),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(11.0),
      theta = im.FloatPtr(20.0),
      bevel = im.FloatPtr(11.0),
      theta = im.FloatPtr(20.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(20.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(false),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(4.0),
      numLanesX = im.IntPtr(1),
      numLanesY = im.IntPtr(1),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      s2Length = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      s3Length = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      cResWidth = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepWidthI = im.FloatPtr(1.0),
      sepWidthO = im.FloatPtr(1.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(1.0),
      isBarriersI = im.BoolPtr(false),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(5.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(20.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(20.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.2),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.2),
      sepWidthO = im.FloatPtr(2.4),
      sepWidthI = im.FloatPtr(1.2),
      sepWidthO = im.FloatPtr(2.4),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(10.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(10.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(5.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(10.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(10.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.17),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.17),
      sepWidthO = im.FloatPtr(0.58),
      sepWidthI = im.FloatPtr(1.17),
      sepWidthO = im.FloatPtr(0.58),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(10.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(5.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      s2Length = im.FloatPtr(40.0),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(10.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepWidthI = im.FloatPtr(0.9),
      sepWidthO = im.FloatPtr(2.4),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
      roads = {},
      condition = im.FloatPtr(0.2),
      conditionSeed = im.IntPtr(41226),
      numPotholes = im.IntPtr(0),
      capLength = im.FloatPtr(14.0),
      numLanesX = im.IntPtr(2),
      numLanesY = im.IntPtr(2),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      laneWidthX = im.FloatPtr(3.5),
      laneWidthY = im.FloatPtr(3.5),
      numRBLanes = im.IntPtr(2),
      numRBLanes = im.IntPtr(2),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      laneWidthRB = im.FloatPtr(3.5),
      extraRadRB = im.FloatPtr(0.0),
      isYOneWay = im.BoolPtr(false),
      isY2Outwards = im.BoolPtr(false),
      s2Length = im.FloatPtr(20.0),
      s3Length = im.FloatPtr(20.0),
      s2Length = im.FloatPtr(20.0),
      s3Length = im.FloatPtr(20.0),
      cResWidth = im.FloatPtr(3.5),
      s3Length = im.FloatPtr(20.0),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.5),
      cResWidth = im.FloatPtr(3.5),
      sepWidthI = im.FloatPtr(1.5),
      sepWidthO = im.FloatPtr(3.0),
      sepWidthI = im.FloatPtr(1.5),
      sepWidthO = im.FloatPtr(3.0),
      sepMat = defaultSeperatorMaterial,
      sepMat = defaultSeperatorMaterial,
      hardWidth = im.FloatPtr(3.0),
      isBarriersI = im.BoolPtr(true),
      isPedX4 = im.BoolPtr(true),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      pedXDist = im.FloatPtr(1.0),
      pedXWidth = im.FloatPtr(2.0),
      isSidewalk = im.BoolPtr(true),
      isSidewalk = im.BoolPtr(true),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      bevel = im.FloatPtr(2.5),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      theta = im.FloatPtr(0.0),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      sidewalkWidth = im.FloatPtr(2.0),
      sidewalkHeight = im.FloatPtr(0.12),
      isLowerSWAtPedX = im.BoolPtr(true),
      isTLights = im.BoolPtr(true),
      trafficLatOff = im.FloatPtr(-2.6),
      isCrossings = im.BoolPtr(true),
      isDoubleArrows = im.BoolPtr(true),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowSize = im.FloatPtr(1.5),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowFrontDistFromEnd = im.FloatPtr(2.5),
      arrowBackDistFromEnd = im.FloatPtr(12.0),
      arrowMat = defaultLaneArrowMaterial,
    roads = deepcopy(jct.roads),
    condition = im.FloatPtr(jct.condition[0]),
    conditionSeed = im.IntPtr(jct.conditionSeed[0]),
    numPotholes = im.IntPtr(jct.numPotholes[0]),
    capLength = im.FloatPtr(jct.capLength[0]),
    numLanesX = im.IntPtr(jct.numLanesX[0]),
    numRBLanes = im.IntPtr(jct.numRBLanes[0]),
    laneWidthX = im.FloatPtr(jct.laneWidthX[0]),
    laneWidthY = im.FloatPtr(jct.laneWidthY[0]),
    laneWidthX = im.FloatPtr(jct.laneWidthX[0]),
    laneWidthY = im.FloatPtr(jct.laneWidthY[0]),
    laneWidthRB = im.FloatPtr(jct.laneWidthRB[0]),
    laneWidthY = im.FloatPtr(jct.laneWidthY[0]),
    laneWidthRB = im.FloatPtr(jct.laneWidthRB[0]),
    extraRadRB = im.FloatPtr(jct.extraRadRB[0]),
    laneWidthRB = im.FloatPtr(jct.laneWidthRB[0]),
    extraRadRB = im.FloatPtr(jct.extraRadRB[0]),
    isYOneWay = im.BoolPtr(jct.isYOneWay[0]),
    isY2Outwards = im.BoolPtr(jct.isY2Outwards[0]),
    s2Length = im.FloatPtr(jct.s2Length[0]),
    s3Length = im.FloatPtr(jct.s3Length[0]),
    s2Length = im.FloatPtr(jct.s2Length[0]),
    s3Length = im.FloatPtr(jct.s3Length[0]),
    cResWidth = im.FloatPtr(jct.cResWidth[0]),
    s3Length = im.FloatPtr(jct.s3Length[0]),
    cResWidth = im.FloatPtr(jct.cResWidth[0]),
    sepWidthI = im.FloatPtr(jct.sepWidthI[0]),
    cResWidth = im.FloatPtr(jct.cResWidth[0]),
    sepWidthI = im.FloatPtr(jct.sepWidthI[0]),
    sepWidthO = im.FloatPtr(jct.sepWidthO[0]),
    sepWidthI = im.FloatPtr(jct.sepWidthI[0]),
    sepWidthO = im.FloatPtr(jct.sepWidthO[0]),
    sepMat = jct.sepMat,
    sepMat = jct.sepMat,
    hardWidth = im.FloatPtr(jct.hardWidth[0]),
    isBarriersI = im.BoolPtr(jct.isBarriersI[0]),
    isPedX4 = im.BoolPtr(jct.isPedX4[0]),
    pedXDist = im.FloatPtr(jct.pedXDist[0]),
    pedXWidth = im.FloatPtr(jct.pedXWidth[0]),
    pedXDist = im.FloatPtr(jct.pedXDist[0]),
    pedXWidth = im.FloatPtr(jct.pedXWidth[0]),
    isSidewalk = im.BoolPtr(jct.isSidewalk[0]),
    isSidewalk = im.BoolPtr(jct.isSidewalk[0]),
    bevel = im.FloatPtr(jct.bevel[0]),
    theta = im.FloatPtr(jct.theta[0]),
    bevel = im.FloatPtr(jct.bevel[0]),
    theta = im.FloatPtr(jct.theta[0]),
    sidewalkWidth = im.FloatPtr(jct.sidewalkWidth[0]),
    theta = im.FloatPtr(jct.theta[0]),
    sidewalkWidth = im.FloatPtr(jct.sidewalkWidth[0]),
    sidewalkHeight = im.FloatPtr(jct.sidewalkHeight[0]),
    sidewalkWidth = im.FloatPtr(jct.sidewalkWidth[0]),
    sidewalkHeight = im.FloatPtr(jct.sidewalkHeight[0]),
    isLowerSWAtPedX = im.BoolPtr(jct.isLowerSWAtPedX[0]),
    isTLights = im.BoolPtr(jct.isTLights[0]),
    trafficLatOff = im.FloatPtr(jct.trafficLatOff[0]),
    isCrossings = im.BoolPtr(true),
	  isDoubleArrows = im.BoolPtr(jct.isDoubleArrows[0]),
	  arrowSize = im.FloatPtr(jct.arrowSize[0]),
	  arrowFrontDistFromEnd = im.FloatPtr(jct.arrowFrontDistFromEnd[0]),
	  arrowSize = im.FloatPtr(jct.arrowSize[0]),
	  arrowFrontDistFromEnd = im.FloatPtr(jct.arrowFrontDistFromEnd[0]),
	  arrowBackDistFromEnd = im.FloatPtr(jct.arrowBackDistFromEnd[0]),
	  arrowFrontDistFromEnd = im.FloatPtr(jct.arrowFrontDistFromEnd[0]),
	  arrowBackDistFromEnd = im.FloatPtr(jct.arrowBackDistFromEnd[0]),
	  arrowMat = jct.arrowMat,
    roads = jSer.roads,
    condition = im.FloatPtr(jSer.condition),
    conditionSeed = im.IntPtr(jSer.conditionSeed),
    numPotholes = im.IntPtr(jSer.numPotholes),
    capLength = im.FloatPtr(jSer.capLength),
    numLanesX = im.IntPtr(jSer.numLanesX),
    numRBLanes = im.IntPtr(jSer.numRBLanes),
    laneWidthX = im.FloatPtr(jSer.laneWidthX),
    laneWidthY = im.FloatPtr(jSer.laneWidthY),
    laneWidthX = im.FloatPtr(jSer.laneWidthX),
    laneWidthY = im.FloatPtr(jSer.laneWidthY),
    laneWidthRB = im.FloatPtr(jSer.laneWidthRB),
    laneWidthY = im.FloatPtr(jSer.laneWidthY),
    laneWidthRB = im.FloatPtr(jSer.laneWidthRB),
    extraRadRB = im.FloatPtr(jSer.extraRadRB),
    laneWidthRB = im.FloatPtr(jSer.laneWidthRB),
    extraRadRB = im.FloatPtr(jSer.extraRadRB),
    isYOneWay = im.BoolPtr(jSer.isYOneWay or false),
    isY2Outwards = im.BoolPtr(jSer.isY2Outwards or false),
    s2Length = im.FloatPtr(jSer.s2Length),
    s3Length = im.FloatPtr(jSer.s3Length),
    s2Length = im.FloatPtr(jSer.s2Length),
    s3Length = im.FloatPtr(jSer.s3Length),
    cResWidth = im.FloatPtr(jSer.cResWidth),
    s3Length = im.FloatPtr(jSer.s3Length),
    cResWidth = im.FloatPtr(jSer.cResWidth),
    sepWidthI = im.FloatPtr(jSer.sepWidthI),
    cResWidth = im.FloatPtr(jSer.cResWidth),
    sepWidthI = im.FloatPtr(jSer.sepWidthI),
    sepWidthO = im.FloatPtr(jSer.sepWidthO),
    sepWidthI = im.FloatPtr(jSer.sepWidthI),
    sepWidthO = im.FloatPtr(jSer.sepWidthO),
    sepMat = jSer.sepMat,
    sepMat = jSer.sepMat,
    hardWidth = im.FloatPtr(jSer.hardWidth),
    isBarriersI = im.BoolPtr(jSer.isBarriersI or false),
    isPedX4 = im.BoolPtr(jSer.isPedX4 or false),
    pedXDist = im.FloatPtr(jSer.pedXDist),
    pedXWidth = im.FloatPtr(jSer.pedXWidth),
    pedXDist = im.FloatPtr(jSer.pedXDist),
    pedXWidth = im.FloatPtr(jSer.pedXWidth),
    isSidewalk = im.BoolPtr(jSer.isSidewalk or false),
    isSidewalk = im.BoolPtr(jSer.isSidewalk or false),
    bevel = im.FloatPtr(jSer.bevel),
    theta = im.FloatPtr(jSer.theta),
    bevel = im.FloatPtr(jSer.bevel),
    theta = im.FloatPtr(jSer.theta),
    sidewalkWidth = im.FloatPtr(jSer.sidewalkWidth),
    theta = im.FloatPtr(jSer.theta),
    sidewalkWidth = im.FloatPtr(jSer.sidewalkWidth),
    sidewalkHeight = im.FloatPtr(jSer.sidewalkHeight),
    sidewalkWidth = im.FloatPtr(jSer.sidewalkWidth),
    sidewalkHeight = im.FloatPtr(jSer.sidewalkHeight),
    isLowerSWAtPedX = im.BoolPtr(jSer.isLowerSWAtPedX or false),
    isTLights = im.BoolPtr(jSer.isTLights or false),
    trafficLatOff = im.FloatPtr(jSer.trafficLatOff),
    isCrossings = im.BoolPtr(jSer.isCrossings or false),
	  isDoubleArrows = im.BoolPtr(jSer.isDoubleArrows or false),
	  arrowSize = im.FloatPtr(jSer.arrowSize or 1.5),
	  arrowFrontDistFromEnd = im.FloatPtr(jSer.arrowFrontDistFromEnd or 2.5),
	  arrowSize = im.FloatPtr(jSer.arrowSize or 1.5),
	  arrowFrontDistFromEnd = im.FloatPtr(jSer.arrowFrontDistFromEnd or 2.5),
	  arrowBackDistFromEnd = im.FloatPtr(jSer.arrowBackDistFromEnd or 12.0),
	  arrowFrontDistFromEnd = im.FloatPtr(jSer.arrowFrontDistFromEnd or 2.5),
	  arrowBackDistFromEnd = im.FloatPtr(jSer.arrowBackDistFromEnd or 12.0),
	  arrowMat = jSer.arrowMat or defaultLaneArrowMaterial,
    jct.numLanesY = im.IntPtr(1)
    jct.laneWidthX = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthY = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthX = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthY = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    updateJunctionAfterChange(jIdx)
    jct.numLanesY = im.IntPtr(1)
    jct.laneWidthX = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthY = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthX = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    jct.laneWidthY = im.FloatPtr(rOthers[1].r.nodes[1].widths[1][0])
    updateJunctionAfterChange(jIdx)
    type = 'road_lane',
    width = im.FloatPtr(1), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(1), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(1), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(1), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        roadMgr.addNodeToRoad(rIdx, nodes[j])
        newRoad.nodes[#newRoad.nodes].widths[-1] = im.FloatPtr(widths[j])                           -- TODO: widths are assumed as half widths, roads symmetric around center.
        newRoad.nodes[#newRoad.nodes].widths[1] = im.FloatPtr(widths[j])
        newRoad.nodes[#newRoad.nodes].widths[-1] = im.FloatPtr(widths[j])                           -- TODO: widths are assumed as half widths, roads symmetric around center.
        newRoad.nodes[#newRoad.nodes].widths[1] = im.FloatPtr(widths[j])
      end
@/lua/ge/extensions/editor/aiTests.lua
local params = {
  aggression = {im.FloatPtr(0.5), 0, 2},
  turnForceCoef = {im.FloatPtr(2), 0, 5},
  aggression = {im.FloatPtr(0.5), 0, 2},
  turnForceCoef = {im.FloatPtr(2), 0, 5},
  awarenessForceCoef = {im.FloatPtr(0.25), 0, 5},
  turnForceCoef = {im.FloatPtr(2), 0, 5},
  awarenessForceCoef = {im.FloatPtr(0.25), 0, 5},
  edgeDist = {im.FloatPtr(0), -2, 2},
  awarenessForceCoef = {im.FloatPtr(0.25), 0, 5},
  edgeDist = {im.FloatPtr(0), -2, 2},
  lookAheadKv = {im.FloatPtr(0.65), 0.5, 1},
  edgeDist = {im.FloatPtr(0), -2, 2},
  lookAheadKv = {im.FloatPtr(0.65), 0.5, 1},
  staticFrictionCoefMult = {im.FloatPtr(0.95), 0.75, 2}
  lookAheadKv = {im.FloatPtr(0.65), 0.5, 1},
  staticFrictionCoefMult = {im.FloatPtr(0.95), 0.75, 2}
  --driveInLane = {im.BoolPtr(false)}
@/lua/ge/extensions/editor/renderTest.lua
local attachToObject = im.BoolPtr(true)
local nearClip = im.FloatPtr(12)
local farClip = im.FloatPtr(2500)
local nearClip = im.FloatPtr(12)
local farClip = im.FloatPtr(2500)
local fov = im.FloatPtr(60)
local farClip = im.FloatPtr(2500)
local fov = im.FloatPtr(60)
local pos
@/lua/ge/extensions/editor/shapeEditor.lua
local dirtyRdr = true
local camrotation = {im.FloatPtr(0), im.FloatPtr(3.9)}
local renderFlags = {im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false)}
local dirtyRdr = true
local camrotation = {im.FloatPtr(0), im.FloatPtr(3.9)}
local renderFlags = {im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false)}
local detailLevel = im.IntPtr(0)
local orbitDist = im.FloatPtr(0)
local meshFile = nil
local windowTitle = "Shape Editor"
local lodAmount = im.FloatPtr(0.95)
local lodDetDest = im.IntPtr(0)
local lodSloppy = im.BoolPtr(false)
local lodErrorTarget = im.FloatPtr(1.0)
local lodBrokenMesh = false
@/lua/ge/extensions/editor/drivePathEditor.lua
    im.PushItemWidth(-1)
    tmpPtr = im.FloatPtr(selSpline.delayTime)
    if im.SliderFloat('###5756', tmpPtr, minDelayTime, maxDelayTime, "Delay Time (s) = %.2f") then
    im.PushItemWidth(-1)
    tmpPtr = im.FloatPtr(selSpline.routeSpeed)
    if im.SliderFloat('###5316', tmpPtr, minRouteSpeed, maxRouteSpeed, "Route Speed (m/s) = %.2f") then
    im.PushItemWidth(-1)
    tmpPtr = im.FloatPtr(selSpline.aggression)
    if im.SliderFloat('###5757', tmpPtr, minAggression, maxAggression, "Aggression = %.3f") then
@/lua/ge/extensions/editor/api/gui.lua
local tempIntArr2 = imgui.ArrayInt(2)
local tempFloatPtr = imgui.FloatPtr(0)
local tempFloatArr2 = imgui.ArrayFloat(2)
@/lua/ge/extensions/flowgraph/nodes/types/color.lua
      self.colorData.clr[3] = im.Float(self.clr[4])
      self.colorData.pbr[1] = im.FloatPtr(self.clr[5] or 0)
      self.colorData.pbr[2] = im.FloatPtr(self.clr[6] or 0)
      self.colorData.pbr[1] = im.FloatPtr(self.clr[5] or 0)
      self.colorData.pbr[2] = im.FloatPtr(self.clr[6] or 0)
      self.colorData.pbr[3] = im.FloatPtr(self.clr[7] or 0)
      self.colorData.pbr[2] = im.FloatPtr(self.clr[6] or 0)
      self.colorData.pbr[3] = im.FloatPtr(self.clr[7] or 0)
      self.colorData.pbr[4] = im.FloatPtr(self.clr[8] or 0)
      self.colorData.pbr[3] = im.FloatPtr(self.clr[7] or 0)
      self.colorData.pbr[4] = im.FloatPtr(self.clr[8] or 0)
    end
@/lua/ge/extensions/editor/tech/roadArchitect/import.lua
      isLocked = false,
      rot = im.FloatPtr(0.0),
      height = im.FloatPtr(p.z),
      rot = im.FloatPtr(0.0),
      height = im.FloatPtr(p.z),
      widths = {}, heightsL = {}, heightsR = {},
      widths = {}, heightsL = {}, heightsR = {},
      incircleRad = im.FloatPtr(1.0),
      isAutoBanked = false,
    local eP = superElevs[eIdx]
    poly[i].rot = im.FloatPtr(evalExpCubic(eP.a, eP.b, eP.c, eP.d, sLocal))
  end
        if lWidth then
          poly[i].widths[j] = im.FloatPtr(evalExpCubic(lWidth.a, lWidth.b, lWidth.c, lWidth.d, sLocal - lWidth.sOffset))
        else
        else
          poly[i].widths[j] = im.FloatPtr(defaultImportWidth)                                       -- Width is not present, so use defaults.
        end
        if poly[i].widths[j][0] > 10.0 then                                                         -- If width has blown up, collapse the lane here.  This is a bit hacky.
          poly[i].widths[j] = im.FloatPtr(0.0)
        end
          if j < 0 then
            poly[i].heightsL[j] = im.FloatPtr(lHeight.inner)
            poly[i].heightsR[j] = im.FloatPtr(lHeight.outer)
            poly[i].heightsL[j] = im.FloatPtr(lHeight.inner)
            poly[i].heightsR[j] = im.FloatPtr(lHeight.outer)
          else
          else
            poly[i].heightsL[j] = im.FloatPtr(lHeight.outer)
            poly[i].heightsR[j] = im.FloatPtr(lHeight.inner)
            poly[i].heightsL[j] = im.FloatPtr(lHeight.outer)
            poly[i].heightsR[j] = im.FloatPtr(lHeight.inner)
          end
        else
          poly[i].heightsL[j] = im.FloatPtr(defaultImportHeight)                                    -- Width is present, but not heights, so use defaults.
          poly[i].heightsR[j] = im.FloatPtr(defaultImportHeight)
          poly[i].heightsL[j] = im.FloatPtr(defaultImportHeight)                                    -- Width is present, but not heights, so use defaults.
          poly[i].heightsR[j] = im.FloatPtr(defaultImportHeight)
        end
      elseif laneKeys[j] then
        poly[i].widths[j] = im.FloatPtr(0.0)                                                        -- If this lane does not exist in this section, use zero width and default height.
        poly[i].heightsL[j] = im.FloatPtr(defaultImportHeight)
        poly[i].widths[j] = im.FloatPtr(0.0)                                                        -- If this lane does not exist in this section, use zero width and default height.
        poly[i].heightsL[j] = im.FloatPtr(defaultImportHeight)
        poly[i].heightsR[j] = im.FloatPtr(defaultImportHeight)
        poly[i].heightsL[j] = im.FloatPtr(defaultImportHeight)
        poly[i].heightsR[j] = im.FloatPtr(defaultImportHeight)
      end
@/lua/ge/extensions/editor/multiSpawnManager.lua

  colorTbl.pbr[1] = im.FloatPtr(paint.metallic or 0.2)
  colorTbl.pbr[2] = im.FloatPtr(paint.roughness or 0.5)
  colorTbl.pbr[1] = im.FloatPtr(paint.metallic or 0.2)
  colorTbl.pbr[2] = im.FloatPtr(paint.roughness or 0.5)
  colorTbl.pbr[3] = im.FloatPtr(paint.clearcoat or 0.8)
  colorTbl.pbr[2] = im.FloatPtr(paint.roughness or 0.5)
  colorTbl.pbr[3] = im.FloatPtr(paint.clearcoat or 0.8)
  colorTbl.pbr[4] = im.FloatPtr(paint.clearcoatRoughness or 0)
  colorTbl.pbr[3] = im.FloatPtr(paint.clearcoat or 0.8)
  colorTbl.pbr[4] = im.FloatPtr(paint.clearcoatRoughness or 0)
  imValues.collectionAmount, imValues.allMods, imValues.allConfigs = im.IntPtr(10), im.BoolPtr(false), im.BoolPtr(false)
  imValues.minPop, imValues.modelPopPower, imValues.configPopPower, imValues.popDecreaseFactor = im.IntPtr(1), im.FloatPtr(0), im.FloatPtr(0), im.FloatPtr(0)
  imValues.maxYear = im.IntPtr(0)
  imValues.collectionAmount, imValues.allMods, imValues.allConfigs = im.IntPtr(10), im.BoolPtr(false), im.BoolPtr(false)
  imValues.minPop, imValues.modelPopPower, imValues.configPopPower, imValues.popDecreaseFactor = im.IntPtr(1), im.FloatPtr(0), im.FloatPtr(0), im.FloatPtr(0)
  imValues.maxYear = im.IntPtr(0)
  imValues.collectionAmount, imValues.allMods, imValues.allConfigs = im.IntPtr(10), im.BoolPtr(false), im.BoolPtr(false)
  imValues.minPop, imValues.modelPopPower, imValues.configPopPower, imValues.popDecreaseFactor = im.IntPtr(1), im.FloatPtr(0), im.FloatPtr(0), im.FloatPtr(0)
  imValues.maxYear = im.IntPtr(0)
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/followPath.lua
function C:drawCustomProperties()
  local sclFloat = im.FloatPtr(self.timeScale)
  if im.InputFloat("Timescale",sclFloat,0.05, 1) then
@/lua/ge/extensions/gameplay/drift/scoring.lua
        im.Text("Experiment (CTRL + L to reset):")
        local baseScoreP = im.FloatPtr(scoreOptions.continuousDriftPoints)
        if im.SliderFloat("Base score", baseScoreP, 0, 3, "%.2f") then
        end
        local maxSpeedMultiP = im.FloatPtr(scoreOptions.maxSpeedMulti)
        if im.SliderFloat("Max speed multi", maxSpeedMultiP, 1, 50, "%.1f") then
        end
        local maxWallMultiP = im.FloatPtr(scoreOptions.maxWallMulti)
        if im.SliderFloat("Max wall multi", maxWallMultiP, 1, 50, "%.1f") then
        end
        local maxDriftAngleMultiP = im.FloatPtr(scoreOptions.maxDriftAngleMulti)
        if im.SliderFloat("Max angle multi", maxDriftAngleMultiP, 1, 50, "%.1f") then
@/lua/ge/extensions/editor/sidewalkSpline.lua
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.verticalOffset)
      if im.SliderFloat('###4456', tmpPtr, minVerticalOffset, maxVerticalOffset, "Vertical Offset (m) = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterAmount)
      if im.SliderFloat('###3346', tmpPtr, minJitterAmount, maxJitterAmount, "Jitter = %.3f") then
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.alignmentWeight)
      if im.SliderFloat('###5757', tmpPtr, minAlignmentWeight, maxAlignmentWeight, "Alignment Priority = %.1f") then
                    im.PushItemWidth(-1)
                    tmpPtr = im.FloatPtr(baseWeight)
                    if im.SliderFloat('###baseWeight' .. pieceIndex, tmpPtr, 0.0, 1.0, "Base Weight = %.2f") then
                        im.PushItemWidth(-1)
                        tmpPtr = im.FloatPtr(varWeight)
                        if im.SliderFloat('###varWeight' .. pieceIndex .. '_' .. j, tmpPtr, 0.0, 1.0, "Var" .. j .. " Weight = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraDOI)
          if im.SliderFloat('###sidewalk_doi', tmpPtr, DOImin, DOImax, "DOI = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraMargin)
          if im.SliderFloat('###sidewalk_margin', tmpPtr, terraMarginMin, terraMarginMax, "Terraform Margin = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraFalloff)
          if im.SliderFloat('###sidewalk_falloff', tmpPtr, terraFalloffMin, terraFalloffMax, "Terraform Falloff = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraRoughness)
          if im.SliderFloat('###sidewalk_rough', tmpPtr, 0.0, 1.0, "Noise Roughness = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraScale)
          if im.SliderFloat('###sidewalk_scale', tmpPtr, 0.0, 1.0, "Noise Scale = %.2f") then
@/lua/ge/extensions/ui/messagesDebugger.lua
local txtIcon = im.ArrayChar(256, "")
local ttlSeconds = im.FloatPtr(5.0)
local useRegexClear = im.BoolPtr(false)
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veFlexbodyDebug.lua

local maxDistFromCursor = im.FloatPtr(2.0)
  selectedFlexbody = 0,
  meshVis = im.FloatPtr(1.0),
  hitNodes = {},
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua
local pacenoteNormal = im.ArrayFloat(3)
local pacenoteRadius = im.FloatPtr(0)
local nameText = im.ArrayChar(1024, "")
@/lua/ge/extensions/editor/flowgraph/properties.lua
      if not cdata[path] then
        cdata[path] = im.FloatPtr(v)
      end
        cdata[path].clr[3] = im.Float(v[4])
        cdata[path].pbr[1] = im.FloatPtr(v[5] or 0.5)
        cdata[path].pbr[2] = im.FloatPtr(v[6] or 0.2)
        cdata[path].pbr[1] = im.FloatPtr(v[5] or 0.5)
        cdata[path].pbr[2] = im.FloatPtr(v[6] or 0.2)
        cdata[path].pbr[3] = im.FloatPtr(v[7] or 0.8)
        cdata[path].pbr[2] = im.FloatPtr(v[6] or 0.2)
        cdata[path].pbr[3] = im.FloatPtr(v[7] or 0.8)
        cdata[path].pbr[4] = im.FloatPtr(v[8] or 0)
        cdata[path].pbr[3] = im.FloatPtr(v[7] or 0.8)
        cdata[path].pbr[4] = im.FloatPtr(v[8] or 0)
@/lua/ge/extensions/core/ropeVisualTest.lua
local uiPtrs = {
  anchorAX = im.FloatPtr(0),
  anchorAY = im.FloatPtr(0),
  anchorAX = im.FloatPtr(0),
  anchorAY = im.FloatPtr(0),
  anchorAZ = im.FloatPtr(3),
  anchorAY = im.FloatPtr(0),
  anchorAZ = im.FloatPtr(3),
  anchorBX = im.FloatPtr(5),
  anchorAZ = im.FloatPtr(3),
  anchorBX = im.FloatPtr(5),
  anchorBY = im.FloatPtr(0),
  anchorBX = im.FloatPtr(5),
  anchorBY = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  anchorBY = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  dirAX = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  dirAX = im.FloatPtr(0),
  dirAY = im.FloatPtr(0),
  dirAX = im.FloatPtr(0),
  dirAY = im.FloatPtr(0),
  dirAZ = im.FloatPtr(-1),
  dirAY = im.FloatPtr(0),
  dirAZ = im.FloatPtr(-1),
  dirBX = im.FloatPtr(0),
  dirAZ = im.FloatPtr(-1),
  dirBX = im.FloatPtr(0),
  dirBY = im.FloatPtr(0),
  dirBX = im.FloatPtr(0),
  dirBY = im.FloatPtr(0),
  dirBZ = im.FloatPtr(-1),
  dirBY = im.FloatPtr(0),
  dirBZ = im.FloatPtr(-1),
  nodeCount = im.IntPtr(32),
  nodeCount = im.IntPtr(32),
  lengthScale = im.FloatPtr(1.0),
  diameter = im.FloatPtr(0.12),
  lengthScale = im.FloatPtr(1.0),
  diameter = im.FloatPtr(0.12),
  damping = im.FloatPtr(0.995),
  diameter = im.FloatPtr(0.12),
  damping = im.FloatPtr(0.995),
  bendStiffness = im.FloatPtr(0.6),
  damping = im.FloatPtr(0.995),
  bendStiffness = im.FloatPtr(0.6),
  useXPBD = im.BoolPtr(true),
  useStrainLimit = im.BoolPtr(true),
  maxStrainLimit = im.FloatPtr(1.0),
  youngsModulus = im.FloatPtr(1e7),
  maxStrainLimit = im.FloatPtr(1.0),
  youngsModulus = im.FloatPtr(1e7),
  renderRope = im.BoolPtr(true),
  debugMass = im.BoolPtr(false),
  windScale = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  windScale = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  totalMass = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  totalMass = im.FloatPtr(1.0),
  massFalloff = im.FloatPtr(0.0),
  totalMass = im.FloatPtr(1.0),
  massFalloff = im.FloatPtr(0.0),
  iterations = im.IntPtr(1),
  iterations = im.IntPtr(1),
  gravityX = im.FloatPtr(0.0),
  gravityY = im.FloatPtr(0.0),
  gravityX = im.FloatPtr(0.0),
  gravityY = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  gravityY = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  c1 = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  c1 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c1 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c3 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c3 = im.FloatPtr(0.0),
  anchorAFixed = im.BoolPtr(true),
  anchorBFixed = im.BoolPtr(true),
  animationScale = im.FloatPtr(1.0),
  animationTimeScale = im.FloatPtr(1.0),
  animationScale = im.FloatPtr(1.0),
  animationTimeScale = im.FloatPtr(1.0),
  anchorAAnimation = im.IntPtr(0),
@/lua/ge/extensions/editor/mapSensorEditor.lua
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.verticalAngle
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.horizontalAngle
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.maxDistance
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeRoundness
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeCutoffSensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeShape
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeFocus
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMinCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeDirectMaxCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.sensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeRoundness
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeCutoffSensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeShape
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeFocus
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMinCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeDirectMaxCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMin
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMax
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.velMin
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.velMax
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.halfAngleDeg
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
@/lua/ge/extensions/editor/util/editorElementHelper.lua
  defaultValue = defaultValue or 0
  return self:addElement({type = 'numeric', label = label, fieldName = fieldName, defaultValue = defaultValue, ptr = im.FloatPtr(defaultValue), displayOptions = displayOptions})
end
  elem.count = im.IntPtr(elem.defaultCount)
  elem.best = im.FloatPtr(elem.defaultBest)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.best = im.FloatPtr(elem.defaultBest)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.worst = im.FloatPtr(elem.defaultWorst)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.worst = im.FloatPtr(elem.defaultWorst)
@/lua/ge/extensions/flowgraph/nodes/vehicle/customPartsConfigProvider.lua
      elseif tpe == 'number' then
        local valNum = im.FloatPtr(self.partConfig[field][key])
        if im.InputFloat("##inputValPart" .. i ..field, valNum, nil,nil,nil, im.InputTextFlags_EnterReturnsTrue) then
    elseif tpe == 'number' then
      self._valNum = self._valNum or im.FloatPtr(0)
      im.InputFloat("##AddValPart", self._valNum)
@/lua/ge/extensions/editor/vizHelper.lua

local scale = im.FloatPtr(20)
local rotation = im.FloatPtr(0)
local scale = im.FloatPtr(20)
local rotation = im.FloatPtr(0)
local minDistance = im.FloatPtr(0.3)
local rotation = im.FloatPtr(0)
local minDistance = im.FloatPtr(0.3)
local dragRotation = im.BoolPtr(true)
@/lua/ge/extensions/freeroam/bigMapMode.lua
    if imgui.Begin("Big Map") then
      local maxFovPtr = imgui.FloatPtr(camMode.fovMax)
      if imgui.SliderFloat("Max FOV", maxFovPtr, 5.0, 90.0, "%.0f") then
      end
      local minFovPtr = imgui.FloatPtr(camMode.fovMin)
      if imgui.SliderFloat("Min FOV", minFovPtr, 5.0, 90.0, "%.0f") then
      end
      local anglePtr = imgui.FloatPtr(camMode.angle)
      if imgui.SliderFloat("Angle", anglePtr, 5.0, 90.0, "%.0f") then
      end
      local rotAnglePtr = imgui.FloatPtr(camMode.rotAngle)
      if imgui.SliderFloat("Rotation", rotAnglePtr, 0.0, 360.0, "%.0f") then
      end
      local posTransitionTimePtr = imgui.FloatPtr(camMode.posTransitionTime)
      if imgui.SliderFloat("position transition time", posTransitionTimePtr, 0.0, 10.0, "%.1f") then
      end
      local movementSpeedPtr = imgui.FloatPtr(camMode.movementSpeed)
      if imgui.SliderFloat("movement speed", movementSpeedPtr, 0.0, 100.0, "%.0f") then
@/lua/ge/extensions/editor/tech/roadArchitect/profiles.lua
          laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
          lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.4),
          lane = im.IntPtr(1), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.4),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.centerlineMat,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.centerlineMat,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(dummyLaneIdx), laneMax = im.IntPtr(dummyLaneIdx),
          lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(latOffL),
          width = im.FloatPtr(0.25),
          lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(latOffL),
          width = im.FloatPtr(0.25),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.edgeMatL,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.edgeMatL,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(dummyLaneIdx), laneMax = im.IntPtr(dummyLaneIdx),
          lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(-latOffR),
          width = im.FloatPtr(0.25),
          lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(false), off = im.FloatPtr(-latOffR),
          width = im.FloatPtr(0.25),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.edgeMatR,
          texLen = im.FloatPtr(5),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = p.edgeMatR,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(dummyLaneIdx), laneMax = im.IntPtr(dummyLaneIdx),
            lane = im.IntPtr(j), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
            width = im.FloatPtr(0.2),
            lane = im.IntPtr(j), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
            width = im.FloatPtr(0.2),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.laneMarkingsMat,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.laneMarkingsMat,
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),

            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(s), laneMax = im.IntPtr(min(-1, e)),
            lane = im.IntPtr(rSections[i].s), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
            width = im.FloatPtr(0.4),
            lane = im.IntPtr(rSections[i].s), isLeft = im.BoolPtr(true), off = im.FloatPtr(1.0),
            width = im.FloatPtr(0.4),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.endStopMatE,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.endStopMatE,
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),

            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
            laneMin = im.IntPtr(max(1, s)), laneMax = im.IntPtr(e),
            lane = im.IntPtr(rSections[i].s), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
            width = im.FloatPtr(0.4),
            lane = im.IntPtr(rSections[i].s), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
            width = im.FloatPtr(0.4),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.endStopMatS,
            texLen = im.FloatPtr(5),
            fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
            mat = p.endStopMatS,
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),
            rot = im.IntPtr(0),
            pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
            numRows = im.IntPtr(0), numCols = im.IntPtr(0),

            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            vertOffset = im.FloatPtr(0.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            latOffset = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            spacing = im.FloatPtr(5.0),
            jitter = im.FloatPtr(0.0),
            useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(s), laneMax = im.IntPtr(s),
          lane = im.IntPtr(s), isLeft = im.BoolPtr(true), off = im.FloatPtr(-edgeBlendLatOffset),
          width = im.FloatPtr(edgeBlendWidth),
          lane = im.IntPtr(s), isLeft = im.BoolPtr(true), off = im.FloatPtr(-edgeBlendLatOffset),
          width = im.FloatPtr(edgeBlendWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = mat or defaultEdgeBlendMaterial,
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = mat or defaultEdgeBlendMaterial,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          frame = im.IntPtr(0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(e), laneMax = im.IntPtr(e),
          lane = im.IntPtr(e), isLeft = im.BoolPtr(false), off = im.FloatPtr(edgeBlendLatOffset),
          width = im.FloatPtr(edgeBlendWidth),
          lane = im.IntPtr(e), isLeft = im.BoolPtr(false), off = im.FloatPtr(edgeBlendLatOffset),
          width = im.FloatPtr(edgeBlendWidth),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = mat or defaultEdgeBlendMaterial,
          texLen = im.FloatPtr(18),
          fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
          mat = mat or defaultEdgeBlendMaterial,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          frame = im.IntPtr(0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(1.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(i), laneMax = im.IntPtr(i),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(3.5),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(3.5),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = lightTreadMaterial,
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = lightTreadMaterial,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(i), laneMax = im.IntPtr(i),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(3.5),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(3.5),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = heavyTreadMaterial,
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = heavyTreadMaterial,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(i), laneMax = im.IntPtr(i),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = p.dirtMat,
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = p.dirtMat,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(i), laneMax = im.IntPtr(i),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(26),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          texLen = im.FloatPtr(26),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = mat,
          texLen = im.FloatPtr(26),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = mat,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lIdx), laneMax = im.IntPtr(lIdx),
      lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(8.0),
      lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
      width = im.FloatPtr(8.0),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(n1), nMax = im.IntPtr(n2),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(n1), nMax = im.IntPtr(n2),
      texLen = im.FloatPtr(26),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      texLen = im.FloatPtr(26),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      mat = decalRoadPatchMaterial,
      texLen = im.FloatPtr(26),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      mat = decalRoadPatchMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),

      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(1), laneMax = im.IntPtr(1),
      lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(latOff),
      width = im.FloatPtr(4.0),
      lane = im.IntPtr(lIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(latOff),
      width = im.FloatPtr(4.0),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(n1), nMax = im.IntPtr(n2),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(n1), nMax = im.IntPtr(n2),
      texLen = im.FloatPtr(32),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      texLen = im.FloatPtr(32),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      mat = tile,
      texLen = im.FloatPtr(32),
      fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
      mat = tile,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
      numRows = im.IntPtr(0), numCols = im.IntPtr(0),

      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(q),
      width = im.FloatPtr(5.0),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(q),
      width = im.FloatPtr(5.0),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      mat = decalPatchMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      mat = decalPatchMaterial,
      rot = im.IntPtr(util.randomInRange(1, 4) - 1),
      pos = im.FloatPtr(latOff), size = im.FloatPtr(size),
      numRows = im.IntPtr(4), numCols = im.IntPtr(2),
      rot = im.IntPtr(util.randomInRange(1, 4) - 1),
      pos = im.FloatPtr(latOff), size = im.FloatPtr(size),
      numRows = im.IntPtr(4), numCols = im.IntPtr(2),

      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
      laneMin = im.IntPtr(lMin), laneMax = im.IntPtr(lMin),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(q),
      width = im.FloatPtr(5.0),
      lane = im.IntPtr(lMin), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(q),
      width = im.FloatPtr(5.0),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(false), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      mat = potholePatchMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0), fadeE = im.FloatPtr(0),
      mat = potholePatchMaterial,
      rot = im.IntPtr(util.randomInRange(1, 4) - 1),
      pos = im.FloatPtr(latOff), size = im.FloatPtr(size),
      numRows = im.IntPtr(2), numCols = im.IntPtr(2),
      rot = im.IntPtr(util.randomInRange(1, 4) - 1),
      pos = im.FloatPtr(latOff), size = im.FloatPtr(size),
      numRows = im.IntPtr(2), numCols = im.IntPtr(2),

      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
          laneMin = im.IntPtr(i), laneMax = im.IntPtr(i),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          lane = im.IntPtr(i), isLeft = im.BoolPtr(true), off = im.FloatPtr(0.0),
          width = im.FloatPtr(0.0),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = crackMaterial,
          texLen = im.FloatPtr(36),
          fadeS = im.FloatPtr(fadeS), fadeE = im.FloatPtr(fadeE),
          mat = crackMaterial,
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),
          rot = im.IntPtr(0),
          pos = im.FloatPtr(0.0), size = im.FloatPtr(0.0),
          numRows = im.IntPtr(0), numCols = im.IntPtr(0),

          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          vertOffset = im.FloatPtr(0.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          latOffset = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          spacing = im.FloatPtr(5.0),
          jitter = im.FloatPtr(0.0),
          useWorldZ = im.BoolPtr(false),
        laneMin = im.IntPtr(layer.laneMin[0]), laneMax = im.IntPtr(layer.laneMax[0]),
        lane = im.IntPtr(layer.lane[0]), isLeft = im.BoolPtr(layer.isLeft[0]), off = im.FloatPtr(layer.off[0]),
        width = im.FloatPtr(layer.width[0]),
        lane = im.IntPtr(layer.lane[0]), isLeft = im.BoolPtr(layer.isLeft[0]), off = im.FloatPtr(layer.off[0]),
        width = im.FloatPtr(layer.width[0]),
        isSpanLong = im.BoolPtr(layer.isSpanLong[0]), nMin = im.IntPtr(layer.nMin[0]), nMax = im.IntPtr(layer.nMax[0]),
        isSpanLong = im.BoolPtr(layer.isSpanLong[0]), nMin = im.IntPtr(layer.nMin[0]), nMax = im.IntPtr(layer.nMax[0]),
        texLen = im.FloatPtr(layer.texLen[0]),
        fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
        texLen = im.FloatPtr(layer.texLen[0]),
        fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
        mat = tostring(layer.mat),
        texLen = im.FloatPtr(layer.texLen[0]),
        fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
        mat = tostring(layer.mat),
        rot = im.IntPtr(layer.rot[0]),
        pos = im.FloatPtr(layer.pos[0]), size = im.FloatPtr(layer.size[0]),
        numRows = im.IntPtr(layer.numRows[0]), numCols = im.IntPtr(layer.numCols[0]),
        rot = im.IntPtr(layer.rot[0]),
        pos = im.FloatPtr(layer.pos[0]), size = im.FloatPtr(layer.size[0]),
        numRows = im.IntPtr(layer.numRows[0]), numCols = im.IntPtr(layer.numCols[0]),

        vertOffset = im.FloatPtr(layer.vertOffset or 0.0),
        latOffset = im.FloatPtr(layer.latOffset or 0.0),
        vertOffset = im.FloatPtr(layer.vertOffset or 0.0),
        latOffset = im.FloatPtr(layer.latOffset or 0.0),
        spacing = im.FloatPtr(layer.spacing or 5.0),
        latOffset = im.FloatPtr(layer.latOffset or 0.0),
        spacing = im.FloatPtr(layer.spacing or 5.0),
        jitter = im.FloatPtr(layer.jitter or 0.0),
        spacing = im.FloatPtr(layer.spacing or 5.0),
        jitter = im.FloatPtr(layer.jitter or 0.0),
        useWorldZ = im.BoolPtr(layer.useWorldZ or false),
  profile.styleType = im.IntPtr(template.styleType[0] or 0)
  profile.condition = im.FloatPtr(template.condition[0] or 0.2)
  profile.conditionSeed = im.IntPtr(template.conditionSeed[0] or 41226)
  profile.conditionEndStopE = im.BoolPtr(template.conditionEndStopE[0])
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.centerlineMat = template.centerlineMat or defaultCenterlineMaterial
  profile.blendRightMat = template.blendRightMat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.isStopDecalE = im.BoolPtr(template.isStopDecalE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.continueLinesToEnd = im.BoolPtr(template.continueLinesToEnd[0])
  profile.gutterMat = template.gutterMat or defaultGutterMat
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.isGutterShow = im.BoolPtr(template.isGutterShow[0])

  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.isAutoBanking = im.BoolPtr(template.isAutoBanking[0])
  profile.autoBankingFactor = im.FloatPtr(template.autoBankingFactor[0] or 1.0)
  profile.isExtraWidth = im.BoolPtr(template.isExtraWidth[0] or false)
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
    end
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
    end
      laneMin = im.IntPtr(layer.laneMin[0]), laneMax = im.IntPtr(layer.laneMax[0]),
      lane = im.IntPtr(layer.lane[0]), isLeft = im.BoolPtr(layer.isLeft[0]), off = im.FloatPtr(layer.off[0]),
      width = im.FloatPtr(layer.width[0]),
      lane = im.IntPtr(layer.lane[0]), isLeft = im.BoolPtr(layer.isLeft[0]), off = im.FloatPtr(layer.off[0]),
      width = im.FloatPtr(layer.width[0]),
      isSpanLong = im.BoolPtr(layer.isSpanLong[0]), nMin = im.IntPtr(layer.nMin[0]), nMax = im.IntPtr(layer.nMax[0]),
      isSpanLong = im.BoolPtr(layer.isSpanLong[0]), nMin = im.IntPtr(layer.nMin[0]), nMax = im.IntPtr(layer.nMax[0]),
      texLen = im.FloatPtr(layer.texLen[0]),
      fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
      texLen = im.FloatPtr(layer.texLen[0]),
      fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
      mat = tostring(layer.mat),
      texLen = im.FloatPtr(layer.texLen[0]),
      fadeS = im.FloatPtr(layer.fadeS[0]), fadeE = im.FloatPtr(layer.fadeE[0]),
      mat = tostring(layer.mat),
      rot = im.IntPtr(layer.rot[0]),
      pos = im.FloatPtr(layer.pos[0]), size = im.FloatPtr(layer.size[0]),
      numRows = im.IntPtr(layer.numRows[0]), numCols = im.IntPtr(layer.numCols[0]),
      rot = im.IntPtr(layer.rot[0]),
      pos = im.FloatPtr(layer.pos[0]), size = im.FloatPtr(layer.size[0]),
      numRows = im.IntPtr(layer.numRows[0]), numCols = im.IntPtr(layer.numCols[0]),

      vertOffset = im.FloatPtr(layer.vertOffset or 0.0),
      latOffset = im.FloatPtr(layer.latOffset or 0.0),
      vertOffset = im.FloatPtr(layer.vertOffset or 0.0),
      latOffset = im.FloatPtr(layer.latOffset or 0.0),
      spacing = im.FloatPtr(layer.spacing or 5.0),
      latOffset = im.FloatPtr(layer.latOffset or 0.0),
      spacing = im.FloatPtr(layer.spacing or 5.0),
      jitter = im.FloatPtr(layer.jitter or 0.0),
      spacing = im.FloatPtr(layer.spacing or 5.0),
      jitter = im.FloatPtr(layer.jitter or 0.0),
      useWorldZ = im.BoolPtr(layer.useWorldZ or false),
      laneMin = im.IntPtr(cenLaneIdx), laneMax = im.IntPtr(cenLaneIdx),
      lane = im.IntPtr(cenLaneIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(1.0),
      lane = im.IntPtr(cenLaneIdx), isLeft = im.BoolPtr(isLeft), off = im.FloatPtr(0.0),
      width = im.FloatPtr(1.0),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      isSpanLong = im.BoolPtr(true), nMin = im.IntPtr(1), nMax = im.IntPtr(1),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = lightTreadMaterial,
      texLen = im.FloatPtr(5),
      fadeS = im.FloatPtr(0.0), fadeE = im.FloatPtr(0.0),
      mat = lightTreadMaterial,
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
      numRows = im.IntPtr(1), numCols = im.IntPtr(1),
      rot = im.IntPtr(0),
      pos = im.FloatPtr(0.0), size = im.FloatPtr(3.0),
      numRows = im.IntPtr(1), numCols = im.IntPtr(1),

      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      vertOffset = im.FloatPtr(0.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      latOffset = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      spacing = im.FloatPtr(5.0),
      jitter = im.FloatPtr(0.0),
      useWorldZ = im.BoolPtr(false),
    if p then
      widths[i], heightsL[i], heightsR[i] = im.FloatPtr(p.width[0]), im.FloatPtr(p.heightL[0]), im.FloatPtr(p.heightR[0])
    end
    if p then
      widths[i], heightsL[i], heightsR[i] = im.FloatPtr(p.width[0]), im.FloatPtr(p.heightL[0]), im.FloatPtr(p.heightR[0])
    end
    if p then
      widths[i], heightsL[i], heightsR[i] = im.FloatPtr(p.width[0]), im.FloatPtr(p.heightL[0]), im.FloatPtr(p.heightR[0])
    end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = nativeLaneType,
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.1), heightR = im.FloatPtr(0.1),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = nativeLaneType,
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.1), heightR = im.FloatPtr(0.1),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = nativeLaneType,
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.1), heightR = im.FloatPtr(0.1),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.1), heightR = im.FloatPtr(0.1),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(template.styleType[0] or 0)
  profile.condition = im.FloatPtr(template.condition[0] or 0.2)
  profile.conditionSeed = im.IntPtr(template.conditionSeed[0] or 41226)
  profile.conditionEndStopE = im.BoolPtr(template.conditionEndStopE[0])
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.centerlineMat = template.centerlineMat or defaultCenterlineMaterial
  profile.blendRightMat = template.blendRightMat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.isStopDecalS = im.BoolPtr(template.isStopDecalS[0])
  profile.isStopDecalE = im.BoolPtr(template.isStopDecalE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.continueLinesToEnd = im.BoolPtr(template.continueLinesToEnd[0] or false)
  profile.gutterMat = template.gutterMat or defaultGutterMat
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.isGutterShow = im.BoolPtr(template.isGutterShow[0])

  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.isAutoBanking = im.BoolPtr(template.isAutoBanking[0])
  profile.autoBankingFactor = im.FloatPtr(template.autoBankingFactor[0] or 1.0)
  profile.isExtraWidth = im.BoolPtr(template.isExtraWidth[0] or false)
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
    end
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0]) }
    end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.0)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.0)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(width), heightL = im.FloatPtr(depth), heightR = im.FloatPtr(depth),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numRightLanes + 1] = {
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numRightLanes + 1] = {
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numLanes + 1] = {
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numLanes + 1] = {
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'sidewalk',
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(width), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(isLeftSide), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(true)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'sidewalk',
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(isFlipKerb), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(laneWidthRB), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidthRB), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidthRB), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidthRB), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 2] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 2] = {
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      profile[numLanes + 1] = {
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      profile[numLanes + 1] = {
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      end
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      end
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      profile[numLanes + 1] = {
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      profile[numLanes + 1] = {
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'sidewalk',
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(sidewalkWidth), heightL = im.FloatPtr(sidewalkHeight), heightR = im.FloatPtr(sidewalkHeight),
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(false), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  else
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  else
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        type = 'road_lane',
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
        isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
        kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    end
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numLanes + 2] = {
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[numLanes + 2] = {
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'shoulder',
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[1] = {
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    profile[1] = {
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'island',
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 3] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 3] = {
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 2] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 2] = {
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 3] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 3] = {
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 4] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[numLanes + 4] = {
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile[1] = {
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'island',
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(cResWidth * 0.5), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(0)
  profile.condition = im.FloatPtr(0.2)
  profile.conditionSeed = im.IntPtr(41226)
  profile.conditionEndStopE = im.BoolPtr(false)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.edgeLineGapL = im.FloatPtr(0.25)
  profile.edgeLineGapR = im.FloatPtr(0.25)
  profile.centerlineMat = defaultCenterlineMaterial
  profile.blendRightMat = mat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.blendLeftWidth = im.FloatPtr(1.0)
  profile.blendRightWidth = im.FloatPtr(1.0)
  profile.isStopDecalS = im.BoolPtr(false)
  profile.isStopDecalE = im.BoolPtr(false)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.stopGapS = im.FloatPtr(0.2)
  profile.stopGapE = im.FloatPtr(0.2)
  profile.continueLinesToEnd = im.BoolPtr(false)
  profile.gutterMat = defaultGutterMat
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.gutterMargin = im.FloatPtr(0.02)
  profile.gutterWidth = im.FloatPtr(0.2)
  profile.isGutterShow = im.BoolPtr(false)

  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.fadeS = im.FloatPtr(3.0)
  profile.fadeE = im.FloatPtr(3.0)
  profile.isAutoBanking = im.BoolPtr(false)
  profile.autoBankingFactor = im.FloatPtr(1.0)
  profile.isExtraWidth = im.BoolPtr(false)
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'road_lane',
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(laneWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    type = 'shoulder',
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    width = im.FloatPtr(hardWidth), heightL = im.FloatPtr(0.01), heightR = im.FloatPtr(0.01),
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
    kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  profile.styleType = im.IntPtr(template.styleType[0] or 0)
  profile.condition = im.FloatPtr(template.condition[0] or 0.2)
  profile.conditionSeed = im.IntPtr(template.conditionSeed[0] or 41226)
  profile.conditionEndStopE = im.BoolPtr(template.conditionEndStopE[0])
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.edgeLineGapL = im.FloatPtr(template.edgeLineGapL[0] or 0.25)
  profile.edgeLineGapR = im.FloatPtr(template.edgeLineGapR[0] or 0.25)
  profile.centerlineMat = template.centerlineMat or defaultCenterlineMaterial
  profile.blendRightMat = template.blendRightMat or defaultEdgeBlendMaterial
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.blendLeftWidth = im.FloatPtr(template.blendLeftWidth[0] or 1.0)
  profile.blendRightWidth = im.FloatPtr(template.blendRightWidth[0] or 1.0)
  profile.isStopDecalS = im.BoolPtr(template.isStopDecalS[0])
  profile.isStopDecalE = im.BoolPtr(template.isStopDecalE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.stopGapS = im.FloatPtr(template.stopGapS[0])
  profile.stopGapE = im.FloatPtr(template.stopGapE[0])
  profile.continueLinesToEnd = im.BoolPtr(template.continueLinesToEnd[0])
  profile.gutterMat = template.gutterMat or defaultGutterMat
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.gutterMargin = im.FloatPtr(template.gutterMargin[0] or 0.02)
  profile.gutterWidth = im.FloatPtr(template.gutterWidth[0] or 0.2)
  profile.isGutterShow = im.BoolPtr(template.isGutterShow[0])

  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.fadeS = im.FloatPtr(template.fadeS[0] or 3.0)
  profile.fadeE = im.FloatPtr(template.fadeE[0] or 3.0)
  profile.isAutoBanking = im.BoolPtr(template.isAutoBanking[0])
  profile.autoBankingFactor = im.FloatPtr(template.autoBankingFactor[0] or 1.0)
  profile.isExtraWidth = im.BoolPtr(template.isExtraWidth[0] or false)
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        type = lane.type,
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        width = im.FloatPtr(lane.width[0]), heightL = im.FloatPtr(lane.heightL[0]), heightR = im.FloatPtr(lane.heightR[0]),
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0])  }
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0])  }
    end
        isLeftSide = im.BoolPtr(lane.isLeftSide[0]), cornerDrop = im.FloatPtr(lane.cornerDrop[0]), vStart = im.IntPtr(lane.vStart[0]),
        kerbWidth = im.FloatPtr(lane.kerbWidth[0]), cornerLatOff = im.FloatPtr(lane.cornerLatOff[0])  }
    end
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    return
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
    return
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      type = 'road_lane',
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      width = im.FloatPtr(3.5), heightL = im.FloatPtr(laneHeight), heightR = im.FloatPtr(laneHeight),
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
      isLeftSide = im.BoolPtr(true), cornerDrop = im.FloatPtr(0.0), vStart = im.IntPtr(0),
      kerbWidth = im.FloatPtr(0.12), cornerLatOff = im.FloatPtr(0.0) }
  end
    if lane and lane.type == 'road_lane' then
      lane.width = im.FloatPtr(mWidth)
    end
    styleType = im.IntPtr(pSer.styleType or 0),
    condition = im.FloatPtr(pSer.condition or 0.2),
    conditionSeed = im.IntPtr(pSer.conditionSeed or 41226),
    conditionEndStopE = im.BoolPtr(pSer.conditionEndStopE or false),
    edgeLineGapL = im.FloatPtr(pSer.edgeLineGapL or 0.25),
    edgeLineGapR = im.FloatPtr(pSer.edgeLineGapR or 0.25),
    edgeLineGapL = im.FloatPtr(pSer.edgeLineGapL or 0.25),
    edgeLineGapR = im.FloatPtr(pSer.edgeLineGapR or 0.25),
    centerlineMat = pSer.centerlineMat or defaultCenterlineMaterial,
    blendRightMat = pSer.blendRightMat or defaultEdgeBlendMaterial,
    blendLeftWidth = im.FloatPtr(pSer.blendLeftWidth or 1.0),
    blendRightWidth = im.FloatPtr(pSer.blendRightWidth or 1.0),
    blendLeftWidth = im.FloatPtr(pSer.blendLeftWidth or 1.0),
    blendRightWidth = im.FloatPtr(pSer.blendRightWidth or 1.0),
    isStopDecalS = im.BoolPtr(pSer.isStopDecalS or false),
    isStopDecalE = im.BoolPtr(pSer.isStopDecalE or false),
    stopGapS = im.FloatPtr(pSer.stopGapS or false),
    stopGapE = im.FloatPtr(pSer.stopGapE or false),
    stopGapS = im.FloatPtr(pSer.stopGapS or false),
    stopGapE = im.FloatPtr(pSer.stopGapE or false),
    continueLinesToEnd = im.BoolPtr(pSer.continueLinesToEnd or false),
    gutterMat = pSer.gutterMat or defaultGutterMat,
    gutterMargin = im.FloatPtr(pSer.gutterMargin or 0.02),
    gutterWidth = im.FloatPtr(pSer.gutterWidth or 0.2),
    gutterMargin = im.FloatPtr(pSer.gutterMargin or 0.02),
    gutterWidth = im.FloatPtr(pSer.gutterWidth or 0.2),
    isGutterShow = im.BoolPtr(pSer.isGutterShow),

    fadeS = im.FloatPtr(pSer.fadeS or 0.0),
    fadeE = im.FloatPtr(pSer.fadeE or 0.0),
    fadeS = im.FloatPtr(pSer.fadeS or 0.0),
    fadeE = im.FloatPtr(pSer.fadeE or 0.0),
    isAutoBanking = im.BoolPtr(pSer.isAutoBanking),
    autoBankingFactor = im.FloatPtr(pSer.autoBankingFactor or 1.0),
    isExtraWidth = im.BoolPtr(pSer.isExtraWidth or false) }
        type = l.type,
        width = im.FloatPtr(l.width or 3.5), heightL = im.FloatPtr(l.heightL or 0.01), heightR = im.FloatPtr(l.heightR or 0.01),
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        type = l.type,
        width = im.FloatPtr(l.width or 3.5), heightL = im.FloatPtr(l.heightL or 0.01), heightR = im.FloatPtr(l.heightR or 0.01),
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        type = l.type,
        width = im.FloatPtr(l.width or 3.5), heightL = im.FloatPtr(l.heightL or 0.01), heightR = im.FloatPtr(l.heightR or 0.01),
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        width = im.FloatPtr(l.width or 3.5), heightL = im.FloatPtr(l.heightL or 0.01), heightR = im.FloatPtr(l.heightR or 0.01),
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        kerbWidth = im.FloatPtr(l.kerbWidth or 0.12), cornerLatOff = im.FloatPtr(l.cornerLatOff or 0.0) }
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        kerbWidth = im.FloatPtr(l.kerbWidth or 0.12), cornerLatOff = im.FloatPtr(l.cornerLatOff or 0.0) }
    end
        isLeftSide = im.BoolPtr(l.isLeftSide or false), cornerDrop = im.FloatPtr(l.cornerDrop or 0.0), vStart = im.IntPtr(l.vStart or 0.0),
        kerbWidth = im.FloatPtr(l.kerbWidth or 0.12), cornerLatOff = im.FloatPtr(l.cornerLatOff or 0.0) }
    end
          laneMin = im.IntPtr(lay.laneMin or 1), laneMax = im.IntPtr(lay.laneMax or 1),
          lane = im.IntPtr(lay.lane or 1), isLeft = im.BoolPtr(lay.isLeft or false), off = im.FloatPtr(lay.off or 0.0),
          width = im.FloatPtr(lay.width or 3.5),
          lane = im.IntPtr(lay.lane or 1), isLeft = im.BoolPtr(lay.isLeft or false), off = im.FloatPtr(lay.off or 0.0),
          width = im.FloatPtr(lay.width or 3.5),
          isSpanLong = im.BoolPtr(lay.isSpanLong), nMin = im.IntPtr(lay.nMin or 1), nMax = im.IntPtr(lay.nMax or 1),
          isSpanLong = im.BoolPtr(lay.isSpanLong), nMin = im.IntPtr(lay.nMin or 1), nMax = im.IntPtr(lay.nMax or 1),
          texLen = im.FloatPtr(lay.texLen or 5.0),
          fadeS = im.FloatPtr(lay.fadeS or 0.0), fadeE = im.FloatPtr(lay.fadeE or 0.0),
          texLen = im.FloatPtr(lay.texLen or 5.0),
          fadeS = im.FloatPtr(lay.fadeS or 0.0), fadeE = im.FloatPtr(lay.fadeE or 0.0),
          mat = lay.mat,
          texLen = im.FloatPtr(lay.texLen or 5.0),
          fadeS = im.FloatPtr(lay.fadeS or 0.0), fadeE = im.FloatPtr(lay.fadeE or 0.0),
          mat = lay.mat,
          rot = im.IntPtr(lay.rot or 0),
          pos = im.FloatPtr(lay.pos or 0.0), size = im.FloatPtr(lay.size or 0),
          numRows = im.IntPtr(lay.numRows or 0), numCols = im.IntPtr(lay.numCols or 0),
          rot = im.IntPtr(lay.rot or 0),
          pos = im.FloatPtr(lay.pos or 0.0), size = im.FloatPtr(lay.size or 0),
          numRows = im.IntPtr(lay.numRows or 0), numCols = im.IntPtr(lay.numCols or 0),

          vertOffset = im.FloatPtr(lay.vertOffset or 0.0),
          latOffset = im.FloatPtr(lay.latOffset or 0.0),
          vertOffset = im.FloatPtr(lay.vertOffset or 0.0),
          latOffset = im.FloatPtr(lay.latOffset or 0.0),
          spacing = im.FloatPtr(lay.spacing or 5.0),
          latOffset = im.FloatPtr(lay.latOffset or 0.0),
          spacing = im.FloatPtr(lay.spacing or 5.0),
          jitter = im.FloatPtr(lay.jitter or 0.0),
          spacing = im.FloatPtr(lay.spacing or 5.0),
          jitter = im.FloatPtr(lay.jitter or 0.0),
          useWorldZ = im.BoolPtr(lay.useWorldZ or false),
@/lua/ge/extensions/editor/sceneView.lua
    mode = data.mode or '3d',
    nearClip = im.FloatPtr(data.nearClip or 0.01),
    farClip = im.FloatPtr(data.farClip or 2500),
    nearClip = im.FloatPtr(data.nearClip or 0.01),
    farClip = im.FloatPtr(data.farClip or 2500),
    fov = im.FloatPtr(data.fov or 70),
    farClip = im.FloatPtr(data.farClip or 2500),
    fov = im.FloatPtr(data.fov or 70),
    pos = data.pos or core_camera.getPosition(),
@/lua/ge/extensions/editor/forestEditor.lua
    local editEnded = im.BoolPtr(false)
    local scaleFL = im.FloatPtr(item:getScale())
    if editor.uiInputFloat("##forestitemscale", scaleFL, 0.01, 2, "%1.2f", nil, editEnded) then
    end
    local snapSinkPtr = im.FloatPtr(var.forestBrushTool.snapSink)
    local editEnded = im.BoolPtr(false)
    local brushPressureEditEnded = im.BoolPtr(false)
    local brushSize = im.FloatPtr(editor.getPreference("forestEditor.general.brushSize"))
    local brushPressure = im.FloatPtr(editor.getPreference("forestEditor.general.brushPressure"))
    local brushSize = im.FloatPtr(editor.getPreference("forestEditor.general.brushSize"))
    local brushPressure = im.FloatPtr(editor.getPreference("forestEditor.general.brushPressure"))
    im.PushItemWidth(120)
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua
-- local waypointNormal = im.ArrayFloat(3)
-- local waypointRadius = im.FloatPtr(0)
@/lua/ge/extensions/editor/terrainEditor.lua
terrainImpExp.terrainName = im.ArrayChar(32, "theTerrain")
terrainImpExp.metersPerPixel = im.FloatPtr(1)
terrainImpExp.heightScale = im.FloatPtr(50) -- maxHeight
terrainImpExp.metersPerPixel = im.FloatPtr(1)
terrainImpExp.heightScale = im.FloatPtr(50) -- maxHeight
terrainImpExp.heightMapTexture = im.ArrayChar(128)
terrainImpExp.transformPos = {
  x = im.FloatPtr(-512),
  y = im.FloatPtr(-512),
  x = im.FloatPtr(-512),
  y = im.FloatPtr(-512),
  z = im.FloatPtr(0),
  y = im.FloatPtr(-512),
  z = im.FloatPtr(0),
}
local tempIntPtr = im.IntPtr(0)
local tempFloatPtr = im.FloatPtr(0)
  mtlProxyCopy.groundmodelNameInput = im.ArrayChar(32, mtlProxyCopy.groundmodelName)
  mtlProxyCopy.diffuseSizeInput = im.FloatPtr(mtlProxyCopy.diffuseSize)
  mtlProxyCopy.useSideProjectionInput = im.BoolPtr(mtlProxyCopy.useSideProjection)
  mtlProxyCopy.useSideProjectionInput = im.BoolPtr(mtlProxyCopy.useSideProjection)
  mtlProxyCopy.macroStrengthInput = im.FloatPtr(mtlProxyCopy.macroStrength)
  mtlProxyCopy.macroSizeInput = im.FloatPtr(mtlProxyCopy.macroSize)
  mtlProxyCopy.macroStrengthInput = im.FloatPtr(mtlProxyCopy.macroStrength)
  mtlProxyCopy.macroSizeInput = im.FloatPtr(mtlProxyCopy.macroSize)
  mtlProxyCopy.macroDistanceInput = im.FloatPtr(mtlProxyCopy.macroDistance)
  mtlProxyCopy.macroSizeInput = im.FloatPtr(mtlProxyCopy.macroSize)
  mtlProxyCopy.macroDistanceInput = im.FloatPtr(mtlProxyCopy.macroDistance)
  mtlProxyCopy.detailStrengthInput = im.FloatPtr(mtlProxyCopy.detailStrength)
  mtlProxyCopy.macroDistanceInput = im.FloatPtr(mtlProxyCopy.macroDistance)
  mtlProxyCopy.detailStrengthInput = im.FloatPtr(mtlProxyCopy.detailStrength)
  mtlProxyCopy.detailSizeInput = im.FloatPtr(mtlProxyCopy.detailSize)
  mtlProxyCopy.detailStrengthInput = im.FloatPtr(mtlProxyCopy.detailStrength)
  mtlProxyCopy.detailSizeInput = im.FloatPtr(mtlProxyCopy.detailSize)
  mtlProxyCopy.detailDistanceInput = im.FloatPtr(mtlProxyCopy.detailDistance)
  mtlProxyCopy.detailSizeInput = im.FloatPtr(mtlProxyCopy.detailSize)
  mtlProxyCopy.detailDistanceInput = im.FloatPtr(mtlProxyCopy.detailDistance)
  mtlProxyCopy.parallaxScaleInput = im.FloatPtr(mtlProxyCopy.parallaxScale)
  mtlProxyCopy.detailDistanceInput = im.FloatPtr(mtlProxyCopy.detailDistance)
  mtlProxyCopy.parallaxScaleInput = im.FloatPtr(mtlProxyCopy.parallaxScale)
  local marginPref = editor.getPreference("terrainEditor.terraform.terraformMargin")
  local marginPtr = im.FloatPtr(marginPref)
  if im.SliderFloat("###terraformMargin", marginPtr, 0.0, 20.0, "%.3f") then
  local falloffPref = editor.getPreference("terrainEditor.terraform.terraformFalloff")
  local falloffPtr = im.FloatPtr(falloffPref)
  if im.SliderFloat("###terraformFalloff", falloffPtr, 1.0, 5.0, "%.2f") then
  local roughnessPref = editor.getPreference("terrainEditor.terraform.terraformRoughness")
  local roughnessPtr = im.FloatPtr(roughnessPref)
  if im.SliderFloat("###terraformRoughness", roughnessPtr, 0.0, 1.0, "%.2f") then
  local scalePref = editor.getPreference("terrainEditor.terraform.terraformScale")
  local scalePtr = im.FloatPtr(scalePref)
  if im.SliderFloat("###terraformScale", scalePtr, 0.0, 1.0, "%.2f") then
@/lua/ge/extensions/editor/rallyEditor/recceTab.lua
  end
  local ptr = im.FloatPtr(self.straightnessThreshold)
  if im.SliderFloat("##StraightnessThreshold", ptr, 0.980, 1.0, "%.6f") then
@/lua/ge/extensions/editor/vehicleEditor/veToolbar.lua
local innerToolbarFlags = bit.bor(im.WindowFlags_NoDecoration, im.WindowFlags_NoMove, im.WindowFlags_NoScrollWithMouse, im.WindowFlags_NoSavedSettings, im.WindowFlags_NoBringToFrontOnFocus, im.WindowFlags_NoBackground, im.WindowFlags_MenuBar)
local camSpeedPtr = im.FloatPtr(0)
local todPtr = im.FloatPtr(0)
local camSpeedPtr = im.FloatPtr(0)
local todPtr = im.FloatPtr(0)
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
-- Module state (front-end).
local compTime3rdParty = im.FloatPtr(0.0005)                                                        -- The expected 3rd party computation time (per cycle).
local pingTime = im.FloatPtr(0.00001)                                                               -- The expected udp socket ping time.
local compTime3rdParty = im.FloatPtr(0.0005)                                                        -- The expected 3rd party computation time (per cycle).
local pingTime = im.FloatPtr(0.00001)                                                               -- The expected udp socket ping time.
local sIP, rIP = im.ArrayChar(16, "127.0.0.1"), im.ArrayChar(16, "127.0.0.1")                       -- The IP addresses for the udp communication (3rd party computer).
        if d[1] == 'connection' then
          if d[3] == '3rd Party Computation Time' then compTime3rdParty = im.FloatPtr(tonumber(d[4])) end
          if d[3] == 'Ping Time' then pingTime = im.FloatPtr(tonumber(d[4])) end
          if d[3] == '3rd Party Computation Time' then compTime3rdParty = im.FloatPtr(tonumber(d[4])) end
          if d[3] == 'Ping Time' then pingTime = im.FloatPtr(tonumber(d[4])) end
          if d[2] == 'otherUDP' then
      im.InputFloat("3rd Party Computation Time", compTime3rdParty, 1e-4, 0.0, "%.5f s")
      compTime3rdParty = im.FloatPtr(max(1e-4, min(1e4, compTime3rdParty[0])))
      im.tooltip('The expected computation time for each 3rd party cycle in the coupling.')
      im.InputFloat("UDP Ping Time", pingTime, 1e-5, 0.0, "%.5f s")
      pingTime = im.FloatPtr(max(1e-5, min(1e4, pingTime[0])))
      im.tooltip('The expected udp socket ping time.')
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua
    elseif fields.types[name] == 'number' then
      if not self.fields[name] then self.fields[name] = im.FloatPtr(fields.values[name]) end
@/lua/ge/extensions/editor/tech/roadArchitect/link.lua
  jctMgr.rotateJunctionQuat(jIdx, jCenter, rot)
  jct.l2Length = im.FloatPtr(20.0)
  jct.isSidewalk = im.BoolPtr(profileMgr.areSidewalksPresent(r1.profile))
  jctMgr.rotateJunctionQuat(jIdx, jCenter, rot)
  jct.l2Length = im.FloatPtr(20.0)
  jct.isSidewalk = im.BoolPtr(profileMgr.areSidewalksPresent(r2.profile))
  jctMgr.rotateJunctionQuat(jIdx, jCenter, rot)
  jct.l2Length = im.FloatPtr(10.0)
  jct.isSidewalk = im.BoolPtr(false)
  jctMgr.rotateJunctionQuat(jIdx, jCenter, rot)
  jct.l2Length = im.FloatPtr(10.0)
  jct.isSidewalk = im.BoolPtr(false)
    end
    jct.theta = im.FloatPtr(jctAngle)
@/lua/ge/extensions/editor/trafficSignalsEditor.lua

    var = im.FloatPtr(currData.duration)
    im.PushItemWidth(inputWidth)
    if currData.enableFlashingLights then
      var = im.FloatPtr(currData.flashingInterval)
      im.PushItemWidth(inputWidth)

            local var = im.FloatPtr(state.duration)
            im.PushItemWidth(columnWidth - 10)

    local var = im.FloatPtr(currSequence.startTime)
    im.PushItemWidth(inputWidth)
      for i, phase in ipairs(currSequence.phases) do
        var = im.FloatPtr(phase.startTime)
        im.PushItemWidth(inputWidth)
@/lua/ge/extensions/editor/flowgraph/main.lua
      if graph.focusSelection then
        graph.viewZoom = im.FloatPtr(1)
      end
      graph.viewPos = im.ImVec2Ptr(0, 0)
      graph.viewZoom = im.FloatPtr(0)
    end
          if self.mgr.transient then
            local vpPtr, vz = im.ImVec2Ptr(0,0), im.FloatPtr(0)
            ui_flowgraph_editor.getViewState(vpPtr, vz)
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua
      if not self.fields[name] then
        self.fields[name] = im.FloatPtr(fields.values[name])
      end
@/lua/ge/extensions/editor/util/transformUtil.lua
    self.scl = self.scl.x or 1
    self.inputScl = im.FloatPtr(self.scl)
  else
@/lua/ge/extensions/editor/crawlEditor/paths.lua
    do
      local radiusPtr = im.FloatPtr(self.currentPathnode.radius or 6.0)
      local radiusEditEnded = im.BoolPtr(false)
@/lua/ge/extensions/util/vehicleRopeDebug.lua
local uiPtrs = {
  anchorAX = im.FloatPtr(0),
  anchorAY = im.FloatPtr(0),
  anchorAX = im.FloatPtr(0),
  anchorAY = im.FloatPtr(0),
  anchorAZ = im.FloatPtr(3),
  anchorAY = im.FloatPtr(0),
  anchorAZ = im.FloatPtr(3),
  anchorBX = im.FloatPtr(5),
  anchorAZ = im.FloatPtr(3),
  anchorBX = im.FloatPtr(5),
  anchorBY = im.FloatPtr(0),
  anchorBX = im.FloatPtr(5),
  anchorBY = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  anchorBY = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  baseDirAX = im.FloatPtr(0),
  anchorBZ = im.FloatPtr(3),
  baseDirAX = im.FloatPtr(0),
  baseDirAY = im.FloatPtr(0),
  baseDirAX = im.FloatPtr(0),
  baseDirAY = im.FloatPtr(0),
  baseDirAZ = im.FloatPtr(-1),
  baseDirAY = im.FloatPtr(0),
  baseDirAZ = im.FloatPtr(-1),
  baseDirBX = im.FloatPtr(0),
  baseDirAZ = im.FloatPtr(-1),
  baseDirBX = im.FloatPtr(0),
  baseDirBY = im.FloatPtr(0),
  baseDirBX = im.FloatPtr(0),
  baseDirBY = im.FloatPtr(0),
  baseDirBZ = im.FloatPtr(-1),
  baseDirBY = im.FloatPtr(0),
  baseDirBZ = im.FloatPtr(-1),
  nodeCount = im.IntPtr(32),
  nodeCount = im.IntPtr(32),
  lengthScale = im.FloatPtr(1.0),
  diameter = im.FloatPtr(0.12),
  lengthScale = im.FloatPtr(1.0),
  diameter = im.FloatPtr(0.12),
  damping = im.FloatPtr(0.995),
  diameter = im.FloatPtr(0.12),
  damping = im.FloatPtr(0.995),
  bendStiffness = im.FloatPtr(0.6),
  damping = im.FloatPtr(0.995),
  bendStiffness = im.FloatPtr(0.6),
  useXPBD = im.BoolPtr(true),
  useStrainLimit = im.BoolPtr(true),
  maxStrainLimit = im.FloatPtr(1.0),
  youngsModulus = im.FloatPtr(1e7),
  maxStrainLimit = im.FloatPtr(1.0),
  youngsModulus = im.FloatPtr(1e7),
  renderRope = im.BoolPtr(true),
  debugMass = im.BoolPtr(false),
  windScale = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  windScale = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  totalMass = im.FloatPtr(1.0),
  windDrag = im.FloatPtr(1.0),
  totalMass = im.FloatPtr(1.0),
  massFalloff = im.FloatPtr(0.0),
  totalMass = im.FloatPtr(1.0),
  massFalloff = im.FloatPtr(0.0),
  iterations = im.IntPtr(1),
  iterations = im.IntPtr(1),
  gravityX = im.FloatPtr(0.0),
  gravityY = im.FloatPtr(0.0),
  gravityX = im.FloatPtr(0.0),
  gravityY = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  gravityY = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  c1 = im.FloatPtr(0.0),
  gravityZ = im.FloatPtr(-9.81),
  c1 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c1 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c3 = im.FloatPtr(0.0),
  c2 = im.FloatPtr(0.0),
  c3 = im.FloatPtr(0.0),
  anchorAFixed = im.BoolPtr(true),
@/lua/ge/extensions/editor/roadSpline.lua
              im.PushItemWidth(-1)
              tmpPtr2 = im.FloatPtr(selectedLayer.width)
              if im.SliderFloat("###8130", tmpPtr2, 0.1, 30.0, "Width (m) = %.1f") then
            im.PushItemWidth(-1)
            tmpPtr2 = im.FloatPtr(selectedLayer.position)
            if im.SliderFloat("###8131", tmpPtr2, latMin, latMax, "Lateral Position = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr2 = im.FloatPtr(selectedLayer.texLen)
            if im.SliderFloat("###8132", tmpPtr2, 1.0, 200.0, "Tex Length (m) = %.1f") then
            im.PushItemWidth(-1)
            tmpPtr2 = im.FloatPtr(selectedLayer.fadeIn)
            if im.SliderFloat("###8134", tmpPtr2, fadeMin, fadeMax, "Fade In (m) = %.1f") then
            im.PushItemWidth(-1)
            tmpPtr2 = im.FloatPtr(selectedLayer.fadeOut)
            if im.SliderFloat("###8135", tmpPtr2, fadeMin, fadeMax, "Fade Out (m) = %.1f") then
            im.PushItemWidth(-1)
            local tmpPtr = im.FloatPtr(selGroup.paintMargin or sliderDefaults.defaultPaintMargin)
            if im.SliderFloat('###81840', tmpPtr, 0.1, 50.0, "Paint Margin (m) = %.1f") then
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua
local pathnodeNormal = im.ArrayFloat(3)
local pathnodeRadius = im.FloatPtr(0)
local nameText = im.ArrayChar(1024, "")
    elseif fields.types[name] == 'number' then
      if not self.fields[name] then self.fields[name] = im.FloatPtr(fields.values[name]) end
@/lua/ge/extensions/editor/assemblySpline.lua
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.spacing)
      if im.SliderFloat('###5756', tmpPtr, minSpacing, maxSpacing, "Molecule Spacing (m) = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.verticalOffset)
      if im.SliderFloat('###4456', tmpPtr, minVerticalOffset, maxVerticalOffset, "Vertical Offset (m) = %.2f") then
        im.PushItemWidth(-1)
        tmpPtr = im.FloatPtr(selSpline.sag)
        if im.SliderFloat('###5316', tmpPtr, minSag, maxSag, "Bridge Sag = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterForward)
      if im.SliderFloat('###5757', tmpPtr, 0.0, 0.2, "Pitch Jitter = %.3f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterRight)
      if im.SliderFloat('###5758', tmpPtr, 0.0, 0.2, "Yaw Jitter = %.3f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterUp)
      if im.SliderFloat('###5759', tmpPtr, 0.0, 0.2, "Roll Jitter = %.3f") then
                    im.PushItemWidth(-1)
                    tmpPtr = im.FloatPtr(rigid.randomWeight)
                    if im.SliderFloat('###baseWeight' .. rigidIdx, tmpPtr, 0.0, 1.0, "Base Weight = %.2f") then
                      im.PushItemWidth(-1)
                      tmpPtr = im.FloatPtr(variation.randomWeight)
                      if im.SliderFloat('###varWeight' .. rigidIdx .. '_' .. j, tmpPtr, 0.0, 1.0, "Var" .. j .. " Weight = %.2f") then
                    im.PushItemWidth(-1)
                    tmpPtr = im.FloatPtr(bridge.randomWeight)
                    if im.SliderFloat('###bridgeBaseWeight' .. i, tmpPtr, 0.0, 1.0, "Base Weight = %.2f") then
                      im.PushItemWidth(-1)
                      tmpPtr = im.FloatPtr(variation.randomWeight)
                      if im.SliderFloat('###bridgeVarWeight' .. i .. '_' .. j, tmpPtr, 0.0, 1.0, "Var" .. j .. " Weight = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraDOI)
          if im.SliderFloat('###assembly_doi', tmpPtr, DOImin, DOImax, "DOI = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraMargin)
          if im.SliderFloat('###assembly_margin', tmpPtr, terraMarginMin, terraMarginMax, "Terraform Margin = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraFalloff)
          if im.SliderFloat('###assembly_falloff', tmpPtr, terraFalloffMin, terraFalloffMax, "Terraform Falloff = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraRoughness)
          if im.SliderFloat('###assembly_rough', tmpPtr, 0.0, 1.0, "Noise Roughness = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraScale)
          if im.SliderFloat('###assembly_scale', tmpPtr, 0.0, 1.0, "Noise Scale = %.2f") then
@/lua/ge/extensions/editor/trafficDebug.lua

  var = im.FloatPtr(trafficVars.spawnValue)
  im.PushItemWidth(100)

  var = im.FloatPtr(trafficVars.spawnDirBias)
  im.PushItemWidth(100)

  var = im.FloatPtr(trafficVars.baseAggression)
  im.PushItemWidth(100)
  local speedLimit = trafficVars.speedLimit or -1
  var = im.FloatPtr(speedLimit)
  im.PushItemWidth(100)

  var = im.FloatPtr(parkingVars.baseProbability)
  im.PushItemWidth(100)

  var = im.FloatPtr(parkingVars.neatness)
  im.PushItemWidth(100)

  var = im.FloatPtr(parkingVars.precision)
  im.PushItemWidth(100)
@/lua/ge/extensions/editor/engineAudioDebug.lua

local mainGain = im.FloatPtr(0)
local onLoadGain = im.FloatPtr(0)
local mainGain = im.FloatPtr(0)
local onLoadGain = im.FloatPtr(0)
local offLoadGain = im.FloatPtr(0)
local onLoadGain = im.FloatPtr(0)
local offLoadGain = im.FloatPtr(0)

local lowShelfFreq = im.FloatPtr(0)
local lowShelfGain = im.FloatPtr(0)
local lowShelfFreq = im.FloatPtr(0)
local lowShelfGain = im.FloatPtr(0)
local highShelfFreq = im.FloatPtr(0)
local lowShelfGain = im.FloatPtr(0)
local highShelfFreq = im.FloatPtr(0)
local highShelfGain = im.FloatPtr(0)
local highShelfFreq = im.FloatPtr(0)
local highShelfGain = im.FloatPtr(0)

local eqLowGain = im.FloatPtr(0)
local eqLowFreq = im.FloatPtr(0)
local eqLowGain = im.FloatPtr(0)
local eqLowFreq = im.FloatPtr(0)
local eqLowWidth = im.FloatPtr(0)
local eqLowFreq = im.FloatPtr(0)
local eqLowWidth = im.FloatPtr(0)

local eqHighGain = im.FloatPtr(0)
local eqHighFreq = im.FloatPtr(0)
local eqHighGain = im.FloatPtr(0)
local eqHighFreq = im.FloatPtr(0)
local eqHighWidth = im.FloatPtr(0)
local eqHighFreq = im.FloatPtr(0)
local eqHighWidth = im.FloatPtr(0)

local eqFundamentalGain = im.FloatPtr(0)
local muffling = im.FloatPtr(0)
local eqFundamentalGain = im.FloatPtr(0)
local muffling = im.FloatPtr(0)
local fundamentalFreqCylCount = im.IntPtr(0)
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.verticalAngle
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.horizontalAngle
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.maxDistance
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeRoundness
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeCutoffSensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeShape
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeFocus
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMinCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeDirectMaxCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.sensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.fovY
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[1]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.nearFarPlanes[2]
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeRoundness
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeCutoffSensitivity
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeShape
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeFocus
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMinCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeDirectMaxCutoff
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMin
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.rangeMax
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.velMin
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.velMax
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.halfAngleDeg
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.requestedUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.updatePriority
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.smootherStrength
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.x
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.y
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.pos.z
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.refLon
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.refLat
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
        local oldVal = sensor.physicsUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushItemWidth(130)
        local oldVal = sensor.GFXUpdateTime
        local uiVal = im.FloatPtr(oldVal)
        im.PushStyleVar1(im.StyleVar_GrabMinSize, 20)
@/lua/ge/extensions/editor/crawlEditor/startingPositions.lua
  -- Radius
  local radius = im.FloatPtr(startingPosition.transform.radius or 10.0)
  local radiusEditEnded = im.BoolPtr(false)
@/lua/ge/extensions/core/vehicleMirrors.lua
local time = 0
local updateTime = im.FloatPtr(0.3)
@/lua/ge/extensions/editor/rendererComponents.lua
local tempBoolPtr = im.BoolPtr(true)
local tempFloatPtr = im.FloatPtr(0)
local tempFloatArr3 = im.ArrayFloat(3)
        --print("initialValue = " .. tostring(initialValue))
        s.cVal = im.FloatPtr(initialValue)
      end
@/lua/ge/extensions/editor/decalSpline.lua
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.spacing)
      if im.SliderFloat('###5756', tmpPtr, minSpacing, maxSpacing, "Spacing (m) = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitter)
      if im.SliderFloat('###5757', tmpPtr, 0.0, 0.2, "Jitter = %.3f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(selSpline.component1RandomWeight)
          if im.SliderFloat('###5752', tmpPtr, 0.0, 1.0, "Component 1 Weight = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(selSpline.component2RandomWeight)
            if im.SliderFloat('###5753', tmpPtr, 0.0, 1.0, "Component 2 Weight = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(selSpline.component3RandomWeight)
            if im.SliderFloat('###5754', tmpPtr, 0.0, 1.0, "Component 3 Weight = %.2f") then
            im.PushItemWidth(-1)
            tmpPtr = im.FloatPtr(selSpline.component4RandomWeight)
            if im.SliderFloat('###5755', tmpPtr, 0.0, 1.0, "Component 4 Weight = %.2f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selSpline.scale1)
              if im.SliderFloat("###4430", tmpPtr, 0.1, 7.0, "Scale = %.1f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selSpline.scale2)
              if im.SliderFloat("###4434", tmpPtr, 0.1, 7.0, "Scale = %.1f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selSpline.scale3)
              if im.SliderFloat("###4438", tmpPtr, 0.1, 7.0, "Scale = %.1f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selSpline.scale4)
              if im.SliderFloat("###4442", tmpPtr, 0.1, 7.0, "Scale = %.1f") then
@/lua/ge/extensions/flowgraph/nodes/debug/numberSlider.lua
  self.data.aMax = 1
  self.aInput = im.FloatPtr(0)
  self.data.bMax = 1
  self.bInput = im.FloatPtr(0)
  self.data.cMax = 10
  self.cInput = im.FloatPtr(0)
  self.data.dMax = 100
  self.dInput = im.FloatPtr(0)
  self.data.eMax = 1000
  self.eInput = im.FloatPtr(0)
end
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veView.lua
    mode = data.mode or '3d',
    nearClip = im.FloatPtr(data.nearClip or 0.01),
    farClip = im.FloatPtr(data.farClip or 2500),
    nearClip = im.FloatPtr(data.nearClip or 0.01),
    farClip = im.FloatPtr(data.farClip or 2500),
    fov = im.FloatPtr(data.fov or 70),
    farClip = im.FloatPtr(data.farClip or 2500),
    fov = im.FloatPtr(data.fov or 70),
    pos = data.pos or core_camera.getPosition(),
@/lua/ge/extensions/editor/raceEditor/tools.lua

local nodeSize = im.FloatPtr(5)
local previewEnabled = im.BoolPtr(false)
@/lua/ge/extensions/editor/decalEditor.lua
local position = im.ArrayFloat(3)
local size = im.FloatPtr(0)
local originalPosition

    size = im.FloatPtr(selectedInstance.size)
    local originalSize = size[0]

    local saPtr = im.FloatPtr(sphereAlpha)
    if im.SliderFloat("Sphere alpha", saPtr, 0.0, 1.0, "%.2f") then
@/lua/ge/extensions/editor/scriptAIEditor.lua
  winSize = im.ImVec2(561, 65),
  t = im.FloatPtr(0.0),
  tStart = 0.0,
  isLooping = im.BoolPtr(false),
  manualT = im.FloatPtr(30.0),
  isDispInExe = im.BoolPtr(true),
  selectedNode = 1,
  fieldRange = im.FloatPtr(1),
  col = im.ArrayFloat(3),
local function ptr2ValT(d) return { x = d.x[0], y = d.y[0], z = d.z[0], t = d.t[0], isLocked = d.isLocked  } end
local function val2PtrT(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function ptr2ValT(d) return { x = d.x[0], y = d.y[0], z = d.z[0], t = d.t[0], isLocked = d.isLocked  } end
local function val2PtrT(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function ptr2ValT(d) return { x = d.x[0], y = d.y[0], z = d.z[0], t = d.t[0], isLocked = d.isLocked  } end
local function val2PtrT(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function ptr2ValT(d) return { x = d.x[0], y = d.y[0], z = d.z[0], t = d.t[0], isLocked = d.isLocked  } end
local function val2PtrT(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function val2PtrV(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function val2PtrV(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function val2PtrV(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked  } end
local function ptr2ValV(d) return { x = d.x[0], y = d.y[0], z = d.z[0], v = d.v[0], isLocked = d.isLocked  } end
local function val2PtrV(d) return { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked  } end
    camWinData.nodes[i] = {
      t = im.FloatPtr(n.t),
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      t = im.FloatPtr(n.t),
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      t = im.FloatPtr(n.t),
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      t = im.FloatPtr(n.t),
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      smoothness = im.FloatPtr(n.smoothness),
      movingStart = im.BoolPtr(n.movingStart), movingEnd = im.BoolPtr(n.movingEnd),
    local timeStamp = n0.t[0] + ((vec3(n1.x[0], n1.y[0], n1.z[0]) - vec3(n0.x[0], n0.y[0], n0.z[0])):length() * velInv)
    n1.t = im.FloatPtr(timeStamp)
  end
    selectedNode = tr.selectedNode,
    fieldRange = im.FloatPtr(tr.fieldRange),
    isUseRigidTranslation = im.BoolPtr(tr.isUseRigidTranslation),
    boxPos = tr.boxPos,
    inputVelocity = im.FloatPtr(tr.inputVelocity),
    vModeTStart = im.FloatPtr(tr.vModeTStart), vModeTEnd = im.FloatPtr(tr.vModeTEnd) }
    inputVelocity = im.FloatPtr(tr.inputVelocity),
    vModeTStart = im.FloatPtr(tr.vModeTStart), vModeTEnd = im.FloatPtr(tr.vModeTEnd) }
  end
    inputVelocity = im.FloatPtr(tr.inputVelocity),
    vModeTStart = im.FloatPtr(tr.vModeTStart), vModeTEnd = im.FloatPtr(tr.vModeTEnd) }
  end
    cwd.nodes[i] = {
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
    cwd.nodes[i] = {
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
    cwd.nodes[i] = {
      x = im.FloatPtr(n.x), y = im.FloatPtr(n.y), z = im.FloatPtr(n.z),
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      qx = n.qx, qy = n.qy, qz = n.qz, qw = n.qw,
      t = im.FloatPtr(n.t),
      smoothness = im.FloatPtr(n.smoothness),
      t = im.FloatPtr(n.t),
      smoothness = im.FloatPtr(n.smoothness),
      movingStart = im.BoolPtr(n.movingStart), movingEnd = im.BoolPtr(n.movingEnd),
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.old[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), t = im.FloatPtr(d.t), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
      local d = data.new[i]
      nodes[i] = { x = im.FloatPtr(d.x), y = im.FloatPtr(d.y), z = im.FloatPtr(d.z), v = im.FloatPtr(d.v), isLocked = d.isLocked }
    end
  local n, old = camWinData.nodes[data.idx], data.old
  n.x, n.y, n.z = im.FloatPtr(old.x), im.FloatPtr(old.y), im.FloatPtr(old.z)
end
  local n, old = camWinData.nodes[data.idx], data.old
  n.x, n.y, n.z = im.FloatPtr(old.x), im.FloatPtr(old.y), im.FloatPtr(old.z)
end
  local n, old = camWinData.nodes[data.idx], data.old
  n.x, n.y, n.z = im.FloatPtr(old.x), im.FloatPtr(old.y), im.FloatPtr(old.z)
end
  local n, new = camWinData.nodes[data.idx], data.new
  n.x, n.y, n.z = im.FloatPtr(new.x), im.FloatPtr(new.y), im.FloatPtr(new.z)
end
  local n, new = camWinData.nodes[data.idx], data.new
  n.x, n.y, n.z = im.FloatPtr(new.x), im.FloatPtr(new.y), im.FloatPtr(new.z)
end
  local n, new = camWinData.nodes[data.idx], data.new
  n.x, n.y, n.z = im.FloatPtr(new.x), im.FloatPtr(new.y), im.FloatPtr(new.z)
end
    local p = editor.getAxisGizmoTransform():getColumn(3)
    n.x, n.y, n.z = im.FloatPtr(p.x), im.FloatPtr(p.y), im.FloatPtr(p.z)
    return
    local p = editor.getAxisGizmoTransform():getColumn(3)
    n.x, n.y, n.z = im.FloatPtr(p.x), im.FloatPtr(p.y), im.FloatPtr(p.z)
    return
    local p = editor.getAxisGizmoTransform():getColumn(3)
    n.x, n.y, n.z = im.FloatPtr(p.x), im.FloatPtr(p.y), im.FloatPtr(p.z)
    return
    selectedNode = 1,
    fieldRange = im.FloatPtr(0.5),
    isUseRigidTranslation = im.BoolPtr(false),
    boxPos = nil,
    inputVelocity = im.FloatPtr(30.0),
    vModeTStart = im.FloatPtr(0.0), vModeTEnd = im.FloatPtr(60.0) }
    inputVelocity = im.FloatPtr(30.0),
    vModeTStart = im.FloatPtr(0.0), vModeTEnd = im.FloatPtr(60.0) }
end
    inputVelocity = im.FloatPtr(30.0),
    vModeTStart = im.FloatPtr(0.0), vModeTEnd = im.FloatPtr(60.0) }
end
    end
    table.insert(polyLine, pos + 1, { t = im.FloatPtr(newT), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  else
    end
    table.insert(polyLine, pos + 1, { t = im.FloatPtr(newT), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  else
    end
    table.insert(polyLine, pos + 1, { t = im.FloatPtr(newT), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  else
    end
    table.insert(polyLine, pos + 1, { t = im.FloatPtr(newT), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  else
    end
    table.insert(polyLine, pos + 1, { v = im.FloatPtr(newV), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  end
    end
    table.insert(polyLine, pos + 1, { v = im.FloatPtr(newV), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  end
    end
    table.insert(polyLine, pos + 1, { v = im.FloatPtr(newV), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  end
    end
    table.insert(polyLine, pos + 1, { v = im.FloatPtr(newV), x = im.FloatPtr(newX), y = im.FloatPtr(newY), z = im.FloatPtr(newZ), isLocked = false })
  end
      deserializeCamData(data.camData)
      toolWinData.t = im.FloatPtr(data.t)
      vehWinData.selectedVeh = data.selectedVeh
    t = t + d / max(1e-30, oldV)
    poly[i].t = im.FloatPtr(t)
  end
    for i = 1, len do
      poly[i].t = im.FloatPtr(poly[i].t[0] + off)
    end
    for i = 1, l do                                                             -- In [1, l], do a rigid time translation first.
      poly[i].t = im.FloatPtr(poly[i].t[0] + off)
    end
    for i = l + 1, uLock - 1 do                                                 -- In [l, uLock - 1], do tension/compression based on interp positions.
      poly[i].t = im.FloatPtr(tL + ips[i] * dt)
    end
    for i = u, len do                                                           -- In [u, end], do a rigid time translation first.
      poly[i].t = im.FloatPtr(poly[i].t[0] + off)
    end
    for i = lLock + 1, u - 1 do                                                 -- In [lLock + 1, u], do tension/compression based on interp positions.
      poly[i].t = im.FloatPtr(tLLock + ips[i] * dt)
    end
    if k ~= lLock and k ~= uLock then
      poly[k].t = im.FloatPtr(tMid + (d.intV * v))
    end
    for i = 1, len do
      poly[i].t = im.FloatPtr(tOld[i])
    end
      local old = polyLine[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + translation.x), im.FloatPtr(old.y[0] + translation.y), im.FloatPtr(old.z[0] + translation.z)
    end
      local old = polyLine[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + translation.x), im.FloatPtr(old.y[0] + translation.y), im.FloatPtr(old.z[0] + translation.z)
    end
      local old = polyLine[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + translation.x), im.FloatPtr(old.y[0] + translation.y), im.FloatPtr(old.z[0] + translation.z)
    end
      local tra = translation * weights[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
    end
      local tra = translation * weights[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
    end
      local tra = translation * weights[i]
      polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
    end
        local tra = translation * weights[i]
        polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
      end
        local tra = translation * weights[i]
        polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
      end
        local tra = translation * weights[i]
        polyLine[i].x, polyLine[i].y, polyLine[i].z = im.FloatPtr(old.x[0] + tra.x), im.FloatPtr(old.y[0] + tra.y), im.FloatPtr(old.z[0] + tra.z)
      end
        for i = 1, len do
          polyLine[i].x, polyLine[i].x, polyLine[i].z, polyLine[i].t = im.FloatPtr(revPoly[i].x), im.FloatPtr(revPoly[i].y), im.FloatPtr(revPoly[i].z), im.FloatPtr(revPoly[i].t)
        end
        for i = 1, len do
          polyLine[i].x, polyLine[i].x, polyLine[i].z, polyLine[i].t = im.FloatPtr(revPoly[i].x), im.FloatPtr(revPoly[i].y), im.FloatPtr(revPoly[i].z), im.FloatPtr(revPoly[i].t)
        end
        for i = 1, len do
          polyLine[i].x, polyLine[i].x, polyLine[i].z, polyLine[i].t = im.FloatPtr(revPoly[i].x), im.FloatPtr(revPoly[i].y), im.FloatPtr(revPoly[i].z), im.FloatPtr(revPoly[i].t)
        end
        for i = 1, len do
          polyLine[i].x, polyLine[i].x, polyLine[i].z, polyLine[i].t = im.FloatPtr(revPoly[i].x), im.FloatPtr(revPoly[i].y), im.FloatPtr(revPoly[i].z), im.FloatPtr(revPoly[i].t)
        end
      local sampleIdx = min(polyLen, max(1, floor(i * spacInv)))
      procNodes[i].v = im.FloatPtr(poly[sampleIdx].v[0])
      procNodes[i] = val2PtrV(procNodes[i])
  if toolWinData.isPlaying == true then
    toolWinData.t = im.FloatPtr(toolWinData.t[0] + dt)
    if toolWinData.t[0] >= toolWinData.tEnd then
      if toolWinData.isLooping[0] == true then
        toolWinData.t = im.FloatPtr(toolWinData.tStart)
        if toolWinData.isExecuting == true then
      else
        toolWinData.t = im.FloatPtr(toolWinData.tEnd)
        toolWinData.isPlaying = false
    if toolWinData.isLooping[0] == true then
      toolWinData.t = im.FloatPtr(toolWinData.tStart)
      if toolWinData.isExecuting == true then
    else
      toolWinData.t = im.FloatPtr(toolWinData.tEnd)
      toolWinData.isExecuting = false
          for i = 1, len do
            poly[i].t = im.FloatPtr(poly[i].t[0] - twd.tStart)
          end
        for i = 1, nLen do
          camWinData.nodes[i].t = im.FloatPtr(camWinData.nodes[i].t[0] - twd.tStart)
        end
        if editor.uiIconImageButton(editor.icons.movieCamera, im.ImVec2(30, 30), nil, nil, nil, 'execute') then
          twd.t = im.FloatPtr(twd.tStart)
          execute()
          if editor.uiIconImageButton(editor.icons.play_arrow, im.ImVec2(28, 28), colors.black, nil, nil, 'play') then
            if abs(twd.t[0] - twd.tEnd) < 1e-3 then twd.t = im.FloatPtr(twd.tStart) end
            twd.isPlaying = true
        if editor.uiIconImageButton(editor.icons.fast_rewind, im.ImVec2(28, 28), colors.black, nil, nil, 'rewind') then
          twd.t = im.FloatPtr(twd.t[0] - twd.rewJump)
          if twd.t[0] <= 0.0 then
          if twd.t[0] <= 0.0 then
            twd.t = im.FloatPtr(0.0)
            twd.isPlaying = false
        if editor.uiIconImageButton(editor.icons.fast_forward, im.ImVec2(28, 28), colors.black, nil, nil, 'fastForward') then
          twd.t = im.FloatPtr(twd.t[0] + twd.ffwdJump)
          if twd.t[0] >= twd.tEnd then
          if twd.t[0] >= twd.tEnd then
            twd.t = im.FloatPtr(twd.tEnd)
            twd.isPlaying = false
                end
                twd.t = im.FloatPtr(twd.tStart)
                twd.isPlaying, vwd.isRecording[i] = true, true
              if editor.uiIconImageButton(editor.icons.arrow_upward, im.ImVec2(27, 27), nil, nil, nil, 'increaseVel') then
                polyLine[tr.selectedNode].v = im.FloatPtr(min(consts.maxMPS, polyLine[tr.selectedNode].v[0] + consts.incMPS))
              end
              if editor.uiIconImageButton(editor.icons.arrow_downward, im.ImVec2(27, 27), nil, nil, nil, 'decreaseVel') then
                polyLine[tr.selectedNode].v = im.FloatPtr(max(consts.minMPS, polyLine[tr.selectedNode].v[0] - consts.incMPS))
              end
            im.SameLine()
            if tr.vModeTStart == nil then tr.vModeTStart = im.FloatPtr(0.0) end
            if tr.vModeTEnd == nil then tr.vModeTEnd = im.FloatPtr(60.0) end
            if tr.vModeTStart == nil then tr.vModeTStart = im.FloatPtr(0.0) end
            if tr.vModeTEnd == nil then tr.vModeTEnd = im.FloatPtr(60.0) end
            local oldStart, oldEnd = tr.vModeTStart[0], tr.vModeTEnd[0]
            if tr.vModeTStart[0] < 0.0 then
              tr.vModeTStart = im.FloatPtr(0.0)
            end
            if tr.vModeTStart[0] >= tr.vModeTEnd[0] then
              tr.vModeTStart, tr.vModeTEnd = im.FloatPtr(oldStart), im.FloatPtr(oldEnd)
            end
            if tr.vModeTStart[0] >= tr.vModeTEnd[0] then
              tr.vModeTStart, tr.vModeTEnd = im.FloatPtr(oldStart), im.FloatPtr(oldEnd)
            end
              for i = 1, len do
                polyLine[i].v = im.FloatPtr(velMps)
              end
          if tr.inputVelocity[0] < 0.1 then
            tr.inputVelocity = im.FloatPtr(0.1)
          elseif tr.inputVelocity[0] > 180.0 then
          elseif tr.inputVelocity[0] > 180.0 then
            tr.inputVelocity = im.FloatPtr(180.0)
          end
          im.tooltip('Change the time when the camera should arrive at this node.')
          if (j > 1 and n.t[0] <= nodes[j - 1].t[0]) or (j < numNodes and n.t[0] >= nodes[j + 1].t[0]) then n.t = im.FloatPtr(tOld) end
          if n.t[0] < 0.0 then n.t = im.FloatPtr(0.0) end
          if (j > 1 and n.t[0] <= nodes[j - 1].t[0]) or (j < numNodes and n.t[0] >= nodes[j + 1].t[0]) then n.t = im.FloatPtr(tOld) end
          if n.t[0] < 0.0 then n.t = im.FloatPtr(0.0) end
          im.NextColumn()
          im.tooltip('Change the smoothness value of this node, in [0, 1].')
          if n.smoothness[0] < 0.0 then n.smoothness = im.FloatPtr(0.0) end
          if n.smoothness[0] > 1.0 then n.smoothness = im.FloatPtr(1.0) end
          if n.smoothness[0] < 0.0 then n.smoothness = im.FloatPtr(0.0) end
          if n.smoothness[0] > 1.0 then n.smoothness = im.FloatPtr(1.0) end
          im.NextColumn()
        nodes[numNodes + 1] = {
          x = im.FloatPtr(pos.x), y = im.FloatPtr(pos.y), z = im.FloatPtr(pos.z),
          qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
        nodes[numNodes + 1] = {
          x = im.FloatPtr(pos.x), y = im.FloatPtr(pos.y), z = im.FloatPtr(pos.z),
          qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
        nodes[numNodes + 1] = {
          x = im.FloatPtr(pos.x), y = im.FloatPtr(pos.y), z = im.FloatPtr(pos.z),
          qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
          qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
          t = im.FloatPtr(tNow),
          smoothness = im.FloatPtr(0.5),
          t = im.FloatPtr(tNow),
          smoothness = im.FloatPtr(0.5),
          movingStart = im.BoolPtr(true), movingEnd = im.BoolPtr(true),
          cwd.nodes[i] = {
            x = im.FloatPtr(n.x[0]), y = im.FloatPtr(n.y[0]), z = im.FloatPtr(n.z[0] + 30.0),
            qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
          cwd.nodes[i] = {
            x = im.FloatPtr(n.x[0]), y = im.FloatPtr(n.y[0]), z = im.FloatPtr(n.z[0] + 30.0),
            qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
          cwd.nodes[i] = {
            x = im.FloatPtr(n.x[0]), y = im.FloatPtr(n.y[0]), z = im.FloatPtr(n.z[0] + 30.0),
            qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
            qx = rot.x, qy = rot.y, qz = rot.z, qw = rot.w,
            t = im.FloatPtr(n.t[0]),
            smoothness = im.FloatPtr(0.5),
            t = im.FloatPtr(n.t[0]),
            smoothness = im.FloatPtr(0.5),
            movingStart = im.BoolPtr(true), movingEnd = im.BoolPtr(true),
  deserializeCamData(data.camData)
  toolWinData.t = im.FloatPtr(data.t)
  vehWinData.selectedVeh = data.selectedVeh
@/lua/ge/extensions/gameplay/rally/tools/devTools.lua
      lookAheadContext = im.IntPtr(7),
      straightThreshold = im.FloatPtr(5.0),
      mergeDistanceThreshold = im.FloatPtr(0.2),
      straightThreshold = im.FloatPtr(5.0),
      mergeDistanceThreshold = im.FloatPtr(0.2),
      maxSimplifyIterations = im.IntPtr(10)
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imNumbers.lua
  elseif self.mode == 'Float' then
    imVal = im.FloatPtr(self.val)
    ret = im.InputFloat(label, imVal, step, nil, format)
  elseif  self.mode == 'SliderFloat' then
    imVal = im.FloatPtr(self.val)
    ret = im.SliderFloat(label, imVal, min, max, format, self.pinIn.power.value or 1)
  elseif  self.mode == 'DragFloat' then
    imVal = im.FloatPtr(self.val)
    ret = im.DragFloat(label, imVal, step, min, max, format, self.pinIn.power.value or 1)
@/lua/ge/extensions/editor/missionEditor/conditions.lua
  local  val, name =  'vName'..index, 'vnName'..index
  if not self.fields[val] then self.fields[val] = im.FloatPtr(condition.value) end
  local editEnded = im.BoolPtr(false)
  if not self.fields[name] then self.fields[name] = im.ArrayChar(1024, condition.valueName) end
  if not self.fields[val] then self.fields[val] = im.FloatPtr(condition.value) end
  local editEnded = im.BoolPtr(false)
  local  val =  'cval'..index
  if not self.fields[val] then self.fields[val] = im.FloatPtr(condition.level) end
  if im.InputFloat("Min Career Level##"..'displayCareerLevelCondition'..index..self.name, self.fields[val]) then
@/lua/common/extensions/ui/flowgraph/editor.lua
  elseif variable.type == 'number' then
    local imVal = im.FloatPtr(displayOptions.allowEditing and variable.baseValue or variable.value)
    if im.InputFloat("##input" .. name, imVal, nil, nil, nil, im.InputTextFlags_EnterReturnsTrue) then
@/lua/ge/extensions/editor/raceEditor/segments.lua
local capsulePosition = im.ArrayFloat(3)
local capsuleRadius = im.FloatPtr(0)
@/lua/ge/extensions/flowgraph/nodes/debug/comment.lua
  self:refreshColors()
  self.alpha = im.FloatPtr(0.75)
@/lua/ge/extensions/trackbuilder/trackBuilder.lua
  camActivated = {value=im.BoolPtr(true), type="bool"},
  camDistance = {value=im.FloatPtr(80), type="float"}
}
  width  = { value = im.IntPtr(10), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false)},
  height = { value =im.FloatPtr(0), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false),
    customSlope = im.BoolPtr(false), customSlopeValue = im.IntPtr(0),

  checkpoint = { size = im.FloatPtr(4), position = im.ArrayFloat(3), active = im.BoolPtr(false)},
  leftWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  checkpoint = { size = im.FloatPtr(4), position = im.ArrayFloat(3), active = im.BoolPtr(false)},
  leftWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  rightWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  leftWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  rightWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  ceilingMesh = {value = im.FloatPtr(7), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  rightWall = {value = im.FloatPtr(1), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  ceilingMesh = {value = im.FloatPtr(7), active = im.BoolPtr(false), interpolation = im.IntPtr(0), inverted = im.BoolPtr(false) },
  obstacles = { list = {}},
  })
local trackPositionValues = {position = im.ArrayFloat(3), rotation = im.FloatPtr(0) }
trackPositionValues.position[0] = im.Float(0)
    curve = {
      radius = im.FloatPtr(3),
      length = im.FloatPtr(45),
      radius = im.FloatPtr(3),
      length = im.FloatPtr(45),
      direction = im.IntPtr(-1),
    forward = {
      length = im.FloatPtr(3),
      piece = 'freeForward'
    scurve = {
      length = im.FloatPtr(6),
      xOffset = im.FloatPtr(2),
      length = im.FloatPtr(6),
      xOffset = im.FloatPtr(2),
      hardness = im.FloatPtr(0),
      xOffset = im.FloatPtr(2),
      hardness = im.FloatPtr(0),
      piece = 'freeOffsetCurve'
    loop = {
      radius = im.FloatPtr(8),
      xOffset = im.FloatPtr(4),
      radius = im.FloatPtr(8),
      xOffset = im.FloatPtr(4),
      piece = 'freeLoop'
    bezier = {
      xOff = im.FloatPtr(4),
      yOff = im.FloatPtr(8),
      xOff = im.FloatPtr(4),
      yOff = im.FloatPtr(8),
      dirOff = im.FloatPtr(90),
      yOff = im.FloatPtr(8),
      dirOff = im.FloatPtr(90),
      forwardLen = im.FloatPtr(4),
      dirOff = im.FloatPtr(90),
      forwardLen = im.FloatPtr(4),
      backwardLen = im.FloatPtr(4),
      forwardLen = im.FloatPtr(4),
      backwardLen = im.FloatPtr(4),
      absolute = im.BoolPtr(false),
    spiral = {
      size = im.FloatPtr(3),
      angle = im.FloatPtr(30),
      size = im.FloatPtr(3),
      angle = im.FloatPtr(30),
      inside = im.BoolPtr(false),
  modifierValues.obstacles.list[i] =
    { value = im.IntPtr(0), variant = im.IntPtr(1), anchor = im.IntPtr(1), offset = im.FloatPtr(1), position = im.ArrayFloat(3), rotation = im.ArrayFloat(3), scale = im.ArrayFloat(3), extra = im.ArrayFloat(3), show = false, material = im.IntPtr(0)}
  modifierValues.obstacles.list[i].scale[0] = 1
local addSubtrackParams = {
  distance = im.FloatPtr(0),
  radius = im.FloatPtr(20),
  distance = im.FloatPtr(0),
  radius = im.FloatPtr(20),
  count = im.IntPtr(2),
  count = im.IntPtr(2),
  angle = im.FloatPtr(45),
  angleOffset = im.FloatPtr(90),
  angle = im.FloatPtr(45),
  angleOffset = im.FloatPtr(90),
  mode = im.IntPtr(0),
      elseif v.type == "float" then
        menuSettings[name] = {value = im.FloatPtr(v.value), type == "bool"}
      end
    difficulty = im.IntPtr(1),
    timeOfDay = im.FloatPtr(0),
    fogValue = im.FloatPtr(0),
    timeOfDay = im.FloatPtr(0),
    fogValue = im.FloatPtr(0),
    azimuthValue = im.FloatPtr(0)
    fogValue = im.FloatPtr(0),
    azimuthValue = im.FloatPtr(0)
  }
@/lua/ge/extensions/ui/console.lua
local comboCurrentItem = im.IntPtr(0)
local fontConsoleFact = im.FloatPtr(0.95)
local fullscreen = true
local winstate = {}
local winBgAlpha = {im.FloatPtr(0.9), im.FloatPtr(0.8)}
local loopHistory = im.BoolPtr(false)
local winstate = {}
local winBgAlpha = {im.FloatPtr(0.9), im.FloatPtr(0.8)}
local loopHistory = im.BoolPtr(false)
@/lua/ge/extensions/editor/meshEditor.lua
local editingWidth = false
local nodeWidth = im.FloatPtr(0)
local editingDepth = false
local nodeDepth = im.FloatPtr(0)

local nodeHeightRelative = im.FloatPtr(0)
local function defaultWidthSlider()
  local defaultWidthPtr = im.FloatPtr(editor.getPreference(M.preferencesName .. ".general.defaultWidth"))
  if im.InputFloat("##Default Width", defaultWidthPtr, 0.1, 0.5) then
local function defaultDepthSlider()
  local defaultDepthPtr = im.FloatPtr(editor.getPreference(M.preferencesName .. ".general.defaultDepth"))
  if im.InputFloat("##Default Depth", defaultDepthPtr, 0.1, 0.5) then
@/lua/ge/extensions/editor/roadArchitect.lua
local timeSinceLastClick = 1e99                                                                     -- The time since the last left mouse click, in seconds.
local masterWidth = im.FloatPtr(3.5)                                                                -- The master lane width (for UI control in individual road edit section).
local importCO, importTT2I, importO2T = im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false)     -- Checkbox flags used for various importing options.
local importCO, importTT2I, importO2T = im.BoolPtr(false), im.BoolPtr(false), im.BoolPtr(false)     -- Checkbox flags used for various importing options.
local importCustomOffset = im.FloatPtr(0.0)                                                         -- Custom offset used for importing.
  domainOfInfluence = im.IntPtr(30),                                                                -- Terraforming: The domain of influence, used for terraforming, in meters.
  terraMargin = im.FloatPtr(1.0),                                                                   -- Terraforming: the margin around roads, in meters.
  isShowSingleRoad = im.BoolPtr(false),                                                             -- Terraforming: a flag which indicates if the group range will be visualised, or not.
        n.p = n.p + offset
        n.height = im.FloatPtr(n.p.z)
      end
          if im.InputFloat("Bridge Width (m) ###10100", road.bridgeWidth, 0.1, 0.0) then
            road.bridgeWidth = im.FloatPtr(max(1.0, min(20.0, road.bridgeWidth[0])))
            roadMgr.updateBridgeParameters(road)
          if im.InputFloat("Bridge Depth (m) ###10101", road.bridgeDepth, 0.1, 0.0) then
            road.bridgeDepth = im.FloatPtr(max(0.4, min(4.0, road.bridgeDepth[0])))
            roadMgr.updateBridgeParameters(road)
          if im.InputFloat("Bridge Arch Amount (m) ###10102", road.bridgeArch, 0.1, 0.0) then
            road.bridgeArch = im.FloatPtr(max(-20.0, min(20.0, road.bridgeArch[0])))
            roadMgr.setDirty(road)
                for i = 1, #nodes do
                  nodes[i].rot = im.FloatPtr(0.0)
                  nodes[i].isAutoBanked = true
                  if im.InputFloat("Texture Length###" .. tostring(wCtr), layer.texLen, 0.1, 0.0) then
                    layer.texLen = im.FloatPtr(max(1.0, min(200.0, layer.texLen[0])))
                  end
                im.tooltip('Set the layer position. For non-patch types: laterally from the attach lane. For patch/decal types: longitudinally along the length of the road.')
                layer.off = im.FloatPtr(max(limitMin, min(limitMax, layer.off[0])))
                  im.InputFloat("Layer Width###" .. tostring(wCtr), layer.width, 0.1, 0.0)
                  layer.width = im.FloatPtr(max(0.01, min(30.0, layer.width[0])))
                  wCtr = wCtr + 1
                  im.tooltip('Set the lateral offset (from the chosen lane and lane side).')
                  layer.pos = im.FloatPtr(max(-50.0, min(50.0, layer.pos[0])))
                  im.tooltip('Set the size of the square decal (length = width).')
                  layer.size = im.FloatPtr(max(0.0, min(50.0, layer.size[0])))
                end
                  im.InputFloat("Fade-In [Start]###" .. tostring(wCtr), layer.fadeS, 0.01, 0.0)
                  layer.fadeS = im.FloatPtr(max(0.0, min(100.0, layer.fadeS[0])))
                  wCtr = wCtr + 1
                  im.InputFloat("Fade-Out [End]###" .. tostring(wCtr), layer.fadeE, 0.01, 0.0)
                  layer.fadeE = im.FloatPtr(max(0.0, min(100.0, layer.fadeE[0])))
                  wCtr = wCtr + 1
                im.InputFloat("Spacing Between Units###" .. tostring(wCtr), layer.spacing, 0.1, 0.0)
                layer.spacing = im.FloatPtr(max(-0.2, min(200.0, layer.spacing[0])))
                wCtr = wCtr + 1
                im.InputFloat("Lateral Offset###" .. tostring(wCtr), layer.latOffset, 0.1, 0.0)
                layer.latOffset = im.FloatPtr(max(-100.0, min(100.0, layer.latOffset[0])))
                wCtr = wCtr + 1
                im.InputFloat("Vertical Offset###" .. tostring(wCtr), layer.vertOffset, 0.1, 0.0)
                layer.vertOffset = im.FloatPtr(max(-100.0, min(100.0, layer.vertOffset[0])))
                wCtr = wCtr + 1
                im.InputFloat("Amount Of Jitter###" .. tostring(wCtr), layer.jitter, 0.001, 0.0)
                layer.jitter = im.FloatPtr(max(0.0, min(0.2, layer.jitter[0])))
                wCtr = wCtr + 1
                im.InputFloat("Position###" .. tostring(wCtr), layer.pos, 0.001, 0.0)
                layer.pos = im.FloatPtr(max(0.0, min(1.0, layer.pos[0])))
                wCtr = wCtr + 1
                im.InputFloat("Lateral Offset###" .. tostring(wCtr), layer.latOffset, 0.1, 0.0)
                layer.latOffset = im.FloatPtr(max(-20.0, min(20.0, layer.latOffset[0])))
                wCtr = wCtr + 1
                im.InputFloat("Vertical Offset###" .. tostring(wCtr), layer.vertOffset, 0.1, 0.0)
                layer.vertOffset = im.FloatPtr(max(-20.0, min(20.0, layer.vertOffset[0])))
                wCtr = wCtr + 1
              if im.InputFloat("Curb Width###" .. tostring(wCtr), profile[selSW].kerbWidth, 0.1, 0.0) then
                profile[selSW].kerbWidth = im.FloatPtr(max(0.05, min(10.0, profile[selSW].kerbWidth[0])))
              end
              if im.InputFloat("Curb Lateral Offset###" .. tostring(wCtr), profile[selSW].cornerLatOff, 0.01, 0.0) then
                profile[selSW].cornerLatOff = im.FloatPtr(max(-0.3, min(0.3, profile[selSW].cornerLatOff[0])))
              end
              if im.InputFloat("Vertical Offset###" .. tostring(wCtr), profile[selSW].cornerDrop, 0.01, 0.0) then
                profile[selSW].cornerDrop = im.FloatPtr(max(-0.1, min(0.1, profile[selSW].cornerDrop[0])))
              end
            im.tooltip('Sets the thickness of the tunnel walls.')
            road.thickness = im.FloatPtr(max(0.1, min(20.0, road.thickness[0])))
            im.PopItemWidth()
            im.tooltip('Sets the tunnel radius offset.')
            road.radOffset = im.FloatPtr(max(-10.0, min(10.0, road.radOffset[0])))
            im.PopItemWidth()
            im.tooltip('Sets the vertical offset of the road inside the tunnel.')
            road.zOffsetFromRoad = im.FloatPtr(max(-30.0, min(30.0, road.zOffsetFromRoad[0])))
            im.PopItemWidth()
            im.tooltip('Sets the amount of extension at the start of the tunnel.')
            road.protrudeS = im.FloatPtr(max(0.0, min(30.0, road.protrudeS[0])))
            im.PopItemWidth()
            im.tooltip('Sets the amount of extension at the end of the tunnel.')
            road.protrudeE = im.FloatPtr(max(0.0, min(30.0, road.protrudeE[0])))
            im.PopItemWidth()
          if im.InputFloat("L Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Len###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
          if im.InputFloat("Crossing Length###" .. tostring(wCtr), selJct.pedXDist, 0.1, 0.0) then
            selJct.pedXDist = im.FloatPtr(max(2.0, min(30.0, selJct.pedXDist[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.trafficLatOff = im.FloatPtr(max(-20.0, min(20.0, selJct.trafficLatOff[0])))
            wCtr = wCtr + 1
            if im.InputFloat("Crossing Width###" .. tostring(wCtr), selJct.pedXWidth, 0.1, 0.0) then
              selJct.pedXWidth = im.FloatPtr(max(0.5, min(5.0, selJct.pedXWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
            end
            selJct.bevel = im.FloatPtr(max(2.5, min(20.0, selJct.bevel[0])))
            wCtr = wCtr + 1
            end
            selJct.trafficLatOff = im.FloatPtr(max(-20.0, min(20.0, selJct.trafficLatOff[0])))
            wCtr = wCtr + 1
            if im.InputFloat("Crossing Width###" .. tostring(wCtr), selJct.pedXWidth, 0.1, 0.0) then
              selJct.pedXWidth = im.FloatPtr(max(0.5, min(5.0, selJct.pedXWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Arrow Size###" .. tostring(wCtr), selJct.arrowSize, 0.01, 0.0) then
            selJct.arrowSize = im.FloatPtr(max(0.5, min(4.5, selJct.arrowSize[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
            selJct.arrowFrontDistFromEnd = im.FloatPtr(max(0.0, min(selJct.arrowBackDistFromEnd[0] - selJct.arrowSize[0], selJct.arrowFrontDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
            selJct.arrowBackDistFromEnd = im.FloatPtr(max(selJct.arrowFrontDistFromEnd[0] + selJct.arrowSize[0], min(50.0, selJct.arrowBackDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
            end
            selJct.bevel = im.FloatPtr(max(2.5, min(20.0, selJct.bevel[0])))
            wCtr = wCtr + 1
            end
            selJct.trafficLatOff = im.FloatPtr(max(-20.0, min(20.0, selJct.trafficLatOff[0])))
            wCtr = wCtr + 1
            if im.InputFloat("Crossing Width###" .. tostring(wCtr), selJct.pedXWidth, 0.1, 0.0) then
              selJct.pedXWidth = im.FloatPtr(max(0.5, min(5.0, selJct.pedXWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Arrow Size###" .. tostring(wCtr), selJct.arrowSize, 0.01, 0.0) then
            selJct.arrowSize = im.FloatPtr(max(0.5, min(4.5, selJct.arrowSize[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
            selJct.arrowFrontDistFromEnd = im.FloatPtr(max(0.0, min(selJct.arrowBackDistFromEnd[0] - selJct.arrowSize[0], selJct.arrowFrontDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
            selJct.arrowBackDistFromEnd = im.FloatPtr(max(selJct.arrowFrontDistFromEnd[0] + selJct.arrowSize[0], min(50.0, selJct.arrowBackDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Y-Exit Road Angle (deg)###" .. tostring(wCtr), selJct.theta, 1, 0.0) then
            selJct.theta = im.FloatPtr(max(-30.0, min(30.0, selJct.theta[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Road Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
            if im.InputFloat("Crossing Width###" .. tostring(wCtr), selJct.pedXWidth, 0.1, 0.0) then
              selJct.pedXWidth = im.FloatPtr(max(0.5, min(5.0, selJct.pedXWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Arrow Size###" .. tostring(wCtr), selJct.arrowSize, 0.01, 0.0) then
            selJct.arrowSize = im.FloatPtr(max(0.5, min(4.5, selJct.arrowSize[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
            selJct.arrowFrontDistFromEnd = im.FloatPtr(max(0.0, min(selJct.arrowBackDistFromEnd[0] - selJct.arrowSize[0], selJct.arrowFrontDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
            selJct.arrowBackDistFromEnd = im.FloatPtr(max(selJct.arrowFrontDistFromEnd[0] + selJct.arrowSize[0], min(50.0, selJct.arrowBackDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Center Circle Radius (deg)###" .. tostring(wCtr), selJct.extraRadRB, 0.1, 0.0) then
            selJct.extraRadRB = im.FloatPtr(max(-5.0, min(20.0, selJct.extraRadRB[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
            end
            selJct.bevel = im.FloatPtr(max(2.5, min(20.0, selJct.bevel[0])))
            wCtr = wCtr + 1
            end
            selJct.trafficLatOff = im.FloatPtr(max(-20.0, min(20.0, selJct.trafficLatOff[0])))
            wCtr = wCtr + 1
            if im.InputFloat("Crossing Width###" .. tostring(wCtr), selJct.pedXWidth, 0.1, 0.0) then
              selJct.pedXWidth = im.FloatPtr(max(0.5, min(5.0, selJct.pedXWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Arrow Size###" .. tostring(wCtr), selJct.arrowSize, 0.01, 0.0) then
            selJct.arrowSize = im.FloatPtr(max(0.5, min(4.5, selJct.arrowSize[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
            selJct.arrowFrontDistFromEnd = im.FloatPtr(max(0.0, min(selJct.arrowBackDistFromEnd[0] - selJct.arrowSize[0], selJct.arrowFrontDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
            selJct.arrowBackDistFromEnd = im.FloatPtr(max(selJct.arrowFrontDistFromEnd[0] + selJct.arrowSize[0], min(50.0, selJct.arrowBackDistFromEnd[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
            selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          end
          selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
          wCtr = wCtr + 1
          if im.InputFloat("Taper Section Length###" .. tostring(wCtr), selJct.s2Length, 0.1, 0.0) then
            selJct.s2Length = im.FloatPtr(max(1.0, min(80.0, selJct.s2Length[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(1.0, min(50.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Inner Taper Width###" .. tostring(wCtr), selJct.sepWidthI, 0.1, 0.0) then
            selJct.sepWidthI = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthI[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Outer Taper Width###" .. tostring(wCtr), selJct.sepWidthO, 0.1, 0.0) then
            selJct.sepWidthO = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthO[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Taper Section Length###" .. tostring(wCtr), selJct.s2Length, 0.1, 0.0) then
            selJct.s2Length = im.FloatPtr(max(1.0, min(80.0, selJct.s2Length[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(1.0, min(50.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Hard Shoulder Width###" .. tostring(wCtr), selJct.hardWidth, 0.1, 0.0) then
            selJct.hardWidth = im.FloatPtr(max(0.0, min(10.0, selJct.hardWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Central Res Width###" .. tostring(wCtr), selJct.cResWidth, 0.1, 0.0) then
            selJct.cResWidth = im.FloatPtr(max(0.0, min(20.0, selJct.cResWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Inner Taper Width###" .. tostring(wCtr), selJct.sepWidthI, 0.1, 0.0) then
            selJct.sepWidthI = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthI[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Outer Taper Width###" .. tostring(wCtr), selJct.sepWidthO, 0.1, 0.0) then
            selJct.sepWidthO = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthO[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Taper Section Length###" .. tostring(wCtr), selJct.s2Length, 0.1, 0.0) then
            selJct.s2Length = im.FloatPtr(max(1.0, min(80.0, selJct.s2Length[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(1.0, min(50.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Hard Shoulder Width###" .. tostring(wCtr), selJct.hardWidth, 0.1, 0.0) then
            selJct.hardWidth = im.FloatPtr(max(0.0, min(10.0, selJct.hardWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Central Res Width###" .. tostring(wCtr), selJct.cResWidth, 0.1, 0.0) then
            selJct.cResWidth = im.FloatPtr(max(0.0, min(20.0, selJct.cResWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Inner Taper Width###" .. tostring(wCtr), selJct.sepWidthI, 0.1, 0.0) then
            selJct.sepWidthI = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthI[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Outer Taper Width###" .. tostring(wCtr), selJct.sepWidthO, 0.1, 0.0) then
            selJct.sepWidthO = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthO[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
            if im.InputFloat("Sidewalk Width###" .. tostring(wCtr), selJct.sidewalkWidth, 0.1, 2.0) then
              selJct.sidewalkWidth = im.FloatPtr(max(0.5, min(10.0, selJct.sidewalkWidth[0])))
              jctMgr.updateJunctionAfterChange(selJctIdx)
            end
            selJct.sidewalkHeight = im.FloatPtr(max(0.0, min(0.5, selJct.sidewalkHeight[0])))
            wCtr = wCtr + 1
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(0.5, min(20.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(1.0, min(50.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Hard Shoulder Width###" .. tostring(wCtr), selJct.hardWidth, 0.1, 0.0) then
            selJct.hardWidth = im.FloatPtr(max(0.0, min(10.0, selJct.hardWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Taper Section Length###" .. tostring(wCtr), selJct.s2Length, 0.1, 0.0) then
            selJct.s2Length = im.FloatPtr(max(1.0, min(80.0, selJct.s2Length[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Split Section Length###" .. tostring(wCtr), selJct.s3Length, 0.1, 0.0) then
            selJct.s3Length = im.FloatPtr(max(1.0, min(80.0, selJct.s3Length[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Exit Roads Length###" .. tostring(wCtr), selJct.capLength, 0.1, 0.0) then
            selJct.capLength = im.FloatPtr(max(1.0, min(50.0, selJct.capLength[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Lane Width###" .. tostring(wCtr), selJct.laneWidthX, 0.1, 0.0) then
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            selJct.laneWidthX = im.FloatPtr(max(1.0, min(20.0, selJct.laneWidthX[0])))
            selJct.laneWidthY = im.FloatPtr(selJct.laneWidthX[0])
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Hard Shoulder Width###" .. tostring(wCtr), selJct.hardWidth, 0.1, 0.0) then
            selJct.hardWidth = im.FloatPtr(max(0.0, min(10.0, selJct.hardWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Central Res Width###" .. tostring(wCtr), selJct.cResWidth, 0.1, 0.0) then
            selJct.cResWidth = im.FloatPtr(max(0.0, min(20.0, selJct.cResWidth[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Inner Taper Width###" .. tostring(wCtr), selJct.sepWidthI, 0.1, 0.0) then
            selJct.sepWidthI = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthI[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
          if im.InputFloat("Outer Taper Width###" .. tostring(wCtr), selJct.sepWidthO, 0.1, 0.0) then
            selJct.sepWidthO = im.FloatPtr(max(0.0, min(20.0, selJct.sepWidthO[0])))
            jctMgr.updateJunctionAfterChange(selJctIdx)
                if im.InputFloat("W###" .. tostring(wCtr), node.widths[i], 0.1, 0.0) then
                  node.widths[i] = im.FloatPtr(max(0.0, min(50.0, node.widths[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
                if im.InputFloat("H(L)###" .. tostring(wCtr), node.heightsL[i], 0.1, 0.0) then
                  node.heightsL[i] = im.FloatPtr(max(0.0, min(5.0, node.heightsL[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
                if im.InputFloat("H(R)###" .. tostring(wCtr), node.heightsR[i], 0.1, 0.0) then
                  node.heightsR[i] = im.FloatPtr(max(0.0, min(5.0, node.heightsR[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
                if im.InputFloat("W###" .. tostring(wCtr), node.widths[i], 0.1, 0.0) then
                  node.widths[i] = im.FloatPtr(max(0.0, min(50.0, node.widths[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
                if im.InputFloat("H(L)###" .. tostring(wCtr), node.heightsL[i], 0.1, 0.0) then
                  node.heightsL[i] = im.FloatPtr(max(0.0, min(5.0, node.heightsL[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
                if im.InputFloat("H(R)###" .. tostring(wCtr), node.heightsR[i], 0.1, 0.0) then
                  node.heightsR[i] = im.FloatPtr(max(0.0, min(5.0, node.heightsR[i][0])))
                  roadMgr.setDirty(roads[mfe.selectedRoadIdx])
            local oldHeight = node.p.z
            local nodeHeight = im.FloatPtr(oldHeight)
            if im.InputFloat("Height", nodeHeight, 0.1, 0.0) then
              roadMgr.adjustHeight(nodeHeight[0], oldHeight, mfe.selectedNodeIdx, mfe.selectedRoadIdx)
              nodeHeight = im.FloatPtr(max(0, min(2000, nodeHeight[0])))
            end
            im.PopStyleVar()
            node.incircleRad = im.FloatPtr(min(2.0, max(1.0, node.incircleRad[0])))
            if oldICR ~= node.incircleRad[0] then
              im.NextColumn()
              lane.width = im.FloatPtr(max(0.0, min(10.0, lane.width[0])))
              if lane.width[0] ~= oldWidth then
              im.NextColumn()
              lane.heightL = im.FloatPtr(max(0.0, min(5.0, lane.heightL[0])))
              if lane.heightL[0] ~= oldHeightL then
              im.NextColumn()
              lane.heightR = im.FloatPtr(max(0.0, min(5.0, lane.heightR[0])))
              if lane.heightR[0] ~= oldHeightR then
              im.NextColumn()
              lane.width = im.FloatPtr(max(0.0, min(10.0, lane.width[0])))
              if lane.width[0] ~= oldWidth then
              im.NextColumn()
              lane.heightL = im.FloatPtr(max(0.0, min(5.0, lane.heightL[0])))
              if lane.heightL[0] ~= oldHeightL then
              im.NextColumn()
              lane.heightR = im.FloatPtr(max(0.0, min(5.0, lane.heightR[0])))
              if lane.heightR[0] ~= oldHeightR then
@/lua/ge/extensions/editor/tech/roadArchitect/roads.lua

    forceField = im.FloatPtr(1.0),                                                                  -- The value of the force field (when using non-rigid translation).
    isCivilEngRoads = im.BoolPtr(false),                                                            -- Indicates if this road is using civil engineering style or spline style.

    bridgeWidth = im.FloatPtr(5.5),                                                                 -- Bridges: The half-width of the bridge (width of each of the two lanes), in meters.
    bridgeDepth = im.FloatPtr(4.0),                                                                 -- Bridges: The depth of the bridge, in meters.
    bridgeWidth = im.FloatPtr(5.5),                                                                 -- Bridges: The half-width of the bridge (width of each of the two lanes), in meters.
    bridgeDepth = im.FloatPtr(4.0),                                                                 -- Bridges: The depth of the bridge, in meters.
    bridgeArch = im.FloatPtr(-6.0),                                                                 -- Bridges: The amount of arching, in meters.
    bridgeDepth = im.FloatPtr(4.0),                                                                 -- Bridges: The depth of the bridge, in meters.
    bridgeArch = im.FloatPtr(-6.0),                                                                 -- Bridges: The amount of arching, in meters.
    radGran = im.IntPtr(15),                                                                        -- Tunnels: The radial granularity.
    radOffset = im.FloatPtr(0.0),                                                                   -- Tunnels: The radial offset.
    thickness = im.FloatPtr(1.0),                                                                   -- Tunnels: The wall thickness.
    radOffset = im.FloatPtr(0.0),                                                                   -- Tunnels: The radial offset.
    thickness = im.FloatPtr(1.0),                                                                   -- Tunnels: The wall thickness.
    zOffsetFromRoad = im.FloatPtr(0.0),                                                             -- Tunnels: The vertical offset, of the road inside the tunnel.
    thickness = im.FloatPtr(1.0),                                                                   -- Tunnels: The wall thickness.
    zOffsetFromRoad = im.FloatPtr(0.0),                                                             -- Tunnels: The vertical offset, of the road inside the tunnel.
    protrudeS = im.FloatPtr(0.0),                                                                   -- Tunnels: The amount of protrusion along the tangent, at the start pos.
    zOffsetFromRoad = im.FloatPtr(0.0),                                                             -- Tunnels: The vertical offset, of the road inside the tunnel.
    protrudeS = im.FloatPtr(0.0),                                                                   -- Tunnels: The amount of protrusion along the tangent, at the start pos.
    protrudeE = im.FloatPtr(0.0),                                                                   -- Tunnels: The amount of protrusion along the tangent, at the end pos.
    protrudeS = im.FloatPtr(0.0),                                                                   -- Tunnels: The amount of protrusion along the tangent, at the start pos.
    protrudeE = im.FloatPtr(0.0),                                                                   -- Tunnels: The amount of protrusion along the tangent, at the end pos.
    extraS = im.IntPtr(2),                                                                          -- Tunnels: The start road position (the div point index).
      isLocked = false,                                                                             -- Indicates if node is locked or unlocked (ie if can be moved by the user).
      rot = im.FloatPtr(0.0),                                                                       -- The lateral rotation angle of the normal at this node (sets road camber).
      widths = widths,                                                                              -- The widths of each lane, by lane key.
      heightsR = heightsR,                                                                          -- The right lane height of each lane, by lane key.
      incircleRad = im.FloatPtr(1.0),                                                               -- The radius of the incircle, in [0.1, 2] (used for civil eng style roads).
      isAutoBanked = r.profile.isAutoBanking[0],                                                    -- A flag which indicates if auto-banking is being performed on this node, or not.
      isLocked = false,                                                                             -- Indicates if node is locked or unlocked (ie if can be moved by the user).
      rot = im.FloatPtr(0.0),                                                                       -- The lateral rotation angle of the normal at this node (sets road camber).
      widths = widths,                                                                              -- The widths of each lane, by lane key.
      heightsR = heightsR,                                                                          -- The right lane height of each lane, by lane key.
      incircleRad = im.FloatPtr(1.0),                                                               -- The radius of the incircle, in [0.1, 2] (used for civil eng style roads).
      isAutoBanked = r.profile.isAutoBanking[0],                                                    -- A flag which indicates if auto-banking is being performed on this node, or not.
        if r.profile[k].type == 'road_lane' then
          n.widths[k] = im.FloatPtr(laneWidth)
        end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    if w[i] then
      wC[i], hLC[i], hRC[i] = im.FloatPtr(w[i][0]), im.FloatPtr(hL[i][0]), im.FloatPtr(hR[i][0])
    end
    isLocked = n.isLocked,
    rot = im.FloatPtr(n.rot[0]),
    widths = wC, heightsL = hLC, heightsR = hRC,
    widths = wC, heightsL = hLC, heightsR = hRC,
    incircleRad = im.FloatPtr(n.incircleRad[0]),
    isAutoBanked = n.isAutoBanked,
    if wLane1 then
      wAvg[i] = im.FloatPtr((wLane1[0] + wLane2[0]) * 0.5)
      hLAvg[i] = im.FloatPtr((hLLane1[0] + hLLane2[0]) * 0.5)
      wAvg[i] = im.FloatPtr((wLane1[0] + wLane2[0]) * 0.5)
      hLAvg[i] = im.FloatPtr((hLLane1[0] + hLLane2[0]) * 0.5)
      hRAvg[i] = im.FloatPtr((hRLane1[0] + hRLane2[0]) * 0.5)
      hLAvg[i] = im.FloatPtr((hLLane1[0] + hLLane2[0]) * 0.5)
      hRAvg[i] = im.FloatPtr((hRLane1[0] + hRLane2[0]) * 0.5)
    end
        isLocked = false,                                                                           -- The new node will be unlocked by default.
        rot = im.FloatPtr((n1.rot[0] + n2.rot[0]) * 0.5),                                           -- The rest of the values are averaged between the selected node and next node.
        widths = w, heightsL = hL, heightsR = hR,
        widths = w, heightsL = hL, heightsR = hR,
        incircleRad = im.FloatPtr((n1.incircleRad[0] + n2.incircleRad[0]) * 0.5),
        isAutoBanked = n1.isAutoBanked or n2.isAutoBanked,
        isLocked = false,                                                                           -- The new node will be unlocked by default.
        rot = im.FloatPtr((n1.rot[0] + n2.rot[0]) * 0.5),                                           -- The rest of the values are averaged between the selected node and next node.
        widths = w, heightsL = hL, heightsR = hR,
        widths = w, heightsL = hL, heightsR = hR,
        incircleRad = im.FloatPtr((n1.incircleRad[0] + n2.incircleRad[0]) * 0.5),
        isAutoBanked = n1.isAutoBanked or n2.isAutoBanked,
    local cNode, fieldInv = nodes[nIdx], 1.0 / max(1e-7, road.forceField[0])                        -- CASE: [Force-Field Translation].
    cNode.rot = im.FloatPtr(cNode.rot[0] + dRot)
    cNode.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, cNode.rot[0])))
    cNode.rot = im.FloatPtr(cNode.rot[0] + dRot)
    cNode.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, cNode.rot[0])))
          if i ~= nIdx then
            nodes[i].rot = im.FloatPtr(nodes[i].rot[0] + dRot)
            nodes[i].rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, nodes[i].rot[0])))
            nodes[i].rot = im.FloatPtr(nodes[i].rot[0] + dRot)
            nodes[i].rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, nodes[i].rot[0])))
          end
          local rat = min(1.0, max(0.0, 1.0 - cNode.p:distance(n.p) * fieldInv))
          n.rot = im.FloatPtr(n.rot[0] + dRot * rat)                                                -- Move this node by a distance-based ratio (based on the force field).
          n.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, n.rot[0])))
          n.rot = im.FloatPtr(n.rot[0] + dRot * rat)                                                -- Move this node by a distance-based ratio (based on the force field).
          n.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, n.rot[0])))
        end
          local rat = min(1.0, max(0.0, 1.0 - cNode.p:distance(n.p) * fieldInv))
          n.rot = im.FloatPtr(n.rot[0] + dRot * rat)                                                -- Move this node by a distance-based ratio (based on the force field).
          n.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, n.rot[0])))
          n.rot = im.FloatPtr(n.rot[0] + dRot * rat)                                                -- Move this node by a distance-based ratio (based on the force field).
          n.rot = im.FloatPtr(min(nodeRotLimit, max(-nodeRotLimit, n.rot[0])))
        end
  rCopy.isRigidTranslation = im.BoolPtr(r.isRigidTranslation[0])
  rCopy.forceField = im.FloatPtr(r.forceField[0])
  rCopy.isCivilEngRoads = im.BoolPtr(r.isCivilEngRoads[0])

  rCopy.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  rCopy.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  rCopy.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  rCopy.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  rCopy.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  rCopy.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  rCopy.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  rCopy.radGran = im.IntPtr(r.radGran[0])
  rCopy.radOffset = im.FloatPtr(r.radOffset[0])
  rCopy.thickness = im.FloatPtr(r.thickness[0])
  rCopy.radOffset = im.FloatPtr(r.radOffset[0])
  rCopy.thickness = im.FloatPtr(r.thickness[0])
  rCopy.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  rCopy.thickness = im.FloatPtr(r.thickness[0])
  rCopy.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  rCopy.protrudeS = im.FloatPtr(r.protrudeS[0])
  rCopy.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  rCopy.protrudeS = im.FloatPtr(r.protrudeS[0])
  rCopy.protrudeE = im.FloatPtr(r.protrudeE[0])
  rCopy.protrudeS = im.FloatPtr(r.protrudeS[0])
  rCopy.protrudeE = im.FloatPtr(r.protrudeE[0])
  rCopy.extraS = im.IntPtr(r.extraS[0])
  roadA.isRigidTranslation = im.BoolPtr(isRigidTranslation)
  roadA.forceField = im.FloatPtr(forceField)
  roadA.isCivilEngRoads = im.BoolPtr(isCivilEngRoads)

  roadA.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  roadA.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadA.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  roadA.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadA.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  roadA.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadA.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  roadA.radGran = im.IntPtr(r.radGran[0])
  roadA.radOffset = im.FloatPtr(r.radOffset[0])
  roadA.thickness = im.FloatPtr(r.thickness[0])
  roadA.radOffset = im.FloatPtr(r.radOffset[0])
  roadA.thickness = im.FloatPtr(r.thickness[0])
  roadA.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadA.thickness = im.FloatPtr(r.thickness[0])
  roadA.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadA.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadA.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadA.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadA.protrudeE = im.FloatPtr(r.protrudeE[0])
  roadA.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadA.protrudeE = im.FloatPtr(r.protrudeE[0])
  roadA.extraS = im.IntPtr(r.extraS[0])
  roadB.isRigidTranslation = im.BoolPtr(isRigidTranslation)
  roadB.forceField = im.FloatPtr(forceField)
  roadB.isCivilEngRoads = im.BoolPtr(isCivilEngRoads)

  roadB.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  roadB.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadB.bridgeWidth = im.FloatPtr(r.bridgeWidth[0])
  roadB.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadB.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  roadB.bridgeDepth = im.FloatPtr(r.bridgeDepth[0])
  roadB.bridgeArch = im.FloatPtr(r.bridgeArch[0])
  roadB.radGran = im.IntPtr(r.radGran[0])
  roadB.radOffset = im.FloatPtr(r.radOffset[0])
  roadB.thickness = im.FloatPtr(r.thickness[0])
  roadB.radOffset = im.FloatPtr(r.radOffset[0])
  roadB.thickness = im.FloatPtr(r.thickness[0])
  roadB.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadB.thickness = im.FloatPtr(r.thickness[0])
  roadB.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadB.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadB.zOffsetFromRoad = im.FloatPtr(r.zOffsetFromRoad[0])
  roadB.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadB.protrudeE = im.FloatPtr(r.protrudeE[0])
  roadB.protrudeS = im.FloatPtr(r.protrudeS[0])
  roadB.protrudeE = im.FloatPtr(r.protrudeE[0])
  roadB.extraS = im.IntPtr(r.extraS[0])
    local n1 = {
      p = temp_P1, isLocked = true, rot = im.FloatPtr(0.0),
      widths = widths, heightsL = heightsL, heightsR = heightsR,
      widths = widths, heightsL = heightsL, heightsR = heightsR,
      incircleRad = im.FloatPtr(1.0), isAutoBanked = false, offset = 0.0 }
    local n2 = {
    local n2 = {
      p = temp_P2, isLocked = true, rot = im.FloatPtr(0.0),
      widths = widths, heightsL = heightsL, heightsR = heightsR,
      widths = widths, heightsL = heightsL, heightsR = heightsR,
      incircleRad = im.FloatPtr(1.0), isAutoBanked = false, offset = 0.0 }
    local laneKeys, leftKeys, rightKeys = profileMgr.computeLaneKeys(profile)
      isRigidTranslation = im.BoolPtr(false),
      forceField = im.FloatPtr(1.0),
      isCivilEngRoads = im.BoolPtr(false),

      bridgeWidth = im.FloatPtr(5.0),
      bridgeDepth = im.FloatPtr(5.0),
      bridgeWidth = im.FloatPtr(5.0),
      bridgeDepth = im.FloatPtr(5.0),
      bridgeArch = im.FloatPtr(1.0),
      bridgeDepth = im.FloatPtr(5.0),
      bridgeArch = im.FloatPtr(1.0),
      radGran = im.IntPtr(15),
      radOffset = im.FloatPtr(0.0),
      thickness = im.FloatPtr(1.0),
      radOffset = im.FloatPtr(0.0),
      thickness = im.FloatPtr(1.0),
      zOffsetFromRoad = im.FloatPtr(0.0),
      thickness = im.FloatPtr(1.0),
      zOffsetFromRoad = im.FloatPtr(0.0),
      protrudeS = im.FloatPtr(0.0),
      zOffsetFromRoad = im.FloatPtr(0.0),
      protrudeS = im.FloatPtr(0.0),
      protrudeE = im.FloatPtr(0.0),
      protrudeS = im.FloatPtr(0.0),
      protrudeE = im.FloatPtr(0.0),
      extraS = im.IntPtr(2),
  if nodes[1] then
    nodes[1].widths[-1] = im.FloatPtr(road.bridgeWidth)
    nodes[1].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[1].widths[-1] = im.FloatPtr(road.bridgeWidth)
    nodes[1].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[1].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[1].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsR[1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[1].heightsR[1] = im.FloatPtr(road.bridgeDepth)
  end
  if nodes[2] then
    nodes[2].widths[-1] = im.FloatPtr(road.bridgeWidth)
    nodes[2].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[2].widths[-1] = im.FloatPtr(road.bridgeWidth)
    nodes[2].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[2].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].widths[1] = im.FloatPtr(road.bridgeWidth)
    nodes[2].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsL[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsR[-1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsR[1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsL[1] = im.FloatPtr(road.bridgeDepth)
    nodes[2].heightsR[1] = im.FloatPtr(road.bridgeDepth)
  end
    local lIdx = leftKeys[i]
    widths[lIdx] = im.FloatPtr(leftLaneWidth)
  end
    local lIdx = rightKeys[i]
    widths[lIdx] = im.FloatPtr(rightLaneWidth)
  end
    if w then
      widths[i] = im.FloatPtr(w)
      heightsL[i], heightsR[i] = im.FloatPtr(serHeightsL[iS]), im.FloatPtr(serHeightsR[iS])
      widths[i] = im.FloatPtr(w)
      heightsL[i], heightsR[i] = im.FloatPtr(serHeightsL[iS]), im.FloatPtr(serHeightsR[iS])
    end
      widths[i] = im.FloatPtr(w)
      heightsL[i], heightsR[i] = im.FloatPtr(serHeightsL[iS]), im.FloatPtr(serHeightsR[iS])
    end
    isLocked = nSer.isLocked or false,
    rot = im.FloatPtr(nSer.rot),
    widths = widths, heightsL = heightsL, heightsR = heightsR,
    widths = widths, heightsL = heightsL, heightsR = heightsR,
    incircleRad = im.FloatPtr(nSer.incircleRad or 0.0),
    isAutoBanked = nSer.isAutoBanked or false,
    isRigidTranslation = im.BoolPtr(rSer.isRigidTranslation or false),
    forceField = im.FloatPtr(rSer.forceField or 0.1),
    isCivilEngRoads = im.BoolPtr(rSer.isCivilEngRoads or false),

    bridgeWidth = im.FloatPtr(rSer.bridgeWidth or 5.0),
    bridgeDepth = im.FloatPtr(rSer.bridgeDepth or 0.5),
    bridgeWidth = im.FloatPtr(rSer.bridgeWidth or 5.0),
    bridgeDepth = im.FloatPtr(rSer.bridgeDepth or 0.5),
    bridgeArch = im.FloatPtr(rSer.bridgeArch or 1.0),
    bridgeDepth = im.FloatPtr(rSer.bridgeDepth or 0.5),
    bridgeArch = im.FloatPtr(rSer.bridgeArch or 1.0),
    radGran = im.IntPtr(rSer.radGran or 15),
    radOffset = im.FloatPtr(rSer.radOffset or 0.0),
    thickness = im.FloatPtr(rSer.thickness or 1.0),
    radOffset = im.FloatPtr(rSer.radOffset or 0.0),
    thickness = im.FloatPtr(rSer.thickness or 1.0),
    zOffsetFromRoad = im.FloatPtr(rSer.zOffsetFromRoad or 0.0),
    thickness = im.FloatPtr(rSer.thickness or 1.0),
    zOffsetFromRoad = im.FloatPtr(rSer.zOffsetFromRoad or 0.0),
    protrudeS = im.FloatPtr(rSer.protrudeS or 0.0),
    zOffsetFromRoad = im.FloatPtr(rSer.zOffsetFromRoad or 0.0),
    protrudeS = im.FloatPtr(rSer.protrudeS or 0.0),
    protrudeE = im.FloatPtr(rSer.protrudeE or 0.0),
    protrudeS = im.FloatPtr(rSer.protrudeS or 0.0),
    protrudeE = im.FloatPtr(rSer.protrudeE or 0.0),
    extraS = im.IntPtr(rSer.extraS or 2),
    extraE = im.IntPtr(rSer.extraE or 2),
    tOffset = im.FloatPtr(rSer.lampPostVertOffset or 1.0)
  }
@/lua/ge/extensions/editor/objectToSplineEditor.lua
local guideTypes = {"DecalRoad", "MeshRoad"} -- sensible spline object classes
local gap = im.FloatPtr(0)
local startOffset = im.FloatPtr(0)
local gap = im.FloatPtr(0)
local startOffset = im.FloatPtr(0)
local endOffset = im.FloatPtr(0)
local startOffset = im.FloatPtr(0)
local endOffset = im.FloatPtr(0)
local objAxis = im.IntPtr(1)
local allowRandom = im.BoolPtr(false)
local maxRandomGap = im.FloatPtr(0)
local randomPosOffset = im.FloatPtr(0)
local maxRandomGap = im.FloatPtr(0)
local randomPosOffset = im.FloatPtr(0)
local randomRotOffset = im.FloatPtr(0)
local randomPosOffset = im.FloatPtr(0)
local randomRotOffset = im.FloatPtr(0)
local useRandomPosZ = im.BoolPtr(false)
@/lua/ge/extensions/editor/inspector.lua

local groundCoverUVal = imgui.FloatPtr(0.0)
local groundCoverVVal = imgui.FloatPtr(0.0)
local groundCoverUVal = imgui.FloatPtr(0.0)
local groundCoverVVal = imgui.FloatPtr(0.0)
local groundCoverWVal = imgui.FloatPtr(1.0)
local groundCoverVVal = imgui.FloatPtr(0.0)
local groundCoverWVal = imgui.FloatPtr(1.0)
local groundCoverHVal = imgui.FloatPtr(1.0)
local groundCoverWVal = imgui.FloatPtr(1.0)
local groundCoverHVal = imgui.FloatPtr(1.0)
local metallicValuePtrs = {}
metallicValuePtrs[0] = imgui.FloatPtr(0)
metallicValuePtrs[1] = imgui.FloatPtr(0)
metallicValuePtrs[0] = imgui.FloatPtr(0)
metallicValuePtrs[1] = imgui.FloatPtr(0)
metallicValuePtrs[2] = imgui.FloatPtr(0)
metallicValuePtrs[1] = imgui.FloatPtr(0)
metallicValuePtrs[2] = imgui.FloatPtr(0)
metallicValuePtrs[3] = imgui.FloatPtr(0)
metallicValuePtrs[2] = imgui.FloatPtr(0)
metallicValuePtrs[3] = imgui.FloatPtr(0)
@/lua/ge/extensions/editor/gen/world.lua
	terrainImpExp.terrainName = im.ArrayChar(32, "theTerrain")
	terrainImpExp.metersPerPixel = im.FloatPtr(1)
	terrainImpExp.heightScale = im.FloatPtr(50) -- maxHeight
	terrainImpExp.metersPerPixel = im.FloatPtr(1)
	terrainImpExp.heightScale = im.FloatPtr(50) -- maxHeight
	terrainImpExp.heightMapTexture = im.ArrayChar(128)
	terrainImpExp.transformPos = {
		x = im.FloatPtr(-512),
		y = im.FloatPtr(-512),
		x = im.FloatPtr(-512),
		y = im.FloatPtr(-512),
		z = im.FloatPtr(0),
		y = im.FloatPtr(-512),
		z = im.FloatPtr(0),
	}
@/lua/ge/extensions/editor/scriptAIManager.lua
  if data.startDelay then
    if startDelayFloatPtr[vehId] == nil then startDelayFloatPtr[vehId] = im.FloatPtr(0) end
    startDelayFloatPtr[vehId][0] = data.startDelay
  if data.timeOffset then
    if timeOffsetFloatPtr[vehId] == nil then timeOffsetFloatPtr[vehId] = im.FloatPtr(0) end
    timeOffsetFloatPtr[vehId][0] = data.timeOffset
      if displayDebugBoolPtr[vehId] == nil then displayDebugBoolPtr[vehId] = im.BoolPtr(true) end
      if timeOffsetFloatPtr[vehId] == nil then timeOffsetFloatPtr[vehId] = im.FloatPtr(0) end
      if startDelayFloatPtr[vehId] == nil then startDelayFloatPtr[vehId] = im.FloatPtr(0) end
      if timeOffsetFloatPtr[vehId] == nil then timeOffsetFloatPtr[vehId] = im.FloatPtr(0) end
      if startDelayFloatPtr[vehId] == nil then startDelayFloatPtr[vehId] = im.FloatPtr(0) end
@/lua/ge/extensions/editor/biomeTool.lua

  local layerDensityPtr = imgui.FloatPtr(getForestDensity(layerType, layerID))
  editor.uiInputFloat("##LayerDensity"..layerType..layerID, layerDensityPtr, 0.1, 1.0, nil, nil, editEnded)
  imgui.SetNextItemWidth(120)
  local borderDensityPtr = imgui.FloatPtr(getBorderDensity(layerType, layerID))
  local widthEditEnded = imgui.BoolPtr(false)
  local borderFalloffPtr = imgui.FloatPtr(getForestBorderFallOff(layerType, layerID))
  editor.uiInputFloat("##BorderWidth"..layerType..layerID, borderFalloffPtr, 1.0, 1.0, nil, nil, editEnded)

  local slopeInfluencePtr = imgui.FloatPtr(getSlopeInfluence(layerType, layerID))
  editor.uiInputFloat("##SlopeInfluence"..layerType..layerID, slopeInfluencePtr, 1.0, 1.0, nil, nil, editEnded)
      imgui.SetCursorPosX(posX + textSize + 5)
      local fieldItemDistPtr = imgui.FloatPtr(getFieldItemDistance(layerType, layerID))
      imgui.SetNextItemWidth(120)
      imgui.SetCursorPosX(posX + textSize + 5)
      local fieldRowDistPtr = imgui.FloatPtr(getFieldRowDistance(layerType, layerID))
      imgui.SetNextItemWidth(120)
      imgui.SetCursorPosX(posX + textSize + 5)
      local fieldRowOriPtr = imgui.FloatPtr(getFieldRowOrientation(layerType, layerID))
      imgui.SetNextItemWidth(120)
    local itemDistance = getFieldValue(fieldName)
    local itemDistancePtr = imgui.FloatPtr(itemDistance)
    imgui.SetNextItemWidth(120)
    local borderFalloff = getFieldValue(fieldName)
    local borderFalloffPtr = imgui.FloatPtr(borderFalloff)
    imgui.SetNextItemWidth(120)
@/lua/ge/extensions/util/groundModelDebug.lua
local colDensityShowText = im.BoolPtr(true)
local colDensityThreshold = im.FloatPtr(25)
local colDensityTileCount = im.IntPtr(100)
local colDensityTileCount = im.IntPtr(100)
local colDensityTileSize = im.FloatPtr(5)
local mouseFocus = im.BoolPtr(true)
local distance = im.FloatPtr(20)
local tileSize = im.FloatPtr(1)
local distance = im.FloatPtr(20)
local tileSize = im.FloatPtr(1)
local depthScale = im.FloatPtr(1)
local tileSize = im.FloatPtr(1)
local depthScale = im.FloatPtr(1)
local active = {}
    groundModels[k].cdata.collisiontype = im.IntPtr(v.cdata.collisiontype)
    groundModels[k].cdata.defaultDepth = im.FloatPtr(v.cdata.defaultDepth)
    groundModels[k].cdata.dragAnisotropy = im.FloatPtr(v.cdata.dragAnisotropy)
    groundModels[k].cdata.defaultDepth = im.FloatPtr(v.cdata.defaultDepth)
    groundModels[k].cdata.dragAnisotropy = im.FloatPtr(v.cdata.dragAnisotropy)
    groundModels[k].cdata.flowBehaviorIndex = im.FloatPtr(v.cdata.flowBehaviorIndex)
    groundModels[k].cdata.dragAnisotropy = im.FloatPtr(v.cdata.dragAnisotropy)
    groundModels[k].cdata.flowBehaviorIndex = im.FloatPtr(v.cdata.flowBehaviorIndex)
    groundModels[k].cdata.flowConsistencyIndex = im.FloatPtr(v.cdata.flowConsistencyIndex)
    groundModels[k].cdata.flowBehaviorIndex = im.FloatPtr(v.cdata.flowBehaviorIndex)
    groundModels[k].cdata.flowConsistencyIndex = im.FloatPtr(v.cdata.flowConsistencyIndex)
    groundModels[k].cdata.fluidDensity = im.FloatPtr(v.cdata.fluidDensity)
    groundModels[k].cdata.flowConsistencyIndex = im.FloatPtr(v.cdata.flowConsistencyIndex)
    groundModels[k].cdata.fluidDensity = im.FloatPtr(v.cdata.fluidDensity)
    groundModels[k].cdata.hydrodynamicFriction = im.FloatPtr(v.cdata.hydrodynamicFriction)
    groundModels[k].cdata.fluidDensity = im.FloatPtr(v.cdata.fluidDensity)
    groundModels[k].cdata.hydrodynamicFriction = im.FloatPtr(v.cdata.hydrodynamicFriction)
    --groundModels[k].cdata.name = "Test"
    --groundModels[k].cdata.name = "Test"
    groundModels[k].cdata.roughnessCoefficient = im.FloatPtr(v.cdata.roughnessCoefficient)
    groundModels[k].cdata.shearStrength = im.FloatPtr(v.cdata.shearStrength)
    groundModels[k].cdata.roughnessCoefficient = im.FloatPtr(v.cdata.roughnessCoefficient)
    groundModels[k].cdata.shearStrength = im.FloatPtr(v.cdata.shearStrength)
    groundModels[k].cdata.skidMarks = im.BoolPtr(v.cdata.skidMarks)
    groundModels[k].cdata.skidMarks = im.BoolPtr(v.cdata.skidMarks)
    groundModels[k].cdata.slidingFrictionCoefficient = im.FloatPtr(v.cdata.slidingFrictionCoefficient)
    groundModels[k].cdata.staticFrictionCoefficient = im.FloatPtr(v.cdata.staticFrictionCoefficient)
    groundModels[k].cdata.slidingFrictionCoefficient = im.FloatPtr(v.cdata.slidingFrictionCoefficient)
    groundModels[k].cdata.staticFrictionCoefficient = im.FloatPtr(v.cdata.staticFrictionCoefficient)
    groundModels[k].cdata.strength = im.FloatPtr(v.cdata.strength)
    groundModels[k].cdata.staticFrictionCoefficient = im.FloatPtr(v.cdata.staticFrictionCoefficient)
    groundModels[k].cdata.strength = im.FloatPtr(v.cdata.strength)
    groundModels[k].cdata.stribeckVelocity = im.FloatPtr(v.cdata.stribeckVelocity)
    groundModels[k].cdata.strength = im.FloatPtr(v.cdata.strength)
    groundModels[k].cdata.stribeckVelocity = im.FloatPtr(v.cdata.stribeckVelocity)
@/lua/ge/extensions/flowgraph/graph.lua
  self.viewPos = im.ImVec2Ptr(-200, -200)
  self.viewZoom = im.FloatPtr(1)
end
    self.viewPos = im.ImVec2Ptr(data.viewPos[1], data.viewPos[2])
    self.viewZoom = im.FloatPtr(data.viewZoom)
    self.restoreView = true
@/lua/ge/extensions/editor/mainToolbar.lua
local scaleSnapComboItemCurrent = im.IntPtr(-1)
local FadeIconsPtr = im.FloatPtr(0)
local camSpeedPtr = im.FloatPtr(0)
local FadeIconsPtr = im.FloatPtr(0)
local camSpeedPtr = im.FloatPtr(0)
local todPtr = im.FloatPtr(0)
local camSpeedPtr = im.FloatPtr(0)
local todPtr = im.FloatPtr(0)
local vehicleActionMaps = {"VehicleCommonActionMap", "VehicleSpecificActionMap"}
@/lua/ge/extensions/editor/rallyEditor/drivelineTab.lua
      im.PushItemWidth(-1)
      local tolPtr = im.FloatPtr(self.drivelineV3.simplificationTolerance)
      if im.SliderFloat("###simplifyTol", tolPtr, 0.1, 6.0, "Tolerance = %.1fm") then
      im.SetNextItemWidth(100)
      local speedLimitPtr = im.FloatPtr(self.drivelineV3.properties.speedLimitKph or 100)
      local speedLimitMph = speedLimitPtr[0] * 0.621371
@/lua/ge/extensions/editor/gen/ui.lua
				im.SameLine()
				local v_spacing = im.FloatPtr(R.ui.spacing)
	--            if im.InputFloat("Spacing###", v_spacing, 0.1, 20.0) then
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
  defaultValue = defaultValue or 0
  return self:addElement({type = 'numeric', label = label, fieldName = fieldName, defaultValue = defaultValue, ptr = im.FloatPtr(defaultValue), displayOptions = displayOptions})
end
  elem.count = im.IntPtr(elem.defaultCount)
  elem.best = im.FloatPtr(elem.defaultBest)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.best = im.FloatPtr(elem.defaultBest)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.worst = im.FloatPtr(elem.defaultWorst)
  elem.medium = im.FloatPtr(elem.defaultMedium)
  elem.worst = im.FloatPtr(elem.defaultWorst)
@/lua/ge/extensions/core/input/vibrationDebug.lua

local wheelSlipForceMult = imgui.FloatPtr(1.0)
local jerkForceMult = imgui.FloatPtr(1.0)
local wheelSlipForceMult = imgui.FloatPtr(1.0)
local jerkForceMult = imgui.FloatPtr(1.0)
local wheelSlipMin = imgui.FloatPtr(2.0)
local jerkForceMult = imgui.FloatPtr(1.0)
local wheelSlipMin = imgui.FloatPtr(2.0)
local jerkMin = imgui.FloatPtr(30.0)
local wheelSlipMin = imgui.FloatPtr(2.0)
local jerkMin = imgui.FloatPtr(30.0)
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veAdjustableTechCarTuner.lua
      if not varData.valPtr then
        varData.valPtr = im.FloatPtr(varVal)
      else
@/lua/ge/extensions/editor/camPathEditor.lua
  im.SameLine()
  local imVal = im.FloatPtr(core_camera.getFovDeg())
  im.PushItemWidth(160 * im.uiscale[0])
      im.Text('Target Speed (units per second):')
      local speed = im.FloatPtr(10.0) -- Default speed
      im.PushItemWidth(200 * im.uiscale[0])
      end
      local imVal = im.FloatPtr(marker.time)
      local editEnded = im.BoolPtr(false)
      -- Time to Next
      imVal = im.FloatPtr(
        (currentMarkerIndex < #M.currentPath.markers)
          im.PushItemWidth(im.GetContentRegionAvailWidth())
          local relativePos = im.FloatPtr(core_replay.getPositionSeconds())
          local maxSecs = core_replay.getTotalSeconds()
@/lua/ge/extensions/editor/trafficManager.lua
          im.PushItemWidth(160)
          options.aiData.aggression = options.aiData.aggression or im.FloatPtr(aiData.aggression)
          if editor.uiSliderFloat("Risk##trafficManagerAi", options.aiData.aggression, 0.1, 1.25, "%.2f") then
          im.PushItemWidth(160)
          options.aiData.speed = options.aiData.speed or im.FloatPtr(aiData.speed)
          if editor.uiSliderFloat("Speed (m/s)##trafficManagerAi", options.aiData.speed, 0, 80, "%.1f") then
            if stateData then
              local var = im.FloatPtr(state.duration)
              im.PushItemWidth(inputWidth)

        local var = im.FloatPtr(currSequence.startTime)
        im.PushItemWidth(inputWidth)
@/lua/ge/extensions/editor/missionEditor/setupModules.lua
  self.trafficParkedAmountInput = im.IntPtr(self.mission.setupModules.traffic.parkedAmount or 0)
  self.trafficRespawnRateInput = im.FloatPtr(self.mission.setupModules.traffic.respawnRate or 1)
  self.trafficUseTrafficInput = im.BoolPtr(self.mission.setupModules.traffic.useTraffic and true or false)

  self.todInput = im.FloatPtr(self.mission.setupModules.environment.time or 0)
  self.todScaleInput = im.FloatPtr(self.mission.setupModules.environment.timeScale or 0)
  self.todInput = im.FloatPtr(self.mission.setupModules.environment.time or 0)
  self.todScaleInput = im.FloatPtr(self.mission.setupModules.environment.timeScale or 0)
  self.windSpeedInput = im.FloatPtr(self.mission.setupModules.environment.windSpeed or 0)
  self.todScaleInput = im.FloatPtr(self.mission.setupModules.environment.timeScale or 0)
  self.windSpeedInput = im.FloatPtr(self.mission.setupModules.environment.windSpeed or 0)
  self.windDirectionInput = im.FloatPtr(self.mission.setupModules.environment.windDirAngle or 0)
  self.windSpeedInput = im.FloatPtr(self.mission.setupModules.environment.windSpeed or 0)
  self.windDirectionInput = im.FloatPtr(self.mission.setupModules.environment.windDirAngle or 0)
  self.fogDensityInput = im.FloatPtr(self.mission.setupModules.environment.fogDensity or 0)
  self.windDirectionInput = im.FloatPtr(self.mission.setupModules.environment.windDirAngle or 0)
  self.fogDensityInput = im.FloatPtr(self.mission.setupModules.environment.fogDensity or 0)
  self.todUserSettingInput = im.BoolPtr(self.mission.setupModules.environment.todUserSetting and true or false)
  self.todUserSettingInput = im.BoolPtr(self.mission.setupModules.environment.todUserSetting and true or false)
  self.weatherUserSettingInput = im.FloatPtr(self.mission.setupModules.environment.weatherUserSetting and true or false)
end
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veStaticRenderView.lua
      mode = mainRVData.mode or VIEW_MODE_3D,
      nearClip = im.FloatPtr(mainRVData.nearClip or 0.01),
      farClip = im.FloatPtr(mainRVData.farClip or 100),
      nearClip = im.FloatPtr(mainRVData.nearClip or 0.01),
      farClip = im.FloatPtr(mainRVData.farClip or 100),
      fov = im.FloatPtr(mainRVData.fov or 70),
      farClip = im.FloatPtr(mainRVData.farClip or 100),
      fov = im.FloatPtr(mainRVData.fov or 70),
      pos = mainRVData.pos or vec3(0,0,0),
@/lua/ge/extensions/editor/meshSpline.lua
      im.PushItemWidth(-1)
      local tmpPtr = im.FloatPtr(selSpline.spacing)
      if im.SliderFloat('###5756', tmpPtr, minSpacing, maxSpacing, "Spacing (m) = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.verticalOffset)
      if im.SliderFloat('###27456', tmpPtr, minVerticalOffset, maxVerticalOffset, "Vertical Offset (m) = %.2f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterForward)
      if im.SliderFloat('###5757', tmpPtr, 0.0, 0.2, "Pitch Jitter = %.3f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterRight)
      if im.SliderFloat('###5758', tmpPtr, 0.0, 0.2, "Yaw Jitter = %.3f") then
      im.PushItemWidth(-1)
      tmpPtr = im.FloatPtr(selSpline.jitterUp)
      if im.SliderFloat('###5759', tmpPtr, 0.0, 0.2, "Roll Jitter = %.3f") then
              im.PushItemWidth(-1)
              tmpPtr = im.FloatPtr(selSpline.mainRandomWeight)
              if im.SliderFloat('###5752', tmpPtr, 0.0, 1.0, "Main Weight = %.2f") then
                im.PushItemWidth(-1)
                tmpPtr = im.FloatPtr(selSpline.alias1RandomWeight)
                if im.SliderFloat('###5753', tmpPtr, 0.0, 1.0, "Variation 1 Weight = %.2f") then
                im.PushItemWidth(-1)
                tmpPtr = im.FloatPtr(selSpline.alias2RandomWeight)
                if im.SliderFloat('###5754', tmpPtr, 0.0, 1.0, "Variation 2 Weight = %.2f") then
                im.PushItemWidth(-1)
                tmpPtr = im.FloatPtr(selSpline.alias3RandomWeight)
                if im.SliderFloat('###5755', tmpPtr, 0.0, 1.0, "Variation 3 Weight = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraDOI)
          if im.SliderFloat('###mesh_doi', tmpPtr, DOImin, DOImax, "DOI = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraMargin)
          if im.SliderFloat('###mesh_margin', tmpPtr, terraMarginMin, terraMarginMax, "Terraform Margin = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraFalloff)
          if im.SliderFloat('###mesh_falloff', tmpPtr, terraFalloffMin, terraFalloffMax, "Terraform Falloff = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraRoughness)
          if im.SliderFloat('###mesh_rough', tmpPtr, 0.0, 1.0, "Noise Roughness = %.2f") then
          im.PushItemWidth(-1)
          tmpPtr = im.FloatPtr(terraParams.terraScale)
          if im.SliderFloat('###mesh_scale', tmpPtr, 0.0, 1.0, "Noise Scale = %.2f") then
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua

  local pathnodeRadius = im.FloatPtr(pathnode.radius or 5.0)
  if im.InputFloat("Radius", pathnodeRadius, 0.1, 1.0, "%.1f", im.InputTextFlags_EnterReturnsTrue) then
    elseif fields.types[name] == 'number' then
      if not self.fields[name] then self.fields[name] = im.FloatPtr(fields.values[name]) end
@/lua/ge/extensions/ui/vehiclePaint.lua
  if not tempFloat then
    tempFloat = ui_imgui.FloatPtr(0)
  end
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veNodeTriSelfCollisionDetector.lua

local nodeCollisionRadiusPtr = im.FloatPtr(0.025)