mit den Weltkoordinaten, bzw. den Rückgabewerten von EntityBoundingBox().
Ich möchte von einem Entity die Eckpunkte als Weltkoordinaten haben, das Model/Entity ist ein
Mauerstück und ich möchte das nächste Mauerstück genau an das erste dransetzen.
Laut Hilfe und den Examples die ich mir angeschaut habe geht das mit EntityBoundingBox(),
also habe ich folgenden Code (Auszug):
Code: Alles auswählen
x1 = EntityBoundingBox(#Mauer1, #PB_Entity_MinBoundingBoxX | #PB_Entity_WorldBoundingBox)
y1 = EntityBoundingBox(#Mauer1, #PB_Entity_MinBoundingBoxY | #PB_Entity_WorldBoundingBox)
z1 = EntityBoundingBox(#Mauer1, #PB_Entity_MinBoundingBoxZ | #PB_Entity_WorldBoundingBox)
x2 = EntityBoundingBox(#Mauer1, #PB_Entity_MaxBoundingBoxX | #PB_Entity_WorldBoundingBox)
y2 = EntityBoundingBox(#Mauer1, #PB_Entity_MaxBoundingBoxY | #PB_Entity_WorldBoundingBox)
z2 = EntityBoundingBox(#Mauer1, #PB_Entity_MaxBoundingBoxZ | #PB_Entity_WorldBoundingBox)
Debug("EntityBoundingBox welt x1: " + x1)
Debug("EntityBoundingBox welt y1: " + y1)
Debug("EntityBoundingBox welt z1: " + z1)
Debug("EntityBoundingBox welt x2: " + x2)
Debug("EntityBoundingBox welt y2: " + y2)
Debug("EntityBoundingBox welt z2: " + z2)
[16:05:47] EntityBoundingBox welt x1: -0.5
[16:05:47] EntityBoundingBox welt y1: -0.5
[16:05:47] EntityBoundingBox welt z1: -0.5
[16:05:47] EntityBoundingBox welt x2: 0.5
[16:05:47] EntityBoundingBox welt y2: 0.5
[16:05:47] EntityBoundingBox welt z2: 0.5
Und hier verstehe ich nun nicht warum bekomme ich diese Weltkoordinaten ?
1.) Mein Model hat KEIN Seitenverhältnis von 1/1/1, es ist länger als breit und relativ schmal.
Es kann doch somit nicht genau 1 Welteinheit lang/breit/tief sein ? Mal abgesehen davon das es
auch nicht an 0,0,0 gesetzt ist.
2.) Es ist völlig egal wie ich das Model bzw. Entity mit ScaleEntity und/oder MoveEntity "bearbeite",
ich erhalte immer diese Weltkoordinaten.
Im englischen Forum fand ich ein ähnliches Problem, welches wohl unter anderem dadurch gelöst wurde,
das RenderWorld() vor dem Aufruf von EntityBoundingBox() ausgeführt wurde, aber das ändert bei mir
leider nichts.
Desweiteren lasse ich mir danach noch die lokalen Eckpunkte zurückgeben, diese spiegeln dann auch
das tatsäckliche Seitenverhältnis des Models wieder. Und eine anschließende Konvertierung mittels
ConvertLocalToWorldPosition() klappt auch, hier bemerke ich dann auch Auswirkungen von Move oder Scale.
Allerdings würde ich mir ja gerne diese Umrechnung ersparen und über EntityBoundingBox() gleich die
Weltkoordinaten ermitteln.
Mache ich da irgendeinen Denkfehler?