quat
Definition
-- @/lua/common/mathlib.lua:842
-- T3d's quats use -w
function quat(x, y, z, w)
if rawequal(y, nil) then
if type(x) == 'table' and x[4] ~= nil then
return newLuaQuatxyzw(x[1], x[2], x[3], x[4])
elseif rawequal(x, nil) then
return newLuaQuatxyzw(1, 0, 0, 0)
else
return newLuaQuatxyzw(x.x, x.y, x.z, x.w)
end
else
return newLuaQuatxyzw(x, y, z, w)
end
end
Callers
@/lua/ge/extensions/core/paths.lua
pos = vec3(markerData.pos.x, markerData.pos.y, markerData.pos.z),
rot = quat(markerData.rot.x, markerData.rot.y, markerData.rot.z, markerData.rot.w),
time = markerData.time,
pos = vec3(marker:getPosition()),
rot = quat(marker:getRotation()),
time = marker.timeToNext or marker.seconds,
@/lua/ge/extensions/editor/raceEditor/tools.lua
elseif mode == 'prefab' then
local r = quat(t.rot)
r = r:toTorqueQuat()
@/lua/common/tech/techUtils.lua
if tbl.w == nil then return vec3(tbl.x, tbl.y, tbl.z) end
if type(tbl.w) == 'number' then return quat(tbl.x, tbl.y, tbl.z, tbl.w) end
end
@/lua/ge/server/commands.lua
core_camera.setPosition(player, playerVehicle:getPosition())
core_camera.setRotation(player, quat(playerVehicle:getRotation()))
core_camera.resetCamera(player)
local camRot = quatFromDir(camDir, vec3(0,0,1))
local rot = quat(0, 0, 1, 0) * camRot -- vehicles' forward is inverted
playerVehicle:setPositionRotation(pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w)
local camRot = quatFromDir(camDir, vec3(0,0,1))
camRot = quat(0, 0, 1, 0) * camRot -- vehicles' forward is inverted
local vehRot = quat(playerVehicle:getClusterRotationSlow(playerVehicle:getRefNodeId()))
local diffRot = vehRot:inversed() * camRot
@/lua/ge/extensions/gameplay/crawl/crawlFlowgraphBridge.lua
local pos = startingPos.position
local rot = startingPos.rotation or quat(0, 0, 0, 1)
@/lua/ge/extensions/gameplay/crawl/utils.lua
position = pathnode.pos,
rotation = pathnode.rotation or quat(0, 0, 0, 1),
index = i,
vehDirectionVectorUp = vec3(),
vehRot = quat(),
vehVelocity = vec3(),
if not state or not state.crawlerData then
return quat(0, 0, 0, 1)
end
if not veh then
return quat(0, 0, 0, 1)
end
local yaw = math.atan2(vehicleRotation.y, vehicleRotation.w) * 2
return quat(math.cos(yaw * 0.5), 0, 0, math.sin(yaw * 0.5))
end
@/lua/ge/extensions/core/cameraModes/bigMap.lua
local forwardDir = quat(self.bigMapCamRotation) * vec3(0,1,0)
forwardDir.z = 0
@/lua/ge/extensions/gameplay/drift/stuntZones.lua
{type = "donut", cooldown = 8, pos = pos + vec3(30, 0, 0), scl = 10},
{type = "driftThrough", cooldown = 8, rot = quat(0, 0, 0, 1), pos = pos + vec3(10, 20, 0), scl = vec3(8, 1, 1)},
{type = "driftThrough", cooldown = 8, rot = quat(0, 0, 0, 1), pos = pos + vec3(10, 29, 0), scl = vec3(8, 1, 1)},
{type = "driftThrough", cooldown = 8, rot = quat(0, 0, 0, 1), pos = pos + vec3(10, 20, 0), scl = vec3(8, 1, 1)},
{type = "driftThrough", cooldown = 8, rot = quat(0, 0, 0, 1), pos = pos + vec3(10, 29, 0), scl = vec3(8, 1, 1)},
{type = "hitPole", pos = pos + vec3(-10, 0, 0)},
for i = 1, benchmarkCount[0], 1 do
table.insert(tempStuntZones, {type = "driftThrough", cooldown = 8, rot = quat(0, 0, 0, 1), pos = pos + vec3(0, i * 10, 0), scl = vec3(8, 1, 1)})
end
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
if om then om:delete() end
local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
scenetree.findObjectById(tveh:getId()):delete()
scenetree.findObjectById(tveh:getId()):delete()
cobj = spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0)):getId()
lo('?? if_COOO:'..tostring(cobj))
scenetree.findObjectById(id):delete()
local veh = spawn.spawnVehicle(model, nil, vec3(1,3,4), quat(0,0,1,0))
vid = veh:getId()
local veh = spawn.spawnVehicle(model, nil, vec3(3,3,4), quat(0,0,1,0))
vid = veh:getId()
if om then om:delete() end
local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
lo('?? mid:'..tostring(tveh))
scenetree.findObjectById(tveh:getId()):delete()
spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0))
break
if om then om:delete() end
local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
scenetree.findObjectById(tveh:getId()):delete()
scenetree.findObjectById(tveh:getId()):delete()
spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0))
break
-- if om then om:delete() end
-- spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
local djpart = J.part2file()
end
local veh = spawn.spawnVehicle(amodel[env.ui['model_up'] ], nil, vec3(0,0,0), quat(0,0,1,0))
lo('?? for_VEH:'..tostring(veh))
lo('?? reloaded:')
-- spawn.spawnVehicle(amodel[env.ui['model_up'] ], nil, vec3(0,0,0), quat(0,0,1,0))
-- pvd = extensions.core_vehicle_manager.getPlayerVehicleData()
end
local veh = spawn.spawnVehicle(amodel[val], nil, vec3(0,0,0), quat(0,0,1,0))
cobj = veh:getId()
if om then om:delete() end
local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
scenetree.findObjectById(tveh:getId()):delete()
scenetree.findObjectById(tveh:getId()):delete()
spawn.spawnVehicle('pickup', nil, vec3(0,0,0), quat(0,0,1,0))
break
-- if om then om:delete() end
-- spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
local djpart = J.part2file()
@/lua/common/lpack.lua
elseif c == 251 then -- quat
return quat(bufDec:decode(), bufDec:decode(), bufDec:decode(), bufDec:decode())
end
w, c, seridx = peekDec[c](seridx)
return quat(x, y, z, w), c, seridx
end
@/lua/ge/extensions/gameplay/crawl/flowgraphBridge.lua
local pos = startingPos.position
local rot = startingPos.rotation or quat(0, 0, 0, 1)
@/lua/ge/extensions/editor/tech/roadArchitect/profiles.lua
local pView = vec3(-24.02901173, 0.8800626756, 1007.733115)
local pRot = quat(0.1090148618, -0.114031973, 0.7137778829, 0.6823735069)
local numLoadedProfiles = 1
@/lua/ge/extensions/career/modules/tuning.lua
local oldVeh = getObjectByID(vehId)
local vehicleTransform = {pos = oldVeh:getPosition(), rot = quat(0,0,1,0) * quat(oldVeh:getRefNodeRotation())}
local oldVeh = getObjectByID(vehId)
local vehicleTransform = {pos = oldVeh:getPosition(), rot = quat(0,0,1,0) * quat(oldVeh:getRefNodeRotation())}
@/lua/ge/extensions/core/multiSpawn.lua
else
rot = quat(0, 0, 1, 0) * rot
obj:setPosRot(pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w)
@/lua/ge/extensions/editor/raceEditor/startPositions.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
sp.rot = quat(rotation)
else
else
sp.rot = self.beginDragRotation * quat(rotation)
end
@/lua/ge/extensions/gameplay/drift/saveLoad.lua
if elem.pos and type(elem.pos) == "table" and elem.pos.x and elem.pos.y and elem.pos.z then elem.pos = vec3(elem.pos) end
if elem.rot and type(elem.rot) == "table" and elem.rot.x and elem.rot.y and elem.rot.z and elem.rot.w then elem.rot = quat(elem.rot) end
if elem.scl and type(elem.scl) == "table" and elem.scl.x and elem.scl.y and elem.scl.z then elem.scl = vec3(elem.scl) end
@/lua/ge/extensions/flowgraph/nodes/scene/sevensegmentDisplay.lua
self.rot = self.pinIn.rotation.value or { 0, 0, 0, 0 }
self.rot = quat(self.rot[1], self.rot[2], self.rot[3], self.rot[4])
self.tRot = self.rot:toTorqueQuat()
@/lua/ge/extensions/editor/renderTest.lua
pos = focusPos
focusRot = quat(veh:getRotation())
dump{'focusRot = ', focusRot:toEulerYXZ()}
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
local lastUsed = {signalType = "lightsBasic"}
local oldTransform = {pos = vec3(), rot = quat(), scl = 1}
local options = {smartName = true, smartObjectSelection = true, showClosestRoad = false}
oldTransform.pos = vec3(instances[selected.signal].pos)
oldTransform.rot = quat(instances[selected.signal].rot)
end
pos = vec3(instances[selected.signal].pos),
rot = quat(instances[selected.signal].rot)
}
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
instances[selected.signal].rot = quat(rotation)
else
else
instances[selected.signal].rot = oldTransform.rot * quat(rotation)
end
@/lua/ge/extensions/editor/missionEditor.lua
-- teleport vehicle
spawn.safeTeleport(playerVehicle,vec3(shownMission.startTrigger.pos), quat(shownMission.startTrigger.rot))
radius = 3,
rot = quat(0,0,0,1)
},
@/lua/ge/extensions/editor/mapSensorEditor.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
local q = quat(q2)
s.dir, s.up = q:toDirUp()
else
local q = beginDragRotation * quat(q2)
s.dir, s.up = q:toDirUp()
@/lua/ge/extensions/editor/aiTests.lua
pos = obj:getPosition(),
rot = quat(obj:getRotation()),
}
v.pos:set(obj:getPosition())
v.rot:set(quatFromDir(obj:getDirectionVector(), obj:getDirectionVectorUp()) * quat(0, 0, 1, 0))
@/lua/ge/extensions/editor/buildingEditor.lua
pos.z = pos.z + hter
q = quat(0.0490453, 0.179371, -0.947768, 0.259147)
]]
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraRotation.lua
function C:init()
self.rotation = quat(0,0,0,0)
self.mode = 'custom'
if im.DragFloat4("##pos"..self.id,pos, 0.5) then
self.rotation = quat(pos[0], pos[1], pos[2], pos[3]):normalized()
reason = "Changed Rotation"
if self.mode == 'from Pin' then
self.rotation = quat(self.pinIn.rot.value)
end
function C:_onDeserialized(nodeData)
self.rotation = nodeData.rot and (quat(nodeData.rot[1],nodeData.rot[2],nodeData.rot[3],nodeData.rot[4])) or quat(0,0,0,0)
self.mode = nodeData.mode or 'custom'
function C:_onDeserialized(nodeData)
self.rotation = nodeData.rot and (quat(nodeData.rot[1],nodeData.rot[2],nodeData.rot[3],nodeData.rot[4])) or quat(0,0,0,0)
self.mode = nodeData.mode or 'custom'
@/lua/ge/extensions/flowgraph/nodes/recording/recordCamera.lua
local rot = v.rot or {0,0,0,0}
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
@/lua/ge/extensions/gameplay/skidpadTest.lua
local spawnPoint = scenetree.findObject("skidpadSpawn")
spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true, false)
testResults = nil
@/lua/ge/spawn.lua
local nodePositions = {}
local vehRot = quat(veh:getClusterRotationSlow(veh:getRefNodeId()))
local pos = cachedTransform and cachedTransform.pos or veh:getPosition()
local rot = cachedTransform and cachedTransform.rot or quat(veh:getRotation())
local boundingBox = OrientedBox3F()
-- Find out the new position and rotation
local originalRot = quat(initialBB:getMatrix():toQuatF())
local newRot = quat(newBB:getMatrix():toQuatF())
local originalRot = quat(initialBB:getMatrix():toQuatF())
local newRot = quat(newBB:getMatrix():toQuatF())
local diffRot = originalRot:inversed() * newRot
-- TODO the rotation by 180 degrees needs to happen before the other rotation. The order might still be wrong in some places
rot = quat(0,0,1,0) * rot -- rotate 180 degrees
local activeVehicle = true
if resetVehicle == nil then resetVehicle = true end
rot = rot or quat(0,0,0,-1)
rot = quat(0,0,1,0) * rot
rot = rot or quat(0,0,0,-1)
rot = quat(0,0,1,0) * rot
options.pos = spawnPoint:getPosition()
options.rot = quat(spawnPoint:getRotation()) * quat(0,0,1,0)
player = core_vehicles.spawnNewVehicle(vehicleModel, options)
options.pos = spawnPoint:getPosition()
options.rot = quat(spawnPoint:getRotation()) * quat(0,0,1,0)
player = core_vehicles.spawnNewVehicle(vehicleModel, options)
@/lua/ge/extensions/gameplay/crawl/general.lua
if firstNode and firstNode.pos then
local rot = firstNode.rotation or quat(0, 0, 0, 1)
startingPosition = {
local pos = startingPos.transform.position
local rot = startingPos.transform.rotation or quat(0, 0, 0, 1)
@/lua/ge/extensions/editor/camPathEditor.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
M.currentPath.markers[currentMarkerIndex].rot = quat(rotation)
else
else
M.currentPath.markers[currentMarkerIndex].rot = beginDragRotation * quat(rotation)
end
--marker.pos = marker.pos
marker.rot = quat(marker.rot)
@/lua/ge/extensions/flowgraph/nodes/scene/camera/procedural/procCamPathPosRot.lua
from.pos = vec3(self.pinIn.pos.value)
from.rot = quat(self.pinIn.rot.value)
from.time = duration
@/lua/ge/extensions/flowgraph/nodes/mission/ARunForLife.lua
local rot = quat(0,0,0,0)
if propsInfo[randomPropId] then
@/lua/common/mathlib.lua
-- Returns quat (-w) from self->v. Both vecs should be normalized
function LuaVec3:getRotationTo(toV)
function LuaQuat:__tostring()
return string.format('quat(%.10g,%.10g,%.10g,%.10g)', numSer(self.x), numSer(self.y), numSer(self.z), numSer(self.w))
end
@/lua/ge/extensions/career/modules/vehiclePerformance.lua
local spawnPoint = scenetree.findObject("skidpadSpawn")
spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true, false)
return true
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallySuperCountdown.lua
self.pos = vec3()
self.rot = quat()
self.startPosValid = false -- Track if start position was successfully looked up
self.pos = vec3()
self.rot = quat()
self.startPosValid = false
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua
pos = veh:getPosition(),
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
@/flowgraphEditor/Tower/customNodes/towerNode.lua
local startPos, startRot = start:getPosition(), quat(start:getRotation())
for _, id in ipairs(allChildrenIds) do
local obj = scenetree.findObjectById(id)
local pos, rot = obj:getPosition(), quat(obj:getRotation())
local startToObj = (lastRot) * (pos-startPos)
end
local q = quat(goal:getRotation())
lastPos = goal:getPosition() + q * vec3(0,4,0)
lastPos = goal:getPosition() + q * vec3(0,4,0)
lastRot = quat(goal:getRotation()) * quatFromEuler(0,0,-math.pi/2)
end
@/lua/ge/extensions/editor/decalEditor.lua
instance.normal = quat(rotation):__mul(vec3(0,0,1))
instance.tangent = quat(rotation):__mul(vec3(1,0,0))
instance.normal = quat(rotation):__mul(vec3(0,0,1))
instance.tangent = quat(rotation):__mul(vec3(1,0,0))
else
@/lua/ge/extensions/gameplay/rally/recce/drivelineRecording.lua
vec3(obj.pos),
quat(obj.quat),
obj.ts
@/lua/ge/extensions/career/modules/playerDriving.lua
local trailer = getObjectByID(args.trailerId)
local vehRot = quat(0,0,1,0) * quat(vehicle:getRefNodeRotation())
local vehBB = vehicle:getSpawnWorldOOBB()
local trailer = getObjectByID(args.trailerId)
local vehRot = quat(0,0,1,0) * quat(vehicle:getRefNodeRotation())
local vehBB = vehicle:getSpawnWorldOOBB()
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
local centerX, centerY -- center of the minimap in imgui coordinates
local camPos, camRot, camRotInverse = vec3(), quat(), quat() -- camera transform
local cameraLook = vec3()
local centerX, centerY -- center of the minimap in imgui coordinates
local camPos, camRot, camRotInverse = vec3(), quat(), quat() -- camera transform
local cameraLook = vec3()
local up = vec3(0,1,0)
local camRotInverse = quat()
local firstPass = true
@/lua/ge/extensions/gameplay/drift/stuntZones/nearPole.lua
local config = "vehicles/delineator/stripes.pc"
local options = {config = config, paint = nil, licenseText = nil, vehicleName = generateObjectNameForClass('BeamNGVehicle', 'object_'), pos = self.data.zoneData.pos, rot = quat(0,0,0,1)}
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
isPose = im.BoolPtr(true)
spawn.safeTeleport(vehicle.veh, vec3(posX, posY, posZ), quat(rotX, rotY, rotZ, rotW))
end
if posX then
spawn.safeTeleport(vehicle.veh, vec3(posX, posY, posZ), quat(rotX, rotY, rotZ, rotW))
end
@/lua/ge/extensions/gameplay/discover/discover_037.lua
local vehs = {
{ vec3(-821.7966309,903.6448364,75.53855133), quat(3.139752468e-06,-1.053478079e-05,0.4958757203,0.8683934995), "unicycle", "vehicles/unicycle/with_mesh.pc" },
{ vec3(-810.0274048,909.8909912,75.03192139), quat(-0.001089688493,-0.003704504967,0.9999047143,-0.01325336309), "fullsize", "vehicles/fullsize/limo_official.pc" },
{ vec3(-821.7966309,903.6448364,75.53855133), quat(3.139752468e-06,-1.053478079e-05,0.4958757203,0.8683934995), "unicycle", "vehicles/unicycle/with_mesh.pc" },
{ vec3(-810.0274048,909.8909912,75.03192139), quat(-0.001089688493,-0.003704504967,0.9999047143,-0.01325336309), "fullsize", "vehicles/fullsize/limo_official.pc" },
}
{ vec3(-393.538208,85.07393646,100.4414902), quat(0.003996261011,0.001331355885,-0.8466762199,0.5320917552), "hopper", "vehicles/hopper/sport_A.pc" },
{ vec3(-392.4162598,79.27086639,100.084465), quat(-0.0007308341831,-0.004185617448,0.9826823809,-0.1852492502), "fullsize", "vehicles/fullsize/lowrider.pc" },
{ vec3(-393.538208,85.07393646,100.4414902), quat(0.003996261011,0.001331355885,-0.8466762199,0.5320917552), "hopper", "vehicles/hopper/sport_A.pc" },
{ vec3(-392.4162598,79.27086639,100.084465), quat(-0.0007308341831,-0.004185617448,0.9826823809,-0.1852492502), "fullsize", "vehicles/fullsize/lowrider.pc" },
{ vec3(-460.0043945,110.3837967,99.99999237), quat(0,-0,1,-0), "large_cannon", "vehicles/large_cannon/standard.pc" },
{ vec3(-471.0322876,111.5633316,99.99999237), quat(5.743762875e-07,-5.464591496e-06,1.715435881e-07,1), "large_roller", "vehicles/large_roller/standard.pc" },
{ vec3(-460.0043945,110.3837967,99.99999237), quat(0,-0,1,-0), "large_cannon", "vehicles/large_cannon/standard.pc" },
{ vec3(-471.0322876,111.5633316,99.99999237), quat(5.743762875e-07,-5.464591496e-06,1.715435881e-07,1), "large_roller", "vehicles/large_roller/standard.pc" },
{ vec3(-439,-15.95985031,100), quat(1.525190219e-07,-1.723923542e-07,-0.7071049957,0.7071085666), "large_hamster_wheel", "vehicles/large_hamster_wheel/standard.pc" },
{ vec3(-471.0322876,111.5633316,99.99999237), quat(5.743762875e-07,-5.464591496e-06,1.715435881e-07,1), "large_roller", "vehicles/large_roller/standard.pc" },
{ vec3(-439,-15.95985031,100), quat(1.525190219e-07,-1.723923542e-07,-0.7071049957,0.7071085666), "large_hamster_wheel", "vehicles/large_hamster_wheel/standard.pc" },
{ vec3(-448,43.99998856,99.99998474), quat(-2.854423109e-06,-1.182347615e-06,0.9238819276,-0.38267765), "large_spinner", "vehicles/large_spinner/flail.pc" },
{ vec3(-460,32,100), quat(-0,0,0.9238795164,-0.3826834713), "large_spinner", "vehicles/large_spinner/base.pc", true },
{ vec3(-470,12.08457279,110.9995651), quat(0.5001355236,0.5010345638,0.4986913531,0.5001357399), "large_spinner", "vehicles/large_spinner/base.pc", true },
{ vec3(-460,32,100), quat(-0,0,0.9238795164,-0.3826834713), "large_spinner", "vehicles/large_spinner/base.pc", true },
{ vec3(-470,12.08457279,110.9995651), quat(0.5001355236,0.5010345638,0.4986913531,0.5001357399), "large_spinner", "vehicles/large_spinner/base.pc", true },
{ vec3(-439,68,100), quat(1.950982245e-06,1.950980785e-06,0.7071070457,0.7071065166), "spikestrip", "vehicles/spikestrip/flexr_dual.pc" },
{ vec3(-439,79,100), quat(1.950982245e-06,1.950980785e-06,0.7071070457,0.7071065166), "spikestrip", "vehicles/spikestrip/flexr_dual.pc" },
{ vec3(-439,68,100), quat(1.950982245e-06,1.950980785e-06,0.7071070457,0.7071065166), "spikestrip", "vehicles/spikestrip/flexr_dual.pc" },
{ vec3(-439,79,100), quat(1.950982245e-06,1.950980785e-06,0.7071070457,0.7071065166), "spikestrip", "vehicles/spikestrip/flexr_dual.pc" },
{ vec3(-422.999939,73.00011444,99.99913025), quat(-5.571546525e-05,-6.816663433e-05,0.9999999956,3.381670454e-05), "trampoline", "vehicles/trampoline/anchor.pc" },
{ vec3(-432,88.00015259,105.9998169), quat(0.4999864969,-0.5000118257,0.4999867948,0.5000148819), "large_spinner", "vehicles/large_spinner/small_dual.pc", true },
local vehs = {
{vec3(1082.018188,427.2434998,114.7162094), quat(-0.02628606277,-0.04700933289,-0.007957618196,0.998516821), "pickup", "vehicles/pickup/deserttruck_crawler_A.pc" },
{vec3(1100,584,160), quat(0,0,0,1), "pressure_ball", "vehicles/pressule_ball/helium.pc.pc" },
{vec3(1100,584,160), quat(0,0,0,1), "pigeon", "vehicles/pigeon/base.pc.pc" },
{vec3(1100,584,160), quat(0,0,0,1), "pressure_ball", "vehicles/pressule_ball/helium.pc.pc" },
{vec3(1100,584,160), quat(0,0,0,1), "pigeon", "vehicles/pigeon/base.pc.pc" },
}
local model, config = set[1], set[2]
local options = {pos = pos, rot = quat(0,0,0,1), model = model, config = config}
if i > 1 then
for _, veh in ipairs(setupVehs) do
--spawn.safeTeleport(veh, vec3(randomPos), quat(0,0,0,1), nil, nil, nil, nil, false)
--veh:setClusterPosRelRot(veh:getRefNodeId(), randomPos.x, randomPos.y, randomPos.z,0,0,0,1)
local vehs = {
{ vec3(208.9507599,-58.5039711,100.1960449), quat(0.001559768738,0.0007141662238,-0.3119492118,0.9500972299), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(215.3587799,-65.03526306,100.1957703), quat(0.001210500138,0.001256510898,-0.6362022006,0.7715203924), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(208.9507599,-58.5039711,100.1960449), quat(0.001559768738,0.0007141662238,-0.3119492118,0.9500972299), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(215.3587799,-65.03526306,100.1957703), quat(0.001210500138,0.001256510898,-0.6362022006,0.7715203924), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(225.7114563,-69.6268158,100.1959534), quat(0.001570248627,0.0007085807929,-0.3077276251,0.9514729324), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(215.3587799,-65.03526306,100.1957703), quat(0.001210500138,0.001256510898,-0.6362022006,0.7715203924), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(225.7114563,-69.6268158,100.1959534), quat(0.001570248627,0.0007085807929,-0.3077276251,0.9514729324), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(229.7160492,-79.54701996,100.1958771), quat(0.001717891903,0.0002193109397,-0.01340812524,0.9999086073), "fullsize", "vehicles/fullsize/limo_derby.pc" }
{ vec3(225.7114563,-69.6268158,100.1959534), quat(0.001570248627,0.0007085807929,-0.3077276251,0.9514729324), "fullsize", "vehicles/fullsize/limo_derby.pc" },
{ vec3(229.7160492,-79.54701996,100.1958771), quat(0.001717891903,0.0002193109397,-0.01340812524,0.9999086073), "fullsize", "vehicles/fullsize/limo_derby.pc" }
}
{
vec3(363.9958191,-197.4786835,77.9961319), quat(-0.0005543338439,0.003372357637,0.4714414284,0.8818907526), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(360.7849731,-200.7636414,78.07813263), quat(0.006742560331,-0.01062271526,0.8806311428,-0.4736353936), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
vec3(363.9958191,-197.4786835,77.9961319), quat(-0.0005543338439,0.003372357637,0.4714414284,0.8818907526), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(360.7849731,-200.7636414,78.07813263), quat(0.006742560331,-0.01062271526,0.8806311428,-0.4736353936), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(367.0430603,-202.0362091,77.98976135), quat(-0.003238036801,0.0005231049422,0.4730052569,0.8810534992), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(360.7849731,-200.7636414,78.07813263), quat(0.006742560331,-0.01062271526,0.8806311428,-0.4736353936), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(367.0430603,-202.0362091,77.98976135), quat(-0.003238036801,0.0005231049422,0.4730052569,0.8810534992), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(364.9580688,-196.6944122,78.97259521), quat(-0.0001914897888,0.01949516246,-0.2922635234,0.9561390772), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(367.0430603,-202.0362091,77.98976135), quat(-0.003238036801,0.0005231049422,0.4730052569,0.8810534992), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(364.9580688,-196.6944122,78.97259521), quat(-0.0001914897888,0.01949516246,-0.2922635234,0.9561390772), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(363.5989685,-203.0787506,79.24938965), quat(0.00445194461,-0.01197569268,0.9570844328,0.2895274624), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(364.9580688,-196.6944122,78.97259521), quat(-0.0001914897888,0.01949516246,-0.2922635234,0.9561390772), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(363.5989685,-203.0787506,79.24938965), quat(0.00445194461,-0.01197569268,0.9570844328,0.2895274624), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(360.1609802,-199.8941803,79.29812622), quat(-0.03122464289,0.1275293849,-0.2935328995,0.9468894944), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(363.5989685,-203.0787506,79.24938965), quat(0.00445194461,-0.01197569268,0.9570844328,0.2895274624), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
{ vec3(360.1609802,-199.8941803,79.29812622), quat(-0.03122464289,0.1275293849,-0.2935328995,0.9468894944), "fullsize", "vehicles/fullsize/limo_luxe.pc" },
}
@/lua/ge/extensions/editor/missionEditor/startTrigger.lua
if self.mission.startTrigger.type == 'coordinates' then
transformHelper:set(vec3(self.mission.startTrigger.pos), quat(self.mission.startTrigger.rot or {0,0,0,1}), self.mission.startTrigger.radius)
end
@/lua/ge/extensions/editor/sitesEditor/zones.lua
local diff = self._prevVerticesPos[vertex.index] - centroid
diff = diff:rotated(quat(rotation))
vertex.pos = centroid + diff
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
self.currentPlane.normal = quat(rotation) * vec3(0, 0, 1)
else
else
self.currentPlane.normal = self.beginDragRotation * quat(rotation) * vec3(0, 0, 1)
end
@/lua/ge/extensions/editor/gen/utils.lua
core_camera.setPosition(0, vec3(acoord[1], acoord[2], acoord[3]))
core_camera.setRotation(0, quat(acoord[4], acoord[5], acoord[6], acoord[7]))
end
@/lua/ge/extensions/editor/toolUtilities/geom.lua
local preRotQuats = {
[0] = quat(0, 0, 0, 1), -- 0° (identity).
[1] = quat(0, 0, 0.70710678, 0.70710678), -- 90°.
[0] = quat(0, 0, 0, 1), -- 0° (identity).
[1] = quat(0, 0, 0.70710678, 0.70710678), -- 90°.
[2] = quat(0, 0, 1, 0), -- 180°.
[1] = quat(0, 0, 0.70710678, 0.70710678), -- 90°.
[2] = quat(0, 0, 1, 0), -- 180°.
[3] = quat(0, 0, 0.70710678, -0.70710678), -- 270°.
[2] = quat(0, 0, 1, 0), -- 180°.
[3] = quat(0, 0, 0.70710678, -0.70710678), -- 270°.
}
local intersections, leftPts, rightPts = {}, {}, {}
local tmpQuat = quat()
local tmpPoint2I = Point2I(0, 0)
@/lua/ge/extensions/editor/dragRaceEditor/strips.lua
local pos = vec3(waypoint.transform.position.x, waypoint.transform.position.y, waypoint.transform.position.z)
local rot = quat(waypoint.transform.rotation.x, waypoint.transform.rotation.y, waypoint.transform.rotation.z, waypoint.transform.rotation.w)
local pos = vec3(boundary.transform.position.x, boundary.transform.position.y, boundary.transform.position.z)
local rot = quat(boundary.transform.rotation.x, boundary.transform.rotation.y, boundary.transform.rotation.z, boundary.transform.rotation.w)
local pos = vec3(lane.boundary.transform.position.x, lane.boundary.transform.position.y, lane.boundary.transform.position.z)
local rot = quat(lane.boundary.transform.rotation.x, lane.boundary.transform.rotation.y, lane.boundary.transform.rotation.z, lane.boundary.transform.rotation.w)
local scl = vec3(lane.boundary.transform.scale.x, lane.boundary.transform.scale.y, lane.boundary.transform.scale.z)
@/lua/ge/extensions/gameplay/missions/proceduralMissionGenerators/busModeMissions.lua
local rot = route.spawnLocation.rotAngAxisF or route.spawnLocation.rot
mission.startTrigger.rot = route.spawnLocation.rotAngAxisF and quat(AngAxisF(rot.x, rot.y, rot.z, (rot.w * 3.1459) / 180.0 ):toQuatF()) or quat(rot)
local rot = route.spawnLocation.rotAngAxisF or route.spawnLocation.rot
mission.startTrigger.rot = route.spawnLocation.rotAngAxisF and quat(AngAxisF(rot.x, rot.y, rot.z, (rot.w * 3.1459) / 180.0 ):toQuatF()) or quat(rot)
@/lua/vehicle/recovery.lua
local camPos = vec3()
local camRot = quat()
local function setRecoveryPoint(recPoint, resetVehicle, moveTraffic)
local rot = quatFromDir(dirFront, dirUp)
obj:queueGameEngineLua("spawn.safeTeleport(getObjectByID("..obj:getId().."), vec3("..recPoint.pos.x..","..recPoint.pos.y..","..recPoint.pos.z.."), quat("..rot.x..","..rot.y..","..rot.z..","..rot.w.."), nil, nil, " .. tostring(moveTraffic) .. ")")
else
local oobb = {vec3(), vec3(), vec3(), vec3()}
local rot = quat()
local nodeRenderPositions = {}
@/lua/ge/extensions/flowgraph/nodes/events/customizedTriggerBox.lua
pos = vec3(self.pinIn.position.value or {0,0,0}),
rot = quat(self.pinIn.rotation.value or {0,0,0,0})
}
@/lua/ge/extensions/ui/apps/minimap/vehicles.lua
local rot = quat()
local function drawPlayer(dtReal, dtSim)
@/lua/ge/extensions/editor/decalSpline/populate.lua
local components, cycle = {}, {}
local jitterQuat, rot = quat(), quat()
local tmpTan = vec3()
local components, cycle = {}, {}
local jitterQuat, rot = quat(), quat()
local tmpTan = vec3()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallyMoveVehicleTo.lua
local targetPos = vec3(self.pinIn.pos.value)
local targetRot = quat(self.pinIn.rot.value)
@/lua/ge/extensions/core/cameraModes/unicycle.lua
local function rotateEuler(x, y, z, q)
q = q or quat()
q = quatFromEuler(0, z, 0) * q
log("W", "", "Unicycle camera cannot provide a position or a rotation: "..dumps(self.pos).." / "..dumps(self.rotVec))
return vec3(), quat()
end
@/lua/ge/extensions/core/cameraModes/orbit.lua
self.smoothedPitchOffset = newTemporalSigmoidSmoothing(2, 2, 2, 2)
self.dynamicPitchQuat = quat()
self.targetCenter = vec3(0, 0, 0)
-- rotate targetPos around bbCenter by the inverse of the vehicle rotation
local vehRot = quat(0,0,1,0) * quat(veh:getClusterRotationSlow(veh:getRefNodeId()))
local localTargetPos = vehRot:inversed() * (targetPos - bbCenter)
-- rotate targetPos around bbCenter by the inverse of the vehicle rotation
local vehRot = quat(0,0,1,0) * quat(veh:getClusterRotationSlow(veh:getRefNodeId()))
local localTargetPos = vehRot:inversed() * (targetPos - bbCenter)
local resultPos, resultRot, tempQuatB = vec3(), quat(), quat()
local resultPos, resultRot, tempQuatB = vec3(), quat(), quat()
@/lua/ge/extensions/gameplay/rally/recceApp.lua
if playerVehicle then
spawn.safeTeleport(playerVehicle, vec3(pos), quat(rot))
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficMoveGroup.lua
local pos = self.pinIn.startPos.value and vec3(self.pinIn.startPos.value)
local rot = self.pinIn.startRot.value and quat(self.pinIn.startRot.value)
@/lua/ge/extensions/gameplay/garageMode.lua
local vehicle = scenetree.findObjectById(vehicleId)
spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true)
end
@/lua/ge/extensions/editor/crawlEditor/presets.lua
pos = vec3(n.position or {0,0,0}),
rot = quat(n.rotation or {0,0,0,1}),
radius = n.radius or 6.0,
pos = vec3(n.position or {0,0,0}),
rot = quat(n.rotation or {0,0,0,1}),
radius = n.radius or 6.0,
@/lua/ge/extensions/core/cameraModes/driver.lua
local qtmp = quat()
local function rotateEuler(x, y, z, q)
local function rotateEuler(x, y, z, q)
q = q or quat()
qtmp:setFromEuler(0, z, 0)
local left, ref, back = vec3(), vec3(), vec3()
local carLeft, carFwd, carUp, carRot, carRotInverse = vec3(), vec3(), vec3(), quat(), quat()
local nodePos = vec3()
local left, ref, back = vec3(), vec3(), vec3()
local carLeft, carFwd, carUp, carRot, carRotInverse = vec3(), vec3(), vec3(), quat(), quat()
local nodePos = vec3()
local nodePos = vec3()
local camUp, camRot = vec3(), quat()
local camPosLocal, combinedPos, rotationOffset = vec3(), vec3(), vec3()
@/lua/ge/extensions/gameplay/speedTraps.lua
-- TODO could also make a cache for the trigger direction
local triggerRotation = quat(triggerObj:getRotation())
triggerDir:setRotate(triggerRotation, yVec)
@/lua/ge/extensions/flowgraph/nodes/scene/spawnTSStatic.lua
local rot = self.pinIn.rotation.value or {0,0,0,0}
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
rot = self.pinIn.rotation.value or {0,0,0,0}
rot = quat(rot[1],rot[2],rot[3],rot[4])
@/lua/ge/extensions/flowgraph/nodes/scene/spawnLight.lua
local rot = self.pinIn.rotation.value or {0,0,0,0}
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
local rot = self.pinIn.rotation.value or {0,0,0,0}
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veLightsDebug.lua
local lightPos = worldMat:getColumn(3) + vEditor.vehiclePos
local qDir = quat(worldMat:toQuatF())
local dirVec = qDir * vec3(0, lightRange, 0)
@/lua/ge/extensions/gameplay/markers/crawlMarker.lua
local vecOne = vec3(1,1,1)
local quatZero = quat(0,0,0,0)
local vecX = vec3(1,0,0)
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veStaticRenderView.lua
pos = mainRVData.pos or vec3(0,0,0),
rot = mainRVData.rot and quat(mainRVData.rot) or quatFromDir(vec3(0,1,0), unitVecs[3]),
gridRot = mainRVData.gridRot and quat(mainRVData.gridRot) or quatFromAxisAngle(vec3(1,0,0), math.rad(90)),
rot = mainRVData.rot and quat(mainRVData.rot) or quatFromDir(vec3(0,1,0), unitVecs[3]),
gridRot = mainRVData.gridRot and quat(mainRVData.gridRot) or quatFromAxisAngle(vec3(1,0,0), math.rad(90)),
ortho = im.BoolPtr(mainRVData.ortho or false),
@/lua/ge/extensions/gameplay/drift/stuntZones/hitPole.lua
local config = "vehicles/delineator/pole.pc"
local options = {config = config, paint = nil, licenseText = nil, vehicleName = generateObjectNameForClass('BeamNGVehicle', 'object_'), pos = self.data.zoneData.pos, rot = quat(0,0,0,1)}
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
@/lua/ge/extensions/gameplay/markerInteraction.lua
updateData.camPos:set(core_camera.getPositionXYZ())
updateData.camRot = updateData.camRot or quat()
updateData.camRot:set(core_camera.getQuatXYZW())
@/lua/ge/extensions/editor/assemblySpline/populate.lua
local maxMolecules, maxRigidMeshes = 0, 0
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local maxMolecules, maxRigidMeshes = 0, 0
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local maxMolecules, maxRigidMeshes = 0, 0
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local directionRot, rollRot = quat(), quat()
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local directionRot, rollRot = quat(), quat()
local jitterQuat, finalRot, rootRot = quat(), quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local directionRot, rollRot = quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local directionRot, rollRot = quat(), quat()
local freedomJitterQuat, axisJitterQuat = quat(), quat()
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local directionRot, rollRot = quat(), quat()
local freedomJitterQuat, axisJitterQuat = quat(), quat()
local directionRot, rollRot = quat(), quat()
local freedomJitterQuat, axisJitterQuat = quat(), quat()
local finalPos, tmpScale, bridgeInternalDir = vec3(), vec3(), vec3()
local directionRot, rollRot = quat(), quat()
local freedomJitterQuat, axisJitterQuat = quat(), quat()
local finalPos, tmpScale, bridgeInternalDir = vec3(), vec3(), vec3()
translationArray[i] = translationArray[i] or vec3() -- Create reusable vec3 and quat objects, as and when we need them.
rotationArray[i] = rotationArray[i] or quat()
end
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veFlexbodyDebug.lua
local vehPos = vec3()
local rotInv = quat()
local localVertPos = vec3()
@/lua/ge/extensions/editor/objectTool.lua
local pos = veh:getPosition()
local rot = quat(veh:getRefNodeRotation())
local scl = 1
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalSingle.lua
position = vec3(self.pinIn.pos.value),
forwardVec = quat(self.pinIn.rot.value) * vec3(0, 1, 0),
color = ColorF(unpack(clr)),
@/lua/ge/extensions/editor/crawlEditor/missionPortTool.lua
-- Calculate rotation pointing to first checkpoint
local rotation = quat(0, 0, 0, 1) -- Default identity rotation
if path and path.nodes and #path.nodes > 0 then
@/lua/ge/extensions/flowgraph/nodes/scene/raceLineParking.lua
--unit vectors in target space
local rot = quat(self.pinIn.rotation.value)
local xn, yn = rot * vec3(1,0,0), rot * vec3(0,-1,0)
im.BeginChild1("parkingPreview", childSize, true, im.WindowFlags_NoScrollbar+im.WindowFlags_NoScrollWithMouse)
local rot = quat(self.pinIn.rotation.value)
dl = im.GetWindowDrawList()
local tr = self.pinIn.rotation.value or {0,0,0,0}
tr = quat(tr[1],tr[2],tr[3],tr[4])
local yVec = tr*vec3(0,1,0)
--debugDrawer:drawSphere((pos), 2, ColorF(clr[1],clr[2],clr[3],shapeAlpha))
local rot = quat(self.pinIn.rotation.value)
local x, y, z = rot * vec3(self.pinIn.scale.value[1],0,0), rot * vec3(0,self.pinIn.scale.value[2],0), rot * vec3(0,0,1)
@/lua/ge/extensions/core/levels.lua
options.pos = spawnPoint:getPosition()
options.rot = quat(spawnPoint:getRotation()) * quat(0,0,1,0)
end
options.pos = spawnPoint:getPosition()
options.rot = quat(spawnPoint:getRotation()) * quat(0,0,1,0)
end
if spawnPoint then
return spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation()
end
@/lua/ge/extensions/gameplay/discover/newPlayerExperience.lua
local vehs = {
{ vec3(189.2717133,-375.0607605,194.2601013), quat(0,0,0.7038784663,0.710320424), "vivace", "vehicles/vivace/vivace_230S_DCT.pc" },
}
local vehs = {
{ vec3(-1270.672607,-79.58815765,121.6928101), quat(-0.02186222721,0.0009984752378,0.7260386731,0.6873055297), "pickup", "vehicles/pickup/deserttruck_crawler_A.pc" },
{ vec3(-1273.283325,-83.95053864,121.7670593), quat(0.01025221426,-0.02570453177,0.8734151899,0.4861893409), "racetruck", "vehicles/racetruck/tt2_spec.pc" },
{ vec3(-1270.672607,-79.58815765,121.6928101), quat(-0.02186222721,0.0009984752378,0.7260386731,0.6873055297), "pickup", "vehicles/pickup/deserttruck_crawler_A.pc" },
{ vec3(-1273.283325,-83.95053864,121.7670593), quat(0.01025221426,-0.02570453177,0.8734151899,0.4861893409), "racetruck", "vehicles/racetruck/tt2_spec.pc" },
--{ vec3(-574.324,-404.611,132.277), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "rockbouncer", "vehicles/rockbouncer/rock_crawler.pc" },
{ vec3(-1273.283325,-83.95053864,121.7670593), quat(0.01025221426,-0.02570453177,0.8734151899,0.4861893409), "racetruck", "vehicles/racetruck/tt2_spec.pc" },
--{ vec3(-574.324,-404.611,132.277), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "rockbouncer", "vehicles/rockbouncer/rock_crawler.pc" },
--{ vec3(-574.530,-404.151,132.347), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "roamer", "vehicles/roamer/adventure.pc" },
--{ vec3(-574.324,-404.611,132.277), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "rockbouncer", "vehicles/rockbouncer/rock_crawler.pc" },
--{ vec3(-574.530,-404.151,132.347), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "roamer", "vehicles/roamer/adventure.pc" },
{ vec3(-1272.337158,-74.02603149,121.4899216), quat(-0.007339913527,0.003215354856,0.4619465262,0.886871577), "utv", "vehicles/utv/plus.pc" },
--{ vec3(-574.530,-404.151,132.347), quat(-0.004031204019,-0.03853915852,-0.4529694097,0.8906835558), "roamer", "vehicles/roamer/adventure.pc" },
{ vec3(-1272.337158,-74.02603149,121.4899216), quat(-0.007339913527,0.003215354856,0.4619465262,0.886871577), "utv", "vehicles/utv/plus.pc" },
}
local vehs = {
{ vec3(-455.5000305,374.7161865,25.23128128), quat(6.270791814e-05,0.0005269290997,0.9929929419,-0.1181724831), vehChoices[1][1], vehChoices[1][2] },
{ vec3(-446.6066589,361.14505,25.16402245), quat(3.034665428e-05,0.0002429556407,0.9922893041,-0.123943039), vehChoices[2][1], vehChoices[2][2] },
{ vec3(-455.5000305,374.7161865,25.23128128), quat(6.270791814e-05,0.0005269290997,0.9929929419,-0.1181724831), vehChoices[1][1], vehChoices[1][2] },
{ vec3(-446.6066589,361.14505,25.16402245), quat(3.034665428e-05,0.0002429556407,0.9922893041,-0.123943039), vehChoices[2][1], vehChoices[2][2] },
{ vec3(-438.1695862,346.2776184,25.1306839), quat(-0.0001477062226,-0.001071917166,0.9906386067,-0.1365063375), vehChoices[3][1], vehChoices[3][2] },
{ vec3(-446.6066589,361.14505,25.16402245), quat(3.034665428e-05,0.0002429556407,0.9922893041,-0.123943039), vehChoices[2][1], vehChoices[2][2] },
{ vec3(-438.1695862,346.2776184,25.1306839), quat(-0.0001477062226,-0.001071917166,0.9906386067,-0.1365063375), vehChoices[3][1], vehChoices[3][2] },
{ vec3(-429.155426,333.7767334,25.10681915), quat(-8.45975059e-05,-0.0007574605165,0.9938206113,-0.1109955479), vehChoices[4][1], vehChoices[4][2] },
{ vec3(-438.1695862,346.2776184,25.1306839), quat(-0.0001477062226,-0.001071917166,0.9906386067,-0.1365063375), vehChoices[3][1], vehChoices[3][2] },
{ vec3(-429.155426,333.7767334,25.10681915), quat(-8.45975059e-05,-0.0007574605165,0.9938206113,-0.1109955479), vehChoices[4][1], vehChoices[4][2] },
{ vec3(-420.4411316,319.9455872,25.14068985), quat(0,-0,0.9944942508,-0.10479115), vehChoices[5][1], vehChoices[5][2] },
{ vec3(-429.155426,333.7767334,25.10681915), quat(-8.45975059e-05,-0.0007574605165,0.9938206113,-0.1109955479), vehChoices[4][1], vehChoices[4][2] },
{ vec3(-420.4411316,319.9455872,25.14068985), quat(0,-0,0.9944942508,-0.10479115), vehChoices[5][1], vehChoices[5][2] },
}
local vehs = {
{ vec3(-143.3728027,83.48352814,35.11228561), quat(-0.004508387994,0.0001588892785,0.03522081038,0.999369373), "van", "vehicles/van/h25_worker.pc" },
{ vec3(-171.8866425,127.8188705,34.96841812), quat(0.02066615241,-0.008679200679,0.387113079,0.9217597548), "cannon", "vehicles/cannon/cannon.pc" },
{ vec3(-143.3728027,83.48352814,35.11228561), quat(-0.004508387994,0.0001588892785,0.03522081038,0.999369373), "van", "vehicles/van/h25_worker.pc" },
{ vec3(-171.8866425,127.8188705,34.96841812), quat(0.02066615241,-0.008679200679,0.387113079,0.9217597548), "cannon", "vehicles/cannon/cannon.pc" },
{ vec3(-158.3771362,143.2392883,35.22563553), quat(-0.001331452813,-0.001542004732,-0.7568890667,0.6535401978), "caravan", "vehicles/caravan/default.pc" },
{ vec3(-171.8866425,127.8188705,34.96841812), quat(0.02066615241,-0.008679200679,0.387113079,0.9217597548), "cannon", "vehicles/cannon/cannon.pc" },
{ vec3(-158.3771362,143.2392883,35.22563553), quat(-0.001331452813,-0.001542004732,-0.7568890667,0.6535401978), "caravan", "vehicles/caravan/default.pc" },
{ vec3(-144.6221008,157.9118805,35.99853516), quat(-1.780725942e-06,-5.771057474e-06,0.9555452647,-0.2948444456), "fridge", "vehicles/fridge/standard.pc" },
{ vec3(-158.3771362,143.2392883,35.22563553), quat(-0.001331452813,-0.001542004732,-0.7568890667,0.6535401978), "caravan", "vehicles/caravan/default.pc" },
{ vec3(-144.6221008,157.9118805,35.99853516), quat(-1.780725942e-06,-5.771057474e-06,0.9555452647,-0.2948444456), "fridge", "vehicles/fridge/standard.pc" },
{ vec3(-150.1018219,158.1330872,36.21847534), quat(1.766898486e-06,-1.028953559e-05,0.985574711,0.1692409196), "porta_potty", "vehicles/porta_potty/default.pc" },
{ vec3(-144.6221008,157.9118805,35.99853516), quat(-1.780725942e-06,-5.771057474e-06,0.9555452647,-0.2948444456), "fridge", "vehicles/fridge/standard.pc" },
{ vec3(-150.1018219,158.1330872,36.21847534), quat(1.766898486e-06,-1.028953559e-05,0.985574711,0.1692409196), "porta_potty", "vehicles/porta_potty/default.pc" },
{ vec3(-146.2707825,159.0570221,36.05832672), quat(0.0001382667643,1.267887785e-06,-0.009169481016,0.9999579499), "piano", "vehicles/piano/standard.pc" },
{ vec3(-150.1018219,158.1330872,36.21847534), quat(1.766898486e-06,-1.028953559e-05,0.985574711,0.1692409196), "porta_potty", "vehicles/porta_potty/default.pc" },
{ vec3(-146.2707825,159.0570221,36.05832672), quat(0.0001382667643,1.267887785e-06,-0.009169481016,0.9999579499), "piano", "vehicles/piano/standard.pc" },
{ vec3(-138.2297058,102.0587769,34.79919434), quat(-0.0001324840225,0.0001432935834,0.7342591574,0.6788692449), "tv", "vehicles/tv/25inch.pc" },
{ vec3(-146.2707825,159.0570221,36.05832672), quat(0.0001382667643,1.267887785e-06,-0.009169481016,0.9999579499), "piano", "vehicles/piano/standard.pc" },
{ vec3(-138.2297058,102.0587769,34.79919434), quat(-0.0001324840225,0.0001432935834,0.7342591574,0.6788692449), "tv", "vehicles/tv/25inch.pc" },
{ vec3(-136.6850739,104.0551834,34.89838409), quat(-1.370823688e-06,-2.668151342e-06,0.8894732678,-0.4569872053), "couch", "vehicles/couch/couch_free.pc" },
{ vec3(-138.2297058,102.0587769,34.79919434), quat(-0.0001324840225,0.0001432935834,0.7342591574,0.6788692449), "tv", "vehicles/tv/25inch.pc" },
{ vec3(-136.6850739,104.0551834,34.89838409), quat(-1.370823688e-06,-2.668151342e-06,0.8894732678,-0.4569872053), "couch", "vehicles/couch/couch_free.pc" },
{ vec3(-135.8791656,101.8557205,34.79919052), quat(0.0002344426654,0.0001473668705,-0.5321790558,0.8466317829), "couch", "vehicles/couch/armchair_free.pc" },
{ vec3(-136.6850739,104.0551834,34.89838409), quat(-1.370823688e-06,-2.668151342e-06,0.8894732678,-0.4569872053), "couch", "vehicles/couch/couch_free.pc" },
{ vec3(-135.8791656,101.8557205,34.79919052), quat(0.0002344426654,0.0001473668705,-0.5321790558,0.8466317829), "couch", "vehicles/couch/armchair_free.pc" },
{ vec3(-135.1573334,102.8125229,34.79919434), quat(4.743933507e-05,1.696156212e-05,-0.3366698313,0.94162276), "barrels", "vehicles/barrels/empty.pc" },
{ vec3(-135.8791656,101.8557205,34.79919052), quat(0.0002344426654,0.0001473668705,-0.5321790558,0.8466317829), "couch", "vehicles/couch/armchair_free.pc" },
{ vec3(-135.1573334,102.8125229,34.79919434), quat(4.743933507e-05,1.696156212e-05,-0.3366698313,0.94162276), "barrels", "vehicles/barrels/empty.pc" },
{ vec3(-131.6051788,157.0005493,36.81754684), quat(0.0001472245881,0.01930025774,0.9997846345,-0.007626472298), "steel_coil", "vehicles/steel_coil/20ton.pc" },
{ vec3(-135.1573334,102.8125229,34.79919434), quat(4.743933507e-05,1.696156212e-05,-0.3366698313,0.94162276), "barrels", "vehicles/barrels/empty.pc" },
{ vec3(-131.6051788,157.0005493,36.81754684), quat(0.0001472245881,0.01930025774,0.9997846345,-0.007626472298), "steel_coil", "vehicles/steel_coil/20ton.pc" },
{ vec3(-131.9969635,153.5990143,35.00673676), quat(-2.599318111e-05,-0.003242814254,0.9999626183,-0.008015324778), "pigeon", "vehicles/pigeon/base.pc" }
{ vec3(-131.6051788,157.0005493,36.81754684), quat(0.0001472245881,0.01930025774,0.9997846345,-0.007626472298), "steel_coil", "vehicles/steel_coil/20ton.pc" },
{ vec3(-131.9969635,153.5990143,35.00673676), quat(-2.599318111e-05,-0.003242814254,0.9999626183,-0.008015324778), "pigeon", "vehicles/pigeon/base.pc" }
}
local vehs = {
{ vec3(-926.2694092,-530.4829712,105.0409012), quat(0.02295934544,0.03978534072,0.5222144473,0.8515762245), "us_semi", "vehicles/us_semi/t82_ramplow.pc" },
}
@/lua/ge/extensions/flowgraph/nodes/environment/planet.lua
pos = pos or vec3(0,0,0)
rot = rot or quat(0,0,0,0)
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/vePropTransformer.lua
lastPropBaseRotationGlobal = vec3(),
lastPropBaseRotationGlobalQuat = quat(),
axisGizmo = {
state.axisGizmo.startPos = editor.getAxisGizmoTransform():inverse():getColumn(3)
state.axisGizmo.startRot = quat(editor.getAxisGizmoTransform():toQuatF())
local rot = quat(editor.getAxisGizmoTransform():toQuatF())
local deltaRot = rot * state.axisGizmo.startRot:inversed()
local lightPos = worldMat:getColumn(3) + vEditor.vehiclePos
local qDir = quat(worldMat:toQuatF())
local dirVec = qDir * vec3(0, lightRange, 0)
@/lua/ge/extensions/editor/perfProfiler.lua
s.pos = vec3(s.pos)
s.rot = quat(s.rot)
end
@/lua/ge/extensions/editor/api/gizmo.lua
rotation:setFromMatrix(objectTransform)
objectRotations[index] = quat(rotation)
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPos.lua
-- local wCenter, wPos = vec3(), vec3()
local vehPos, vehRot, vehVel = vec3(), quat(), vec3()
@/lua/ge/extensions/editor/barriersEditor.lua
local pos = vec3(obj:getPosition())
pos = pos + quat(obj:getRotation())*vec3(0,0,0.5)
table.insert(objects,pos)
@/lua/ge/extensions/core/cameraModes/autopoint.lua
data.res.targetPos:setAdd(offset:toBase(nx, ny, nz))
data.res.rot = data.res.rot or quat()
data.res.rot:set(quatFromDir((data.res.targetPos - data.res.pos):normalized()))
@/lua/ge/extensions/gameplay/rally/cameraPathPlayer.lua
pos = vec3(markerData.pos.x, markerData.pos.y, markerData.pos.z),
rot = quat(markerData.rot.x, markerData.rot.y, markerData.rot.z, markerData.rot.w),
time = markerData.time,
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleMapData.lua
local vehId, vehicleData
local vehQuat = quat()
@/lua/ge/extensions/editor/sceneView.lua
if focusObj then
focusRot = quat(focusObj:getRefNodeRotation())
focusPos = focusObj:getPosition() + focusRot * view.dragOffset
@/lua/ge/extensions/editor/dragRaceEditor/utils.lua
local pos = vec3(transform.position.x, transform.position.y, transform.position.z)
local rot = quat(transform.rotation.x, transform.rotation.y, transform.rotation.z, transform.rotation.w)
local scl = vec3(transform.scale.x, transform.scale.y, transform.scale.z)
@/lua/ge/extensions/gameplay/traffic.lua
else
rot = rot * quat(0, 0, 1, 0)
obj:setPositionRotation(pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w)
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
elem.defaultPos = valueOptions.defaultPos or vec3()
elem.defaultRot = valueOptions.defaultRot or quat(0,0,0,1)
local function boolSetMission(e, mtd) if mtd[e.fieldName] == nil then e.ptr[0] = e.defaultValue else e.ptr[0] = mtd[e.fieldName] end end
local function transformSetMission(e, mtd) e.transform:set(vec3(mtd[e.fieldNamePos] or e.defaultPos), quat(mtd[e.fieldNameRot] or e.defaultRot), e.oneDimScale and (mtd[e.fieldNameScl] or e.defaultScl) or (vec3(mtd[e.fieldNameScl] or e.defaultScl))) end
local function modelConfigSetMission(e, mtd) e.mc.model = mtd[e.fieldNameModel] or e.defaultModel e.mc.config = mtd[e.fieldNameConfig] or e.defaultConfig e.mc.configPath = mtd[e.fieldNameConfigPath] or e.defaultConfigPath ui_flowgraph_editor.vehicleSelectorRefresh(e.mc) end
@/lua/ge/extensions/core/vehicles.lua
if localOptions.keepOtherVehRotation then
localOptions.rot = quat(0,0,1,0) * quat(veh:getRefNodeRotation())
end
if localOptions.keepOtherVehRotation then
localOptions.rot = quat(0,0,1,0) * quat(veh:getRefNodeRotation())
end
@/lua/ge/extensions/editor/drivePathEditor/splineMgr.lua
local tmp1 = vec3()
local tmpRot = quat()
if not cachedVehiclePoses[vehicle.vid] then
cachedVehiclePoses[vehicle.vid] = { pos = vec3(veh:getPosition()), rot = quat(veh:getRotation()) }
end
if not cachedVehiclePoses[vehicle.vid] then
cachedVehiclePoses[vehicle.vid] = { pos = vec3(veh:getPosition()), rot = quat(veh:getRotation()) }
end
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua
self._prevVerticesPos = {}
self.beginDragRotation = quat(1, 0, 0, 0)
self.snapToTerrain = true
local diff = self._prevVerticesPos[vertex.index] - centroid
diff = diff:rotated(quat(rotation))
local newPos = centroid + diff
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
self.currentPlane.normal = quat(rotation) * vec3(0, 0, 1)
else
else
self.currentPlane.normal = self.beginDragRotation * quat(rotation) * vec3(0, 0, 1)
end
@/lua/ge/extensions/editor/forestEditor.lua
local normal = vec3(rayCastRes.norm)
local rot = quat(rotation) * vec3(0,0,1):getRotationTo(normal)
local trans = QuatF(rot.x, rot.y, rot.z, rot.w):getMatrix()
@/lua/ge/extensions/tech/pythonExport.lua
local cmd = [[
local rot = quat(obj:getRotation())
local data = { rot = rot }
@/lua/ge/extensions/util/showroom.lua
local function getPosRot()
return localToWorld(vec3(0,0,0)), quat(0,0,0,1)
end
veh:autoplace(false)
--spawn.safeTeleport(veh, localToWorld(vec3(0,0,0)), quat(0,0,0,1))
end
@/lua/ge/extensions/core/cameraModes/trackir.lua
local function rotateEuler(x, y, z, q)
q = q or quat()
q = quatFromEuler(0, 0, x) * q
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua
local vecZero = vec3(0,0,0)
local camQuat = quat()
local camUp = vec3()
@/lua/ge/extensions/editor/meshSpline/populate.lua
local componentNames, componentProbabilities = {}, {}
local jitterQuat, rot, tmpRot1 = quat(), quat(), quat()
local tmpPos, tmpTan, tmpBinormal, tmpVec1 = vec3(), vec3(), vec3(), vec3()
local componentNames, componentProbabilities = {}, {}
local jitterQuat, rot, tmpRot1 = quat(), quat(), quat()
local tmpPos, tmpTan, tmpBinormal, tmpVec1 = vec3(), vec3(), vec3(), vec3()
local componentNames, componentProbabilities = {}, {}
local jitterQuat, rot, tmpRot1 = quat(), quat(), quat()
local tmpPos, tmpTan, tmpBinormal, tmpVec1 = vec3(), vec3(), vec3(), vec3()
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
local q = quat(q2)
local dir, up = q:toDirUp()
else
local q = beginDragRotation * quat(q2)
local dir, up = q:toDirUp()
@/lua/ge/extensions/flowgraph/nodes/mission/knockAwayCheck.lua
pos = veh:getPosition(),
rot = quat(veh:getRotation()),
up = veh:getDirectionVectorUp()
@/lua/ge/extensions/editor/api/object.lua
initialObjectRot:setFromMatrix(initialTransformations[i])
initialObjectRot = quat(initialObjectRot)
initialGizmoRot:setFromMatrix(initialGizmoTransform)
initialGizmoRot = quat(initialGizmoRot)
local inverseGizmoRot = initialGizmoRot:inversed()
currentGizmoRot:setFromMatrix(gizmoTransform)
currentGizmoRot = quat(currentGizmoRot)
local diffRot = currentGizmoRot:__div(initialGizmoRot)
rot:setFromMatrix(editor.getAxisGizmoTransform())
offset = quat(rot):inversed() * offset
offset.x = offset.x * adjustedScale.x
offset.z = offset.z * adjustedScale.z
offset = quat(rot) * offset
@/lua/ge/extensions/gameplay/drag/saveSystem.lua
for _, waypoint in ipairs(lane.waypoints) do
local rot = quat(waypoint.transform.rotation.x, waypoint.transform.rotation.y, waypoint.transform.rotation.z, waypoint.transform.rotation.w)
local scl = vec3(waypoint.transform.scale.x, waypoint.transform.scale.y, waypoint.transform.scale.z)
position = vec3(lane.boundary.transform.position.x, lane.boundary.transform.position.y, lane.boundary.transform.position.z),
rotation = quat(lane.boundary.transform.rotation.x, lane.boundary.transform.rotation.y, lane.boundary.transform.rotation.z, lane.boundary.transform.rotation.w),
scale = vec3(lane.boundary.transform.scale.x, lane.boundary.transform.scale.y, lane.boundary.transform.scale.z),
pos = vec3(0, 0, 0),
rot = quat(0, 0, 0, 1),
scl = vec3(1, 1, 1)
@/lua/ge/extensions/gameplay/race/path.lua
if cp:getField('directionalWaypoint',0) == '1' then
pn:setNormal(quat(cp:getRotation())*vec3(1,0,0))
else
if wp:getField('directionalWaypoint',0) == '1' then
rot = quat(wp:getRotation())*vec3(1,0,0)
end
if wp:getField('directionalWaypoint',0) == '1' then
rot = quat(wp:getRotation())*vec3(1,0,0)
end
if spawnObj ~= nil then
local rot = quat(spawnObj:getRotation())* quat(0,0,1,0)
local x, y, z = rot * vec3(1,0,0), rot * vec3(0,1,0), rot * vec3(0,0,1)
if spawnObj ~= nil then
local rot = quat(spawnObj:getRotation())* quat(0,0,1,0)
local x, y, z = rot * vec3(1,0,0), rot * vec3(0,1,0), rot * vec3(0,0,1)
@/lua/ge/extensions/gameplay/police.lua
local transforms = {}
local newQuat = quat()
tempPos:setAddXYZ(x, y, z) -- offset adjustment
table.insert(transforms, {pos = vec3(tempPos), rot = quat(newQuat)})
end
@/lua/ge/extensions/scenario/quickRace.lua
local pos = vec3()
local rot = quat()
if scenario.track.raceFile then
pos = vec3(spawnObj:getPosition())
rot = quat(spawnObj:getRotation())
else
@/lua/ge/extensions/tech/techCore.lua
pos = vec3(pos)
rot = quat(rot):toTorqueQuat()
if request['rot'] ~= nil then
rot = quat(request['rot'][1], request['rot'][2], request['rot'][3], request['rot'][4])
end
elseif reset and rot == nil then
local vehRot = quat(veh:getClusterRotationSlow(veh:getRefNodeId()))
veh:setPositionRotation(request['pos'][1], request['pos'][2], request['pos'][3], vehRot.x, vehRot.y, vehRot.z, vehRot.w)
elseif not reset and rot ~= nil then
local vehRot = quat(veh:getClusterRotationSlow(veh:getRefNodeId()))
local diffRot = vehRot:inversed() * rot
if request['rot'] ~= nil then
local quat = quat(request['rot'][1], request['rot'][2], request['rot'][3], request['rot'][4])
sobj:setPosRot(request['pos'][1], request['pos'][2], request['pos'][3], quat.x, quat.y, quat.z, quat.w)
pos = vec3(pos[1], pos[2], pos[3])
rot = quat(rot)
rot = quat(-rot.y, rot.x, rot.w, -rot.z) -- vehicles' forward is inverted
rot = quat(rot)
rot = quat(-rot.y, rot.x, rot.w, -rot.z) -- vehicles' forward is inverted
end
@/lua/ge/extensions/core/groundMarkerArrows.lua
pos = vec3(0,0,0),
rot = quat(0,0,0,1),
state = "unused",
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/loop/getLoopVehiclePosition.lua
-- self.pinOut.rot.value = rot
local correctedRot = quat(rot) * quat(0,0,-1,0)
vehicleSetPositionRotation(self.pinIn.vehId.value, pos[1], pos[2], pos[3], rot[1], rot[2], rot[3], rot[4])
-- self.pinOut.rot.value = rot
local correctedRot = quat(rot) * quat(0,0,-1,0)
vehicleSetPositionRotation(self.pinIn.vehId.value, pos[1], pos[2], pos[3], rot[1], rot[2], rot[3], rot[4])
@/lua/ge/extensions/gameplay/rally/loop/rallyLoopManager.lua
-- Flip rot about the z axis (nextEntry.tcInRot is already a quat object)
-- local rot = nextEntry.tcInRot * quat(0, 0, 1, 0)
local rot = nextEntry.tcInRot
-- Apply rotation correction (same as moveTo node)
local correctedRot = rotQuat * quat(0,0,-1,0)
return pos, {correctedRot.x, correctedRot.y, correctedRot.z, correctedRot.w}
@/lua/ge/extensions/flowgraph/nodes/vehicle/moveTo.lua
if not pos or #pos ~= 3 or not rot then return end
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot))
if not pos or #pos ~= 3 or not rot then return end
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot))
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot))
-- Vehicle is repaired, trigger reset hook for DNF penalty
if not pos or #pos ~= 3 or not rot then return end
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot), nil, nil, nil, nil, false)
if not pos or #pos ~= 3 or not rot then return end
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot), nil, nil, nil, nil, false)
local correctedRot = quat(rot) * quat(0,0,-1,0)
spawn.safeTeleport(veh, vec3(pos), quat(correctedRot), nil, nil, nil, nil, false)
-- Vehicle is moved without repair, trigger flip upright hook
@/lua/ge/extensions/core/cameraModes/onboard.lua
local function rotateEuler(x, y, z, q)
q = q or quat()
q = quatFromEuler(0, z, 0) * q
@/lua/ge/extensions/core/cameraModes/topDown.lua
data.res.pos = camPos -- required, vec3()
data.res.rot = qdir -- required, quat()
data.res.fov = self.fov -- required
@/gameplay/missionTypes/collection/customNodes/collectionNode.lua
self.pinOut.recoveryPos.value = (self.currentRecovery and self.currentRecovery.pos or vec3()):toTable()
self.pinOut.recoveryRot.value = (self.currentRecovery and self.currentRecovery.rot or quat()):toTable()
end
@/lua/vehicle/extensions/tech/techCore.lua
front = obj:getFrontPosition(),
rotation = quat(obj:getRotation())
}
@/lua/ge/extensions/flowgraph/nodes/vehicle/spawnVehicle.lua
local spawnPos = self.pinIn.pos.value and vec3(self.pinIn.pos.value)
local spawnRot = self.pinIn.rot.value and quat(self.pinIn.rot.value)
if spawnRot then
if spawnRot then
spawnRot = quat(0,0,1,0) * spawnRot -- rotate 180 degrees
end
@/lua/ge/extensions/flowgraph/nodes/scene/storeStatics.lua
pos = vec3(obj:getPosition()):toTable(),
rot = quat(obj:getRotation()):toTable(),
scl = vec3(obj:getScale()):toTable(),
-- rotation
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
@/lua/ge/map.lua
local pos = vec3(posX, posY, posZ)
local rot = quat(rotX, rotY, rotZ, rotW)
spawn.safeTeleport(veh, pos, rot, checkOnlyStatics_, visibilityPoint_, removeTraffic_, centeredPosition, resetVehicle)
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
note.normal = quat(rotation)*vec3(0,1,0)
else
else
note.normal = self.beginDragRotation * quat(rotation)*vec3(0,1,0)
end
@/lua/vehicle/controller/playerController.lua
local debugVectors = {}
local cameraRotation = quat(0, 0, 0, 0)
local cameraRotationStandardVector = vec3(0, 1, 0)
@/lua/ge/extensions/flowgraph/nodes/math/math.lua
else
self.quatCache[key] = quat(val)
end
@/lua/ge/extensions/editor/assemblySpline/molecule.lua
-- Module state.
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local placedPosWS, posWS, attachAnchorPostRotateMS = vec3(), vec3(), vec3()
-- Module state.
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local placedPosWS, posWS, attachAnchorPostRotateMS = vec3(), vec3(), vec3()
-- Module state.
local forwardRot, upRot, aligningRot = quat(), quat(), quat()
local placedPosWS, posWS, attachAnchorPostRotateMS = vec3(), vec3(), vec3()
@/lua/ge/extensions/career/modules/inventory.lua
if veh then
data.spawnedPlayerVehicles[inventoryId] = {pos = veh:getPosition(), rot = quat(0,0,1,0) * quat(veh:getRefNodeRotation())}
end
if veh then
data.spawnedPlayerVehicles[inventoryId] = {pos = veh:getPosition(), rot = quat(0,0,1,0) * quat(veh:getRefNodeRotation())}
end
@/lua/ge/extensions/editor/meshSpline/import.lua
local importDelayFrameCount = 0
local meshRot = quat()
local tangent, meshXAxis = vec3(), vec3()
@/lua/ge/extensions/gameplay/drag/debug.lua
if im.IsItemHovered() and editor_dragRaceEditor then
local rot = quat(laneData.transform.rotation)
local x, y, z = laneData.transform.scale.x, laneData.transform.scale.y, laneData.transform.scale.z
@/lua/ge/extensions/gameplay/missions/missions.lua
if mission then
return vec3(mission.startTrigger.pos), quat(mission.startTrigger.rot)
end
@/lua/ge/extensions/scenario/busdriver.lua
local tpos,pos = vec3(nextStop[3]) + vec3(0,0,3), vec3(0,0,0)
local tr = quat(nextStop[4])
local r
local vDirVec=vec3(pv:getDirectionVector())
local tr = quat(nextStop[4])
local yVec = tr*vec3(0,1,0)
@/lua/ge/extensions/flowgraph/nodes/types/transform.lua
self.position = position + cameraPosition
self.rotation = quat(0,0,0,1)
self.scale = vec3(1,1,1)
function C:gizmoBeginDrag()
self._beginDragRotation = deepcopy(quat(self.rotation))
self._beginDragScale = vec3(self.scale)
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
self.rotation = quat(rotation)
else
else
self.rotation = self._beginDragRotation * quat(rotation)
end
if im.DragFloat4("##rot"..self.id,rot, 0.025) then
self.rotation = quat(rot[0],rot[1],rot[2],rot[3]):normalized()
self:updateTransform()
self.position = vec3(obj:getPosition())
self.rotation = quat(obj:getRotation())
self.scale = vec3(obj:getScale())
self.position = vec3(obj:getPosition())
self.rotation = quat(obj:getRotation())
self.scale = vec3(obj:getScale())
if nodeData.rotation then
self.rotation = quat(nodeData.rotation[1], nodeData.rotation[2], nodeData.rotation[3], nodeData.rotation[4])
end
@/lua/ge/extensions/flowgraph/nodes/types/quat.lua
local quatOut = quat()
function C:work()
builder:Middle()
im.Text(tostring(quat(self.pinIn.x.value or 0, self.pinIn.y.value or 0, self.pinIn.z.value or 0, self.pinIn.w.value or 0)))
end
@/lua/ge/extensions/editor/crawlEditor/paths.lua
self._prevPathnodePos = {}
self._prevPathnodeRotation = quat(1, 0, 0, 0)
self.beginDragRotation = quat(1, 0, 0, 0)
self._prevPathnodeRotation = quat(1, 0, 0, 0)
self.beginDragRotation = quat(1, 0, 0, 0)
self.snapToTerrain = true
-- Rotation
local rotation = self.currentPathnode.rotation or quat(1, 0, 0, 0)
local rot = im.ArrayFloat(4)
if rotEditEnded[0] then
self.currentPathnode.rotation = quat(rot[0], rot[1], rot[2], rot[3])
markPathAsDirty(path)
pos = vec3(0, 0, 0),
rotation = quat(1, 0, 0, 0),
radius = 4.0,
local rotation = self.currentPathnode.rotation or quat(1, 0, 0, 0)
local rotationQuatF = QuatF(rotation.x, rotation.y, rotation.z, rotation.w)
self._prevPathnodePos = deepcopy(self.currentPathnode.pos)
self._prevPathnodeRotation = quat(self.currentPathnode.rotation or quat(1, 0, 0, 0))
end
self._prevPathnodePos = deepcopy(self.currentPathnode.pos)
self._prevPathnodeRotation = quat(self.currentPathnode.rotation or quat(1, 0, 0, 0))
end
-- Handle rotation via gizmo
local newRotation = quat(editor.getAxisGizmoTransform():toQuatF())
self.currentPathnode.rotation = newRotation
local oldRot = self._prevPathnodeRotation
local newRot = self.currentPathnode.rotation or quat(1, 0, 0, 0)
@/lua/ge/extensions/flowgraph/nodes/types/vec3.lua
local tempQuat = quat()
local vecOut = vec3()
@/lua/ge/extensions/gameplay/missions/missionManager.lua
pos = vec3(sObj:getPosition()),
rot = quat(sObj:getRotation())
}
@/lua/ge/main.lua
function replaySpawnVehicle(jbeamFilename, partConfigData)
local veh = spawn.spawnVehicle(jbeamFilename, partConfigData, vec3(), quat(), nil, nil, nil)
if be:getEnterableObjectCount() == 1 then
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleData.lua
local wCenter, wPos = vec3(), vec3()
local vehQuat = quat()
@/lua/ge/extensions/editor/assemblySpline/import.lua
local votes = { [0] = 0, [1] = 0, [2] = 0, [3] = 0 }
local tmpRot = quat()
local tangent, expectedBinormal, actualBinormal = vec3(), vec3(), vec3()
@/lua/common/tech/pcdLib.lua
self.pos = vec3(0, 0, 0)
self.rotQuat = quat(0, 0, 0, 1)
self.points = nil
@/lua/ge/extensions/editor/tech/roadArchitect/staticMesh.lua
local root2Over2 = sqrt(2) * 0.5
local rot_q0 = quat(0, 0, 0, 1) -- Some common rotations (as quaternions).
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q0 = quat(0, 0, 0, 1) -- Some common rotations (as quaternions).
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q270 = quat(0, 0, -root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q270 = quat(0, 0, -root2Over2, root2Over2)
local rot = quat()
if isGlobalZ then
end
local rot = quat()
local tgt = lat:cross(nml)
@/lua/ge/extensions/flowgraph/nodes/math/quaternion/lookAt.lua
local dirVec, dirVecUp = vec3(), vec3()
local rot = quat()
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua
local sc = vec3()
local tr = quat()
local defaultClrIn = {1,0.5,0,1}
if self.pinIn.onlyForward.value and self.pinIn.visibleMarkers.value then
local rot = quat(self.pinIn.rotation.value)
local x, y = rot * vec3(1,0,0), rot * vec3(0,1,0)
local tr = self.pinIn.rotation.value or zerosTable4
tr = quat(tr[1],tr[2],tr[3],tr[4])
local scl = vec3(self.pinIn.scale.value or {1,1,1})
local rot = self.pinIn.rotation.value or zerosTable4
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
local rot = self.pinIn.rotation.value or zerosTable4
rot = quat(rot[1],rot[2],rot[3],rot[4])
rot = rot:toTorqueQuat()
@/lua/ge/extensions/core/camera.lua
local resPos, resTargetPos, resRot = vec3(), vec3(), quat()
local finalCameraData = {pos = vec3(), rot = quat(), fovDeg = 0}
local validData
local lastValidData = { fov=60, pos=vec3(), rot=quat() } -- protect against getting NaNs on the very first frame
-- guard against sending NaN and inf to C++, which will put it in an unrecoverable state
if rx and ry and rz and rw then
core_camera.setRotation(pid, quat(rx, ry, rz, rw))
end
local function getQuat()
return quat(finalCameraData.rot)
end
@/lua/ge/extensions/gameplay/discover/discover_038.lua
spawningOptions.pos = vec3(-806.7416992,-325.3113098,237.535614)
spawningOptions.rot = quat(1.781464772e-06,-1.254244252e-05,0.8572401185,0.5149168662)
spawningOptions.autoEnterVehicle = true
@/lua/ge/extensions/gameplay/rally/recce/cutsRecording.lua
obj.pos = vec3(obj.pos)
obj.quat = quat(obj.quat)
@/lua/ge/extensions/gameplay/drift/freeroam/driftSpots.lua
scl = vec3(lineData.scl),
rot = quat(lineData.rot),
startDir = vec3(lineData.startDir),
if spot then
return vec3(spot.spatialInfo.bigMapTp.pos), quat(spot.spatialInfo.bigMapTp.rot)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/toggleWalking.lua
local pos = self.pinIn.pos.value and vec3(self.pinIn.pos.value) or nil
local rot = self.pinIn.rot.value and quat(self.pinIn.rot.value) or nil
local succ, id = gameplay_walk.setWalkingMode(true, pos, rot)
@/lua/ge/extensions/editor/util/editorElementHelper.lua
elem.defaultPos = valueOptions.defaultPos or vec3()
elem.defaultRot = valueOptions.defaultRot or quat(0,0,0,1)
local function boolSetContainer(e, ctd) if ctd[e.fieldName] == nil then e.ptr[0] = e.defaultValue else e.ptr[0] = ctd[e.fieldName] end end
local function transformSetContainer(e, ctd) e.transform:set(vec3(ctd[e.fieldNamePos] or e.defaultPos), quat(ctd[e.fieldNameRot] or e.defaultRot), e.oneDimScale and (ctd[e.fieldNameScl] or e.defaultScl) or (vec3(ctd[e.fieldNameScl] or e.defaultScl))) end
local function modelConfigSetContainer(e, ctd) e.mc.model = ctd[e.fieldNameModel] or e.defaultModel e.mc.config = ctd[e.fieldNameConfig] or e.defaultConfig e.mc.configPath = ctd[e.fieldNameConfigPath] or e.defaultConfigPath ui_flowgraph_editor.vehicleSelectorRefresh(e.mc) end
if editor.uiIconImageButton(editor.icons.undo, imVec24x24) then
e.transform:set(vec3(e.defaultPos), quat(e.defaultRot), e.oneDimScale and (e.defaultScl) or (vec3(e.defaultScl)))
ctd[e.fieldNamePos] = e.hasPos and (e.transform.pos:toTable())
@/lua/ge/extensions/editor/tech/roadArchitect/utilities.lua
if dot > 0.999999 then
return quat(0, 0, 0, 1)
end
orthogonal:normalize()
return quat(orthogonal.x, orthogonal.y, orthogonal.z, 0):normalized()
end
local inv_w = 1.0 / w
return quat(cross.x * inv_w, cross.y * inv_w, cross.z * inv_w, w * 0.5):normalized()
end
q:normalize()
local qOut = (q * quat(v.x, v.y, v.z, 0)) * quat(-q.x, -q.y, -q.z, q.w)
return vec3(qOut.x, qOut.y, qOut.z)
q:normalize()
local qOut = (q * quat(v.x, v.y, v.z, 0)) * quat(-q.x, -q.y, -q.z, q.w)
return vec3(qOut.x, qOut.y, qOut.z)
@/lua/ge/extensions/career/modules/testDrive.lua
gameplay_walk.getInVehicle(vehObj)
startPosRot = {pos = vehObj:getPosition(), rot = quat(0,0,1,0) * quat(vehObj:getRefNodeRotation())}
gameplay_walk.getInVehicle(vehObj)
startPosRot = {pos = vehObj:getPosition(), rot = quat(0,0,1,0) * quat(vehObj:getRefNodeRotation())}
@/lua/ge/extensions/editor/trafficManager.lua
currTransform = {pos = vec3(), rot = quat(), scl = 0}
currSelection = {vehicle = 0, light = 0, sign = 0}
sessionData.home.pos = vec3(sessionData.home.pos)
sessionData.home.rot = quat(sessionData.home.rot)
sessionData._loaded = true -- temporary flag, gets unset when home transform is processed
@/lua/ge/extensions/core/dynamicProps.lua
getObjectByID(propId):setActive(1)
--spawn.safeTeleport(scenetree.findObjectById(propId), (locationInfo.originPos + self.spawnOffset), quat(0, 0, 0, 0))
local spawnPos = locationInfo.originPos + self.spawnOffset
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua
if self.pinIn.rot.value then
local desiredRot = quat()
if type(self.pinIn.rot.value) == 'number' then
elseif type(self.pinIn.rot.value) == 'table' then
desiredRot = quat(self.pinIn.rot.value)
end
@/lua/ge/extensions/core/cameraModes/transition.lua
self.camLastFOV = 90
self.camLastQDir = quat(1,0,0,1)
self.camLastNearClip = 0.1
@/lua/ge/extensions/editor/util/transformUtil.lua
self.pos = vec3(0, 0, 0)
self.rot = quat(0, 0, 0, 1)
self.scl = vec3(1, 1, 1)
-- sets the position, rotation and scale of the helper. nil parameters are ignored,
-- so you can only set the rotation with :set(nil, quat(...), nil) for example
function C:set(pos, rot, scl)
pos = vec3(self.pos),
rot = quat(self.rot),
scl = self.oneDimensionalScale and self.scl or vec3(self.scl),
if im.InputFloat4("##Rot", self.inputRot, "%0." .. editor.getPreference("ui.general.floatDigitCount") .. "f") then
self.rot = quat(self.inputRot[0], self.inputRot[1], self.inputRot[2], self.inputRot[3]):normalized()
changed = true
if im.InputFloat4(self.objectName .. " Rotation", self.inputRot, "%0." .. editor.getPreference("ui.general.floatDigitCount") .. "f", im.InputTextFlags_EnterReturnsTrue) then
self.rot = quat(self.inputRot[0], self.inputRot[1], self.inputRot[2], self.inputRot[3])
changed = true
if im.InputFloat4("Rot", self.inputRot, "%0." .. editor.getPreference("ui.general.floatDigitCount") .. "f", im.InputTextFlags_EnterReturnsTrue) then
self.rot = quat(self.inputRot[0], self.inputRot[1], self.inputRot[2], self.inputRot[3])
changed = true
self.beginDragPos = vec3(self.pos)
self.beginDragRot = quat(self.rot)
self.beginDragScl = self.oneDimensionalScale and self.scl or vec3(self.scl)
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
self.rot = quat(rotation)
else
else
self.rot = self.beginDragRot * quat(rotation)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitRoadblock.lua
local params = {angle = self.pinIn.angle.value, centerAngle = self.pinIn.centerAngle.value, width = self.pinIn.width.value}
gameplay_police.placeRoadblock(vehIds, vec3(self.pinIn.pos.value), quat(self.pinIn.rot.value), params)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPlane.lua
self.pos = vec3()
self.rot = quat()
self.pos = vec3()
self.rot = quat()
end
@/lua/ge/extensions/gameplay/race/race.lua
local vehDirUp = vec3()
local vehRot = quat()
function C:updateVehicle(id, dt)
@/lua/ge/extensions/editor/crawlEditor/startingPositions.lua
if rotEditEnded[0] then
local newRot = quat(rot[0], rot[1], rot[2], rot[3])
editor.history:commitAction("Change Starting Position Area Rotation",
position = vec3(0, 0, 0),
rotation = quat(1, 0, 0, 0),
radius = 4.0
oldPosition = vec3(self.startingPosition.transform.position),
oldRotation = quat(self.startingPosition.transform.rotation),
downPos = vec3(mouseInfo._downPos),
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
self.startingPosition.transform.rotation = quat(rotation)
else
else
self.startingPosition.transform.rotation = self.beginDragRotation * quat(rotation)
end
@/lua/ge/extensions/gameplay/sites/parkingSpot.lua
local zeroVector = vec3(0,0,0)
local zeroQuat = quat(0,0,0,1)
self.pos = vec3()
self.rot = quat(0, 0, 0, 1)
self.scl = vec3()
self.pos = vec3(data.pos)
self.rot = quat(data.rot)
self.scl = vec3(data.scl)
if rot then
self.rot = quat(rot)
end
self.wasGenerated = true
self.rotOrig = quat(self.rot)
self.rot = quatFromEuler(0, 0, self.multiSpotData.spotRotation) * self.rotOrig
local backwardsQuat = quat(0, 0, 1, 0)
function C:moveResetVehicleTo(vehId, lowPrecision, backwards, addedOffsetPos, addedOffsetRot, useSafeTeleport, removeTraffic, resetVehicleInSafeTeleport, options)
local selfRot = quat(self.rot)
if backwards then
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua
self.beginDragNodeData = nil
self.beginDragRotation = quat(1, 0, 0, 0)
self.beginDragRadius = 1.0
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
local newNormal = quat(rotation)*vec3(0,1,0)
node:setNormal(newNormal)
else
local newNormal = self.beginDragRotation * quat(rotation)*vec3(0,1,0)
node:setNormal(newNormal)
@/lua/ge/extensions/editor/tech/roadArchitect/render.lua
local root2Over2 = sqrt(2) * 0.5
local rot_q0 = quat(0, 0, 0, 1) -- Some common rotations (as quaternions).
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q0 = quat(0, 0, 0, 1) -- Some common rotations (as quaternions).
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q90 = quat(0, 0, root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q270 = quat(0, 0, -root2Over2, root2Over2)
local rot_q180 = quat(0, 0, 1, 0)
local rot_q270 = quat(0, 0, -root2Over2, root2Over2)
local tgt = v:normalized()
local rot = quat()
if isGlobalZ then
end
local rot = quat()
local tgt = lat:cross(nml)
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
local vecOne = vec3(1,1,1)
local quatZero = quat(0,0,0,0)
local vecX = vec3(1,0,0)
if area and icon then
local pos, rot, scl = area:getPosition(), quat(area:getRotation()), area:getScale()
local zVec, yVec, xVec = rot*vecZ*scl.z, rot*vecY*scl.y, rot*vecX*scl.x
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
node.normal = quat(rotation)*vec3(0,1,0)
else
else
node.normal = self.beginDragRotation * quat(rotation)*vec3(0,1,0)
end
@/lua/vehicle/extensions/test/csvMetrics.lua
local pos = obj:getPosition()
local rot = quat(obj:getRotation())
@/lua/ge/extensions/freeroam/bigMapMode.lua
endMarkerData.pos = vec3(endMarkerData.pos)
endMarkerData.rot = quat(endMarkerData.rot.x, endMarkerData.rot.y, endMarkerData.rot.z, endMarkerData.rot.w)
camPath = buildTransitionPath(endMarkerData)
@/lua/ge/extensions/flowgraph/nodes/math/quaternion/direction.lua
local rot = quat()
@/lua/ge/extensions/editor/toolUtilities/gizmo.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
q = quat(tmpQuatF)
else
else
q = beginDragRot * quat(tmpQuatF)
end
@/lua/ge/extensions/editor/driftDataEditor.lua
end
transformsUtils["bigMapTp"] = createNewTransform("Big map TP", true, true, false, currDriftSpots[selectedDriftSpotId].spatialInfo.bigMapTp.pos, quat(currDriftSpots[selectedDriftSpotId].spatialInfo.bigMapTp.rot), currDriftSpots[selectedDriftSpotId].spatialInfo.bigMapTp.scl)
end
if elem.pos and type(elem.pos) == "table" and elem.pos.x and elem.pos.y and elem.pos.z then elem.pos = vec3(elem.pos) end
if elem.rot and type(elem.rot) == "table" and elem.rot.x and elem.rot.y and elem.rot.z and elem.rot.w then elem.rot = quat(elem.rot) end
if elem.scl and type(elem.scl) == "table" and elem.scl.x and elem.scl.y and elem.scl.z then elem.scl = vec3(elem.scl) end
scl = vec3(lineData.scl),
rot = quat(lineData.rot),
startDir = vec3(lineData.startDir),
pos = vec3(spotData.spatialInfo.bigMapTp.pos),
rot = quat(spotData.spatialInfo.bigMapTp.rot),
scl = vec3(spotData.spatialInfo.bigMapTp.scl)
scl = vec3(1, 1, 1):toTable(),
rot = quat(0, 0, 0, 1):toTable(),
startDir = vec3(0,0,0),
pos = camPos:toTable(),
rot = quat(0, 0, 0, 1):toTable(),
scl = vec3(1, 1, 1):toTable()
local pos = obj:getPosition()
driftData = { stuntZones = {{type = "donut", pos = pos + vec3(10, 0, 0), scl = 10},{type = "driftThrough", rot = quat(0, 0, 0, 1), pos = pos + vec3(10, 20, 0), scl = vec3(8, 1, 1)},{type = "hitPole", pos = pos + vec3(-10, 0, 0)}}}
end
cooldown = 8,
rot = quat(0, 0, 0, 1),
pos = pos + vec3(10, 20, 0),
if player then
spawn.safeTeleport(player, vec3(currDriftSpots[selectedDriftSpotId].spatialInfo.bigMapTp.pos), quat(currDriftSpots[selectedDriftSpotId].spatialInfo.bigMapTp.rot), nil, nil, nil, nil, false)
end
@/lua/ge/extensions/scenario/scenarios.lua
if o:getField('directionalWaypoint',0) == '1' then
rota = quat(o:getRotation())*vec3(1,0,0)
end
-- Because we delete vehicle that are not assigned to a controller, they have to be respawned.
-- We perform a 180 rotation (quat(0,0,1,0) * rot) here to undo the 180 rotation that will happen in
-- spawn.lua setVehicleObject() by default
local startingData = scenario.startingTransforms[vehicleName]
startingData.rot = quat(0,0,1,0) * (startingData.rot or quat())
local spawningData = createPlayerSpawningData(vehicleData.model, vehicleData.config, vehicleData.color, vehicleData.licenseText, vehicleName, startingData.pos, startingData.rot)
local startingData = scenario.startingTransforms[vehicleName]
startingData.rot = quat(0,0,1,0) * (startingData.rot or quat())
local spawningData = createPlayerSpawningData(vehicleData.model, vehicleData.config, vehicleData.color, vehicleData.licenseText, vehicleName, startingData.pos, startingData.rot)
@/lua/ge/extensions/gameplay/missions/startTrigger.lua
local function coordinatesTriggerList(trigger,locations)
table.insert(locations, {type='coordinates', level=trigger.level, pos=vec3(trigger.pos), rot=quat(trigger.rot or {0,0,0,1}), radius=trigger.radius, check=defaultLocationCheck, displayMarker=defaultLocationDisplayMarker})
end
@/lua/ge/extensions/gameplay/markers/missionMarker.lua
pos = vec3(),
rot = quat(),
radius = hardcodedRadius, -- Fixed radius of 1.5m
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua
if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
wp.normal = quat(rotation)*vec3(0,1,0)
else
else
wp.normal = self.beginDragRotation * quat(rotation)*vec3(0,1,0)
end
@/lua/ge/extensions/editor/scriptAIEditor.lua
local n = camWinData.nodes[camWinData.selectedNode]
mState.beginDragPos, mState.beginDragRotation = vec3(n.x[0], n.y[0], n.z[0]), quat(n.qx, n.qy, n.qz, n.qw)
end
elseif editor.getAxisGizmoMode() == editor.AxisGizmoMode_Rotate then
local data = { idx = idx, old = mState.beginDragRotation, new = quat(n.qx, n.qy, n.qz, n.qw) }
editor.history:commitAction("Rotate Camera Path Node", data, gizmoRotUndo, gizmoRotRedo)
q2:setFromMatrix(rotMat)
local q = mState.beginDragRotation * quat(q2.x, q2.y, q2.z, q2.w)
n.qx, n.qy, n.qz, n.qw = q.x, q.y, q.z, q.w
path.markers[i] = {
pos = vec3(n.x[0], n.y[0], n.z[0]), rot = quat(n.qx, n.qy, n.qz, n.qw),
time = n.t[0],
if isComputeRot == true then
local r1 = quat(n1.qx, n1.qy, n1.qz, n1.qw)
local r2 = quat(n2.qx, n2.qy, n2.qz, n2.qw)
local r1 = quat(n1.qx, n1.qy, n1.qz, n1.qw)
local r2 = quat(n2.qx, n2.qy, n2.qz, n2.qw)
local r3 = quat(n3.qx, n3.qy, n3.qz, n3.qw)
local r2 = quat(n2.qx, n2.qy, n2.qz, n2.qw)
local r3 = quat(n3.qx, n3.qy, n3.qz, n3.qw)
local r4 = quat(n4.qx, n4.qy, n4.qz, n4.qw)
local r3 = quat(n3.qx, n3.qy, n3.qz, n3.qw)
local r4 = quat(n4.qx, n4.qy, n4.qz, n4.qw)
if i1 == i2 then -- Edge case: Set the correct rotation to the virtual marker at the start.
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackVehicleDistanceToPos.lua
-- local wCenter, wPos = vec3(), vec3()
local vehPos, vehRot, vehVel = vec3(), quat(), vec3()
@/lua/ge/extensions/editor/objectToSplineEditor.lua
local posOffset, rotOffset = vec3(0, 0, 0), quat(0, 0, 0, 1)
if params.randomPosOffset and params.randomPosOffset ~= 0 then
@/lua/ge/extensions/flowgraph/nodes/util/randomQuaternion.lua
local q = quat(0, 0, 0, 1)
q = quatFromEuler(x, 0, 0) * q
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficSpawnGroup.lua
local pos = self.pinIn.startPos.value and vec3(self.pinIn.startPos.value)
local rot = self.pinIn.startRot.value and quat(self.pinIn.startRot.value)
local mode = self.pinIn.spawnMode.value
@/lua/ge/extensions/gameplay/race/startPosition.lua
self.pos = vec3()
self.rot = quat()
self.pos = vec3(data.pos)
self.rot = quat(data.rot)
end
self.pos = vec3(pos)
self.rot = quat(rot)
end
else
local correctedRot = vehRot * quat(0,0,-1,0)
log('D', logTag, 'safe teleporting vehicle to start position with corrected rotation')
log('D', logTag, 'safe teleporting vehicle to start position with corrected rotation')
spawn.safeTeleport(veh, vec3(newPos), quat(correctedRot), nil, nil, nil, nil, false)
end
@/lua/ge/extensions/gameplay/race/pathnode.lua
local rot = quat()
if alignMode == 'terrain' then
@/lua/ge/extensions/gameplay/rally/driveline/pointList.lua
pos = vec3(pos),
quat = quat or quat(0, 0, 0, 1),
ts = ts or 0,
@/lua/ge/extensions/core/busRouteManager.lua
if trigger.type == "busstop" then
triggerPos[trigger.name] = {trigger.name,trigger.stopName, vec3(trigger:getPosition()):toTable(), quat(trigger:getRotation()):toTable(), vec3(trigger:getScale()):toTable()}
end
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
local vecOne = vec3(1,1,1)
local quatZero = quat(0,0,0,0)
local vecX = vec3(1,0,0)
@/lua/ge/extensions/gameplay/drag/general.lua
racer.vehDirectionVectorUp = vec3()
racer.vehRot = quat()
racer.vehVelocity = vec3()
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veView.lua
if focusObj then
focusRot = quat(focusObj:getRefNodeRotation())
focusPos = focusObj:getPosition() + focusRot * view.dragOffset
@/lua/ge/extensions/editor/sidewalkSpline/populate.lua
local maxPlacements = 0
local finalRot = quat()
local forwardRot, upRot = quat(), quat()
local finalRot = quat()
local forwardRot, upRot = quat(), quat()
local tmpPosBack, tmpPosFront = vec3(), vec3()
local finalRot = quat()
local forwardRot, upRot = quat(), quat()
local tmpPosBack, tmpPosFront = vec3(), vec3()
positionArray[placementIdx] = positionArray[placementIdx] or vec3()
rotationArray[placementIdx] = rotationArray[placementIdx] or quat()
end
positionArray[placementIdx] = positionArray[placementIdx] or vec3()
rotationArray[placementIdx] = rotationArray[placementIdx] or quat()
end
@/lua/ge/extensions/gameplay/rally/transcripts/path.lua
--
-- local testQ = quat({
-- w = math.cos(theta),
@/lua/ge/extensions/core/cameraModes/relative.lua
local function rotateEuler(x, y, z, q)
q = q or quat()
q = quatFromEuler(0, z, 0) * q
@/lua/ge/extensions/gameplay/rally/transcripts/entry.lua
if not (self.vehicle_data.vehicle_data and self.vehicle_data.vehicle_data.quat) then return nil end
return quat(self.vehicle_data.vehicle_data.quat)
end
pos = vec3(markerData.pos.x, markerData.pos.y, markerData.pos.z),
rot = quat(markerData.rot.x, markerData.rot.y, markerData.rot.z, markerData.rot.w),
time = markerData.time,
@/lua/ge/extensions/career/modules/tether.lua
if area then
local pos, rot, scl = area:getPosition(), quat(area:getRotation()), area:getScale()
local zVec, yVec, xVec = rot*vecZ*scl.z, rot*vecY*scl.y, rot*vecX*scl.x
@/lua/ge/extensions/editor/sitesEditor/parkingSpots.lua
if ps.rotOrig then
ps.rot = quat(ps.rotOrig)
ps.rotOrig = nil
local old = {pos = transformUtil.beginDragPos or self.current.pos, rot = transformUtil.beginDragRot or self.current.rot, scl = transformUtil.beginDragScl or self.current.scl}
local new = {pos = vec3(transformUtil.pos), rot = quat(transformUtil.rot), scl = vec3(transformUtil.scl)}
editor.history:commitAction("Update Transform of "..self.current.name,
@/lua/ge/extensions/editor/meshEditor.lua
local rotation = gizmoTransform:toQuatF()
mesh:setNodeNormal(nodeID, quat(rotation):__mul(upVector))
else
@/lua/ge/extensions/gameplay/crawl/saveSystem.lua
if type(n.rotation) == 'table' and #n.rotation == 4 then
node.rotation = quat(n.rotation[1], n.rotation[2], n.rotation[3], n.rotation[4])
elseif type(n.rotation) == 'table' then
elseif type(n.rotation) == 'table' then
node.rotation = quat(n.rotation.x or 0, n.rotation.y or 0, n.rotation.z or 0, n.rotation.w or 1)
end
position = vec3(data.transform and data.transform.position or {0, 0, 0}),
rotation = quat(data.transform and data.transform.rotation or {0, 0, 0, 1}),
radius = data.transform and data.transform.radius or 10.0
@/lua/ge/extensions/util/trackBuilder/splineTrack.lua
local cQ = core_camera.getQuat()
local q = quat(cQ.x, cQ.y, cQ.z, cQ.w)
@/lua/ge/extensions/util/trackBuilder/cameraTransition.lua
local cQ = core_camera.getQuat()
oldQuat = quat(cQ.x,cQ.y,cQ.z,cQ.w)
@/lua/ge/extensions/core/cameraModes/free.lua
local rotEulerTemp = quat()
local function setRotateEuler(x, y, z, qSource, qDest)
local inputVec, acc, forceVec, tempVec = vec3(), vec3(), vec3(), vec3()
local qdir, qdirLook = quat(), quat()
function C:update(data)
local inputVec, acc, forceVec, tempVec = vec3(), vec3(), vec3(), vec3()
local qdir, qdirLook = quat(), quat()
function C:update(data)
@/lua/ge/extensions/gameplay/markers/walkingMarker.lua
local vecOne = vec3(1,1,1)
local quatZero = quat(0,0,0,0)
local vecX = vec3(1,0,0)
if area and icon then
local pos, rot, scl = area:getPosition(), quat(area:getRotation()), area:getScale()
local zVec, yVec, xVec = rot*vecZ*scl.z, rot*vecY*scl.y, rot*vecX*scl.x