VE Lua Documentation

Press F to search!

getDirectionVectorUp

Definition


-- @/=[C]:-1
function getDirectionVectorUp(...)

Callers

@/lua/vehicle/extensions/tech/techCore.lua
    dir = obj:getDirectionVector(),
    up = obj:getDirectionVectorUp(),
    vel = obj:getVelocity(),
@/lua/ge/extensions/gameplay/missions/missionManager.lua
    startingInfo.vehPos = veh:getPosition()
    startingInfo.vehRot = quatFromDir(vec3(veh:getDirectionVector()), vec3(veh:getDirectionVectorUp()))
    startingInfo.vehId = veh:getID()
@/lua/ge/spawn.lua
    pos = veh:getPosition()
    rot = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
  end
    pos = veh:getPosition()
    rot = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
  end
  local position = carBB:getCenter()
  position = position - car:getDirectionVectorUp() * carBB:getHalfExtents().z
  -- Difference of the bottom center of the trailer to trailer position
  local diffCenterPos = trailer:getPosition() - (trailerBB:getCenter() - trailer:getDirectionVectorUp() * trailerBB:getHalfExtents().z)
@/lua/vehicle/extensions/straightLine.lua
    local angleError = (distanceVector:dot(directionVector) / (directionVector:length() * distanceVector:length()))
    local vectorLeft = obj:getDirectionVectorUp():cross(directionVector)
    local angleSign = distanceVector:dot(vectorLeft)
@/lua/ge/extensions/tech/techCore.lua
local function coeffs2PosVS(c, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function sensor2VS(dirLoc, upLoc, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
@/lua/ge/extensions/editor/trafficManager.lua
  vehData.vehType = core_vehicles.getModel(vehData.model).model.Type
  vehData.home = vehData.home or {pos = veh:getPosition(), rot = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())} -- reset transform
  vehData.aiType = vehData.aiType or "basic" -- basic, script, target, user
      currVeh:queueLuaCommand('recovery.saveHome()')
      sessionData.home = {pos = currVeh:getPosition(), rot = quatFromDir(currVeh:getDirectionVector(), currVeh:getDirectionVectorUp())}
      editor.showNotification("Updated home position of current vehicle.")
        pos = currVeh:getPosition(),
        rot = quatFromDir(currVeh:getDirectionVector(), currVeh:getDirectionVectorUp()),
        model  = currVeh.jbeam,
      pos.x, pos.y, pos.z = options.objPos[0], options.objPos[1], options.objPos[2]
      spawn.safeTeleport(currVeh, pos, quatFromDir(currVeh:getDirectionVector(), currVeh:getDirectionVectorUp()), nil, nil, false, true)
    end
        local obj = scenetree.findObject(nameId)
        spawn.safeTeleport(obj, obj:getPosition(), quatFromDir(obj:getDirectionVector(), obj:getDirectionVectorUp()), nil, nil, false, true)
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua
        if self.pinIn.relativeRotationQuat.value then
          desiredRot = desiredRot * quatFromDir(vec3(v1:getDirectionVector()), vec3(v1:getDirectionVectorUp()))
        else
@/lua/ge/extensions/gameplay/rally/cutCapture.lua
  local vehPos = self.vehicle:getPosition()
  local vehRot = quatFromDir(self.vehicle:getDirectionVector(), self.vehicle:getDirectionVectorUp())
  local now = rallyUtil.getTime()
@/lua/ge/extensions/flowgraph/nodes/mission/knockAwayCheck.lua
        rot = quat(veh:getRotation()),
        up = veh:getDirectionVectorUp()
      }
@/lua/ge/map.lua
  local relativeSpeed = max(objVel:dot(relativePos / (relativePosLen + 1e-30)), 0)
  local ff = 0.5 * vecUp:dot(vec3(obj:getDirectionVectorUp())) -- frictionCoeff * Normal Force.
  local objDirVec = vec3(obj:getDirectionVector())
@/lua/ge/extensions/gameplay/race/race.lua
    local vehiclePos = vehicle:getPosition()
    local vRot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
    local x,y,z = vRot * vec3(1,0,0),vRot * vec3(0,1,0),vRot * vec3(0,0,1)
        local vehiclePos = veh:getPosition()
        local vRot = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
        local x,y,z = vRot * vec3(1,0,0),vRot * vec3(0,1,0),vRot * vec3(0,0,1)
@/lua/vehicle/extensions/mqttGrafanaDemo.lua
  local vectorForward = obj:getDirectionVector()
  local vectorUp = obj:getDirectionVectorUp()
  local vectorRight = vectorForward:cross(vectorUp)
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/vePropTransformer.lua
  local dirFront = vEditor.vehicle:getDirectionVector()
  local dirUp = vEditor.vehicle:getDirectionVectorUp()
  local dirFront = vEditor.vehicle:getDirectionVector()
  local dirUp = vEditor.vehicle:getDirectionVectorUp()
  local dirFront = vEditor.vehicle:getDirectionVector()
  local dirUp = vEditor.vehicle:getDirectionVectorUp()
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veFlexbodyDebug.lua
  local refPos = vEditor.vdata.nodes[vEditor.vdata.refNodes[0].ref].pos
  local rotInv = quatFromDir(-vEditor.vehicle:getDirectionVector(), vEditor.vehicle:getDirectionVectorUp()):inversed()
  local vertPosLocal = rotInv * flexbodyObj:getDebugVertexPos(chosenVertID) + refPos
@/lua/ge/extensions/gameplay/drag/general.lua
    local forward = vehicle:getDirectionVector()
    local up = vehicle:getDirectionVectorUp()
    local vehicleRot = quatFromDir(forward, up)
    local forward = vehicle:getDirectionVector()
    local up = vehicle:getDirectionVectorUp()
    local vehicleRot = quatFromDir(forward, up)
@/lua/ge/extensions/flowgraph/nodes/vehicle/recoverInPlace.lua
    veh:resetBrokenFlexMesh()
    spawn.safeTeleport(veh, veh:getPosition(),quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp()))
  end
@/lua/vehicle/controller/drivingDynamics/sensors/sensorHub.lua
  M.directionVector = obj:getDirectionVector()
  M.directionVectorUp = obj:getDirectionVectorUp()
  M.directionVectorLeft = M.directionVectorUp:cross(M.directionVector)
@/lua/ge/extensions/core/cameraModes/path.lua
        local forward = vec3(veh:getDirectionVector())
        local up = vec3(veh:getDirectionVectorUp())
        local right = up:cross(forward):normalized() -- Compute right vector using cross product
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua
        rot = quat(veh:getRotation()),
        up = veh:getDirectionVectorUp()
      }
      -- get current position and rotation
      vehicleTransforms[k] = {pos = veh:getPosition(), rot = quat(0, 0, 1, 0) * quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())}
    end
@/lua/ge/extensions/core/checkpoints.lua
  vehicleCheckpoints[vehicleId].dirVec = (cpData and vec3(cpData.desiredDir)) or vehicle:getDirectionVector()
  vehicleCheckpoints[vehicleId].upVec =  vehicle:getDirectionVectorUp()
  vehicleCheckpoints[vehicleId].currentWpName =  cpData and cpData.currentWpName
@/lua/ge/extensions/gameplay/discover/discover_037.lua
          local pos = vehicle:getPosition()
          local rot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
          -- Create a point at the bottom center in local space (Z is up/down)
@/lua/ge/extensions/gameplay/crawl/utils.lua
    local vehiclePos = veh:getPosition()
    local vRot = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
    local x,y,z = vRot * vec3(1,0,0),vRot * vec3(0,1,0),vRot * vec3(0,0,1)
  state.crawlerData.dynamicData.vehDirectionVector:set(veh:getDirectionVector())
  state.crawlerData.dynamicData.vehDirectionVectorUp:set(veh:getDirectionVectorUp())
  state.crawlerData.dynamicData.vehRot:set(veh:getRotation())
@/lua/ge/extensions/gameplay/discover.lua
-- use this to get the position, rotation and partConfig of all vehicles
for id in activeVehiclesIterator() do local veh = scenetree.findObjectById(id) print(veh) dump({veh:getPosition(), quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp()), veh.jbeam, veh.partConfig}) end
]]
@/lua/vehicle/controller/tech/cosimulationCoupling.lua
  kOut[18], kOut[19], kOut[20] = fwd.x, fwd.y, fwd.z                                                -- Local frame unit forward vector, meters.
  local up = obj:getDirectionVectorUp()
  up:normalize()
@/lua/vehicle/ai.lua
  prevDirVec = obj:getDirectionVector(),
  upVec = obj:getDirectionVectorUp(),
  rightVec = vec3(),
      debugDrawer:drawSphere(0.1, wheelPosAbsolute, color(255,0,0,255))
      local contactPointPos = wheelPosAbsolute - obj:getDirectionVectorUp() * wheelRadius
      debugDrawer:drawSphere(0.1, contactPointPos, color(255,0,0,255))
@/lua/vehicle/beamstate.lua
  local front = obj:getDirectionVector()
  local up = obj:getDirectionVectorUp()
  local vehicleState = {objId = obj:getId(), partsCondition = partCondition.getConditions(), itemId = v.config.itemId, pos = pos, front = front, up = up}
@/lua/ge/extensions/gameplay/rally/vehicleCapture.lua
  local vehPos = self.vehicle:getPosition()
  local vehRot = quatFromDir(self.vehicle:getDirectionVector(), self.vehicle:getDirectionVectorUp())
  local now = rallyUtil.getTime()
@/lua/vehicle/extensions/dragAi.lua
    local angle = (distanceVector:dot(directionVector) / (directionVector:length() * distanceVector:length()))
    local vectorLeft = obj:getDirectionVectorUp():cross(directionVector)
    local angleSign = distanceVector:dot(vectorLeft)
@/lua/ge/extensions/util/export.lua
    local d = veh:getDirectionVector()
    local u = veh:getDirectionVectorUp()
    if node.extras == nil then
@/lua/vehicle/recovery.lua
    dirFront = obj:getDirectionVector(),
    dirUp = obj:getDirectionVectorUp()
  }
@/lua/ge/extensions/flowgraph/nodes/events/customizedTriggerBox.lua
        local oobb = veh:getSpawnWorldOOBB()
        self.zOffset:set(veh:getDirectionVectorUp() * oobb:getHalfExtents().z) -- vertical midpoint of vehicle
        for i, v in ipairs(self.bbPoints) do
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
local function coeffs2PosVS(c, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function sensor2VS(dirLoc, upLoc, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
        local veh = vehicle.veh
        local pos, rot = veh:getPosition(), quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
        csv:add('vehicle', nil, 'posX', tostring(pos.x), "number", nil, nil, nil)
@/lua/vehicle/protocols.lua

  local up = obj:getDirectionVectorUp()
  M.upX = up.x
@/lua/ge/extensions/editor/aiTests.lua
          v.pos:set(obj:getPosition())
          v.rot:set(quatFromDir(obj:getDirectionVector(), obj:getDirectionVectorUp()) * quat(0, 0, 1, 0))
@/lua/ge/extensions/tech/multiscreen.lua
  if veh then
    local vehicleRotation = quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp())
    local vehiclePosition = veh:getPosition()
@/lua/ge/ge_utils.lua
    else
      options.rot = quatFromDir(vec3(playerVehicle:getDirectionVector()):normalized(), vec3(playerVehicle:getDirectionVectorUp()):normalized())
    end
@/lua/ge/extensions/editor/camPathEditor.lua
        local forward = vec3(playerVehicle:getDirectionVector())
        local up = vec3(playerVehicle:getDirectionVectorUp())
        local right = up:cross(forward):normalized() -- Compute right vector using cross product
          local forward = vec3(playerVehicle:getDirectionVector())
          local up = vec3(playerVehicle:getDirectionVectorUp())
          local right = up:cross(forward):normalized() -- Compute right vector using cross product
@/lua/ge/extensions/flowgraph/nodes/vehicle/touchingStatic.lua

  self.xOffset:set(veh:getDirectionVector():cross(veh:getDirectionVectorUp()) * (self.pinIn.widthOffset.value or 0))
  self.yOffset:set(veh:getDirectionVector() * (self.pinIn.lengthOffset.value or 0))
  self.yOffset:set(veh:getDirectionVector() * (self.pinIn.lengthOffset.value or 0))
  self.zOffset:set(veh:getDirectionVectorUp() * (self.pinIn.heightOffset.value or 0.5))
@/lua/vehicle/scriptai.lua
  local vehCenterPositionRelative = vec3(
    vehCenterPosRel:dot(obj:getDirectionVectorUp():cross(obj:getDirectionVector())),
    -(vehCenterPosRel:dot(obj:getDirectionVector())),
    -(vehCenterPosRel:dot(obj:getDirectionVector())),
    vehCenterPosRel:dot(obj:getDirectionVectorUp())
  )

    local pospjlen = (pos - posline):projectToOriginPlane(obj:getDirectionVectorUp()):squaredLength()

  local aiUpVec = obj:getDirectionVectorUp()
  local aiLeftVec = aiDirVec:cross(aiUpVec):normalized()
        local targetPos = lerp(p1, p2, a)
        local up = obj:getDirectionVectorUp()
        local vel = obj:getClusterVelocityWithoutWheels(v.data.refNodes and v.data.refNodes[0].cid or 0)
      local forceSpeedVec = p2 - aiPos;
      forceSpeedVec = forceSpeedVec:projectToOriginPlane(obj:getDirectionVectorUp())
      forceSpeedVec:setScaled(s1.forceSpeed / (forceSpeedVec:length() + 1e-30))

  local dir, up = obj:getDirectionVector(), obj:getDirectionVectorUp()
  initConditions.dir = {x = dir.x, y = dir.y, z = dir.z}
@/lua/ge/extensions/core/quickAccess.lua
            getPlayerVehicle(0):resetBrokenFlexMesh()
            spawn.safeTeleport(getPlayerVehicle(0), getPlayerVehicle(0):getPosition(), quatFromDir(getPlayerVehicle(0):getDirectionVector(), getPlayerVehicle(0):getDirectionVectorUp()), nil, nil, nil, nil, true)
            return {"hide"}
      veh:resetBrokenFlexMesh()
      spawn.safeTeleport(veh, veh:getPosition(),quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp()))
    end
@/lua/ge/extensions/scenario/waypoints.lua
      local vehiclePos = vehicle:getPosition()
      local vRot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
      local x,y,z = vRot * vec3(1,0,0),vRot * vec3(0,1,0),vRot * vec3(0,0,1)
    local vPos = vehicle:getPosition()
    local vRot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
    for i, corner in ipairs(vehWpData.wheelOffsets) do
@/lua/ge/extensions/flowgraph/nodes/mission/postClean.lua

      spawn.safeTeleport(veh, veh:getPosition(), quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp()), nil, nil, nil, nil, doRepair)
    end
@/lua/vehicle/extensions/tech/wheelForces.lua
  local vehiclePos = obj:getPosition()
  local upVector = obj:getDirectionVectorUp()
  --local leftVector = -obj:getDirectionVectorRight()
@/lua/vehicle/extensions/aeroDebug.lua
  M.directionVector = -obj:getDirectionVector()
  M.directionVectorUp = obj:getDirectionVectorUp()
  --M.directionVectorLeft = M.directionVectorUp:cross(M.directionVector)
@/lua/ge/extensions/gameplay/rally/vehicleTracker.lua
      local vehiclePos = vehicle:getPosition()
      local vRot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
      local x,y,z = vRot * vec3(1,0,0),vRot * vec3(0,1,0),vRot * vec3(0,0,1)
--       local vPos = vehicle:getPosition()
--       local vRot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
--       for i, corner in ipairs(self.wheelOffsets) do
@/lua/ge/extensions/core/cameraModes/unicycle.lua
    local veh = getPlayerVehicle(0)
    self:setCustomData({pos=data.pos, front=veh:getDirectionVector(), up=veh:getDirectionVectorUp()})
  end
@/lua/ge/extensions/scenario/busdriver.lua
    local fwd  = vec3(pv:getDirectionVector()):normalized()
    local up   = vec3(pv:getDirectionVectorUp()):normalized()
    local currPos = vec3(pv:getPosition())
    trigger = Sim.upcast(trigger)
    -- local vUpVec=vec3(pv:getDirectionVectorUp())
    -- local vLeftVec=vDirVec:cross(vUpVec)
@/lua/ge/extensions/editor/tech/sensorConfiguration/utilities.lua
local function posVS2Coeffs(posVS, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function coeffs2PosVS(c, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function sensor2VS(dirLoc, upLoc, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function vS2Sensor(dirVS, upVS, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
local function dirWorldSpace2Sensor(dirWS, upWS, veh)
  local fwd, up = veh:getDirectionVector(), veh:getDirectionVectorUp()
  fwd:normalize()
@/lua/ge/extensions/core/funstuff.lua
  local pos = vehicle:getPosition()
  local rot = quatFromDir(vehicle:getDirectionVector(), vehicle:getDirectionVectorUp())
  -- Create a point at the bottom center in local space (Z is up/down)
@/lua/vehicle/bdebugImpl.lua
    local initRefNodePos = v.data.nodes[v.data.refNodes[0].ref].pos
    local rot = quatFromDir(-obj:getDirectionVector(), obj:getDirectionVectorUp())
    local relCOGPos = rot:inversed() * (p - vehPos) + initRefNodePos