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