vec3¶
Quelle: base/tealdef/scripts/vec3.d.tl
Hinweise
Typen der reinen Lua-Bibliothek für 3D-Vektoren /scripts/vec3.tl (Vec3Serialized). Die Vektoren sind
gewöhnliche Tabellen {x = ..., y = ..., z = ...} mit +, -, * (Zahl mal Vektor) und / (Vektor
durch Zahl). Konstruktionsskripte nutzen sie zusammen mit /scripts/mat4.tl.
Du lädst sie mit local vec3 = ug_require "/scripts/vec3.tl" as Vec3Serialized.
Vec3iSerialized¶
record global base/tealdef/scripts/vec3.d.tl:3
global record Vec3iSerialized
Hinweise
Namensraum des ganzzahligen 3D-Vektortyps Vec3i.
Vec3iSerialized.Vec3i¶
record base/tealdef/scripts/vec3.d.tl:4
record Vec3i
Hinweise
3D-Vektor mit ganzzahligen Komponenten als einfache Tabelle {x = ..., y = ..., z = ...}.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
x |
integer |
X-Komponente. |
y |
integer |
Y-Komponente. |
z |
integer |
Z-Komponente (in Weltkoordinaten die Höhe). |
Vec3Serialized¶
record global base/tealdef/scripts/vec3.d.tl:11
global record Vec3Serialized
Laden: local vec3 = require "::/scripts/vec3.tl" as Vec3Serialized
Hinweise
Die 3D-Vektorbibliothek, die ug_require "/scripts/vec3.tl" zurückgibt, und der Namensraum ihres Typs Vec3.
Funktionen
new(x : number, y : number, z : number) : Vec3 base/tealdef/scripts/vec3.d.tl:25
Aufruf: vec3.new(…)
Hinweise
Erzeugt einen 3D-Vektor mit Rechenoperatoren.
| Parameter | Typ | Beschreibung |
|---|---|---|
x |
number |
X-Komponente. |
y |
number |
Y-Komponente. |
z |
number |
Z-Komponente. |
Rückgabe Vec3: Der neue Vektor.
Beispiel
Im Basisspiel verwendet: 1.041-mal in 85 Dateien
base/content/base/base/metadataanimationutil.lua:79
base/content/depots/rail/rail/rail_depot.script.lua:360
base/content/depots/rail/rail/rail_maint_station.script.lua:174
base/content/depots/road/road/road_depot/road_depot.script.lua:216
base/content/depots/road/road/road_maint_station.script.lua:259
base/content/depots/road/road/tram_depot/tram_depot.script.lua:247
… und 79 weitere Dateien.
degToRad(dx : number, dy : number, dz : number) : Vec3 base/tealdef/scripts/vec3.d.tl:26
Aufruf: vec3.degToRad(…)
Hinweise
Rechnet drei Winkel von Grad in Bogenmaß um und gibt sie als Vektor zurück.
| Parameter | Typ | Beschreibung |
|---|---|---|
dx |
number |
Winkel in Grad, landet in x. |
dy |
number |
Winkel in Grad, landet in y. |
dz |
number |
Winkel in Grad, landet in z. |
Rückgabe Vec3: Vektor mit den Winkeln im Bogenmaß.
Im Basisspiel verwendet: 34-mal in 7 Dateien
base/content/landmarks/hq/hq/headquarter.script.tl:337
base/content/stations/air/air/airfield.script.lua:261
base/content/stations/air/air/airport.script.lua:172
transf = transf.rotZYXTransl(vec3.degToRad(0, 0, 0), vec3.new(airportLimitEnd - 5, runway1YCoord, 0 )),
base/content/stations/air/air/heliport/heliport.script.lua:414
base/content/stations/rail/rail/modular_station/modular_station.script.lua:534
transf = transf.rotZYXTransl(vec3.degToRad(0.0, 0.0, 0.0), vec3.new(i * platformWidth + offset, j * platformLength, 0)),
base/content/warehouses/warehouses/modules.script.lua:29
… und 1 weitere Dateien.
add(v1 : Vec3, v2 : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:28
Aufruf: vec3.add(…)
Hinweise
Gibt v1 + v2 zurück.
Rückgabe Vec3
Im Basisspiel verwendet: 14-mal in 5 Dateien
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:47
base/content/mission/mission/mission_task_util.tl:194
base/content/scripts/scripts/construction/constructionutil.lua:475
local fence_point = vec3.sub(vec3.add(vec3.new(xStart, yStart, zStart), vec3.mul(build_fence, fenceVectorSegment)), vec3.mul(0.5, fenceVectorSegment))
base/content/stations/rail/rail/modular_station/modular_station.script.lua:692
base/content/stations/water/water/modules.script.lua:894
sub(v1 : Vec3, v2 : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:29
Aufruf: vec3.sub(…)
Hinweise
Gibt v1 - v2 zurück.
Rückgabe Vec3
Im Basisspiel verwendet: 7-mal in 5 Dateien
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:49
base/content/mission/mission/mission_task_util.tl:224
base/content/scripts/scripts/construction/constructionutil.lua:475
local fence_point = vec3.sub(vec3.add(vec3.new(xStart, yStart, zStart), vec3.mul(build_fence, fenceVectorSegment)), vec3.mul(0.5, fenceVectorSegment))
base/content/scripts/scripts/construction/street_util_serialized.tl:23
base/content/stations/rail/rail/modular_station/modular_station.script.lua:684
mul(f : number, v : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:30
Aufruf: vec3.mul(…)
Hinweise
Gibt den Vektor v mit der Zahl f skaliert zurück.
Rückgabe Vec3
Im Basisspiel verwendet: 20-mal in 6 Dateien
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:43
base/content/mission/mission/mission_task_util.tl:194
base/content/scripts/scripts/construction/constructionutil.lua:475
local fence_point = vec3.sub(vec3.add(vec3.new(xStart, yStart, zStart), vec3.mul(build_fence, fenceVectorSegment)), vec3.mul(0.5, fenceVectorSegment))
base/content/scripts/scripts/construction/laneutil.lua:50
base/content/scripts/scripts/construction/street_util_serialized.tl:38
dlcs/urbangames_deluxe_upgrade_pack/content/animal/animal/animal.script.lua:15
div(v : Vec3, d : number) : Vec3 base/tealdef/scripts/vec3.d.tl:31
Aufruf: vec3.div(…)
Hinweise
Gibt den Vektor v zurück, jede Komponente durch d geteilt.
Rückgabe Vec3
dot(v1 : Vec3, v2 : Vec3) : number base/tealdef/scripts/vec3.d.tl:33
Aufruf: vec3.dot(…)
Hinweise
Skalarprodukt v1.x * v2.x + v1.y * v2.y + v1.z * v2.z.
Rückgabe number
cross(v1 : Vec3, v2 : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:34
Aufruf: vec3.cross(…)
Hinweise
Kreuzprodukt v1 × v2 (rechtshändig).
Rückgabe Vec3
length(v : Vec3) : number base/tealdef/scripts/vec3.d.tl:39
Aufruf: vec3.length(…)
Get the length (magnitude) of the vector.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector |
Rückgabe number: length of the vector
Im Basisspiel verwendet: 3-mal in 3 Dateien
base/content/industries/industryutil.lua:334
local length = vec3.length(vec3.new( curve[2][1] - curve[1][1], curve[2][2] - curve[1][2], curve[2][3] - curve[1][3] ))
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:22
base/content/scripts/scripts/construction/constructionutil.lua:466
distance(v1 : Vec3, v2 : Vec3) : number base/tealdef/scripts/vec3.d.tl:44
Aufruf: vec3.distance(…)
Get the distance between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec3 |
first vector |
v2 |
Vec3 |
second vector |
Rückgabe number: distance between the vectors
Im Basisspiel verwendet: 7-mal in 5 Dateien
base/content/industries/fieldutil.lua:269
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:38
base/content/mission/mission/mission_task_util.tl:197
base/content/scripts/scripts/construction/laneutil.lua:46
local length = vec3.distance(vec3.new(points[j+0][1], points[j+0][2], points[j+0][3]), vec3.new(points[j+3][1], points[j+3][2],points[j+3][3]))
base/content/scripts/scripts/construction/street_util_serialized.tl:36
distance2(v1 : Vec3, v2 : Vec3) : number base/tealdef/scripts/vec3.d.tl:49
Aufruf: vec3.distance2(…)
Get the squared distance between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec3 |
first vector |
v2 |
Vec3 |
second vector |
Rückgabe number: squared distance between the vectors
normalize(v : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:54
Aufruf: vec3.normalize(…)
Normalize the vector (make it unit length).
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector to normalize |
Rückgabe Vec3: normalized vector
Im Basisspiel verwendet: 7-mal in 3 Dateien
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:35
base/content/scripts/scripts/construction/laneutil.lua:44
base/content/scripts/scripts/construction/street_util_serialized.tl:37
normalizeWithFallback(v : Vec3, f : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:59
Aufruf: vec3.normalizeWithFallback(…)
Normalize the vector with a fallback if zero length.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector to normalize |
f |
Vec3 |
fallback vector |
Rückgabe Vec3: normalized vector or fallback
angleUnit(v1 : Vec3, v2 : Vec3) : number base/tealdef/scripts/vec3.d.tl:65
Aufruf: vec3.angleUnit(…)
Get the angle between two unit vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec3 |
first unit vector |
v2 |
Vec3 |
second unit vector |
Rückgabe number: angle in radians
Im Basisspiel verwendet: 3-mal in 3 Dateien
base/content/infrastructure/street_construction/street_construction/street_constructions.script.lua:39
base/content/scripts/scripts/construction/laneutil.lua:47
base/content/scripts/scripts/construction/street_util_serialized.tl:59
angle(v1 : Vec3, v2 : Vec3) : number base/tealdef/scripts/vec3.d.tl:70
Aufruf: vec3.angle(…)
Get the angle between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec3 |
first vector |
v2 |
Vec3 |
second vector |
Rückgabe number: angle in radians
xyAngle(v : Vec3) : number base/tealdef/scripts/vec3.d.tl:74
Aufruf: vec3.xyAngle(…)
Get the angle in the XY plane.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector |
Rückgabe number: angle in radians
toArray(v : Vec3) : Table3 base/tealdef/scripts/vec3.d.tl:79
Aufruf: vec3.toArray(…)
Convert vector to an array of three numbers.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector |
Rückgabe Table3: array with x, y, z components
fromArray(t : Table3) : Vec3 base/tealdef/scripts/vec3.d.tl:83
Aufruf: vec3.fromArray(…)
Create vector from an array of three numbers.
| Parameter | Typ | Beschreibung |
|---|---|---|
t |
Table3 |
array with x, y, z components |
Rückgabe Vec3: vector
print(v : Vec3) : string base/tealdef/scripts/vec3.d.tl:88
Aufruf: vec3.print(…)
Convert vector to a string representation.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec3 |
vector |
Rückgabe string: string representation
Vec3Serialized.Table3¶
record base/tealdef/scripts/vec3.d.tl:12
record Table3 is {number}
of lenght 3
Im Basisspiel verwendet: 2-mal in 1 Datei
base/content/scripts/scripts/vec3.tl:95
Vec3Serialized.Vec3¶
record base/tealdef/scripts/vec3.d.tl:14
record Vec3
Hinweise
3D-Vektor als einfache Tabelle {x = ..., y = ..., z = ...}. Vektoren aus new (und aus den Operatoren)
haben eine Metatabelle, deshalb funktionieren v1 + v2, v1 - v2, f * v und v / d.
Im Basisspiel verwendet: 100-mal in 7 Dateien
base/content/landmarks/hq/hq/headquarter.script.tl:314
base/content/mission/mission/mission_task_util.tl:159
base/content/scripts/scripts/construction/collider_util_serialized.tl:6
collider_util_serialized.createBox = function(center : Vec3Serialized.Vec3, halfExtents : Vec3Serialized.Vec3) : ColliderUtilSerialized.Collider
base/content/scripts/scripts/construction/street_util_serialized.tl:19
base/content/scripts/scripts/mat4.tl:94
base/content/scripts/scripts/vec3.tl:3
… und 1 weitere Dateien.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
x |
number |
X-Komponente. |
y |
number |
Y-Komponente. |
z |
number |
Z-Komponente (zeigt in Welt- und Modellkoordinaten nach oben). |
Funktionen
metamethod __add(v1 : Vec3, v2 : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:19
Hinweise
Komponentenweise Summe v1 + v2.
Rückgabe Vec3
metamethod __sub(v1 : Vec3, v2 : Vec3) : Vec3 base/tealdef/scripts/vec3.d.tl:20
Hinweise
Komponentenweise Differenz v1 - v2.
Rückgabe Vec3