From 07cfa40727bfc1eabdfd65c3cbc6948152364314 Mon Sep 17 00:00:00 2001 From: QuantumCoderQC Date: Sun, 31 Oct 2021 23:06:11 +0100 Subject: [PATCH] add normal output for pick rb node --- Sources/armory/logicnode/PickObjectNode.hx | 9 ++++++--- blender/arm/logicnode/physics/LN_pick_rb.py | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Sources/armory/logicnode/PickObjectNode.hx b/Sources/armory/logicnode/PickObjectNode.hx index d021808f..f1903cfd 100644 --- a/Sources/armory/logicnode/PickObjectNode.hx +++ b/Sources/armory/logicnode/PickObjectNode.hx @@ -4,8 +4,6 @@ import iron.math.Vec4; class PickObjectNode extends LogicNode { - var v = new Vec4(); - public function new(tree: LogicTree) { super(tree); } @@ -24,9 +22,14 @@ class PickObjectNode extends LogicNode { if (from == 0) { // Object return rb.object; } - else { // Hit + else if(from == 1){ // Hit + var v = new Vec4(); return v.set(physics.hitPointWorld.x, physics.hitPointWorld.y, physics.hitPointWorld.z); } + else { // Normal + var v = new Vec4(); + return v.set(physics.hitNormalWorld.x, physics.hitNormalWorld.y, physics.hitNormalWorld.z, 0); + } #end return null; } diff --git a/blender/arm/logicnode/physics/LN_pick_rb.py b/blender/arm/logicnode/physics/LN_pick_rb.py index 25d926b0..38d20014 100644 --- a/blender/arm/logicnode/physics/LN_pick_rb.py +++ b/blender/arm/logicnode/physics/LN_pick_rb.py @@ -13,11 +13,12 @@ class PickObjectNode(ArmLogicTreeNode): @output RB: the object that was hit @output Hit: the hit position in world coordinates + @output Normal: the hit normal in world coordinates """ bl_idname = 'LNPickObjectNode' bl_label = 'Pick RB' arm_section = 'ray' - arm_version = 1 + arm_version = 2 def arm_init(self, context): self.add_input('ArmVectorSocket', 'Screen Coords') @@ -25,3 +26,4 @@ class PickObjectNode(ArmLogicTreeNode): self.add_output('ArmNodeSocketObject', 'RB') self.add_output('ArmVectorSocket', 'Hit') + self.add_output('ArmVectorSocket', 'Normal')