dies ist eine Script- und keine Editorfrage, ein passenderes Unterforum fiel mir aber nicht ein. Bei Bedarf das Thema also bitte verschieben.
Ich wüsste gerne die Funktionsweise von worldToLocal - also nicht deren Aufbau, der ist eindeutig in Giants' Script-Doku gegeben, sondern wie sie was ausrechnet.
Mein Problem ist nämlich wie folgt. Ich möchte eine bestimmte Node - die pipeRaycastNode - eines Combines im Verhältnis zur combine.rootNode ausrechnen. In meinem Beispiel benutze ich den standard Deutz 6095. Bei ausgefahrenem Rohr müsste das Ergebnis immer (pi mal Daumen) um die 5.5 liegen:
Code: Select all
local cwX, cwY, cwZ = getWorldTranslation(combine.rootNode);
local prnToCombineX, prnToCombineY, prnToCombineZ = worldToLocal(combine.pipeRaycastNode, cwX, cwY, cwZ);
local prnwX, prnwY, prnwZ = getWorldTranslation(combine.pipeRaycastNode);
local cprnDist = Utils.vector2Length(cwX-prnwX, cwZ-prnwZ);
Code: Select all
cwX = -668.919495
cwZ = -128.467743
prnwX = -668.922913
prnwZ = -134.023926
prnToCombineX = 0.002420
prnToCombineZ = 6.830016
cprnDist = 5.556184
Edit: Im Endeffekt bringt mir worldToLocal also die einzelnen Distanzen der Achsenpunkte (X zu X, Y zu Y, Z zu Z) - die man also auch pi mal Daumen mit einfacher Subtraktion ausrechnen könnte. Was ich aber eher bräuchte wäre die Distanz jener Punkte bei einem theoretisch genordeten Drescher, so dass, um beim Beispiel zu bleiben, die PipeRaycastNode wirklich als X-Entfernung ausgegeben wird.
[Edit Ende]
Edit #2: Ich habe noch ne Grafik gemacht um zu verdeutlichen was ich bei der ganzen Geschichte eigentlich suche. Auf der Grafik wäre das die Länge der roten Linie.
[Edit Ende]
Könnte mir also jemand erklären was genau worldToLocal ausgibt / wie man es sich vorstellen muss?
Danke im Voraus,
--Jakob