Dot and cross product nodes

This commit is contained in:
barsdeveloper
2023-05-20 00:42:04 +02:00
parent 487cf221d1
commit 69660a84fa
5 changed files with 87 additions and 5 deletions

View File

@@ -323,6 +323,26 @@ const tests = [
development: false,
variadic: false,
},
{
name: "SIN",
value: String.raw`
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_26" ExportPath=/Script/BlueprintGraph.K2Node_CallFunction'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_CallFunction_26"'
bIsPureFunc=True
FunctionReference=(MemberParent=/Script/CoreUObject.Class'"/Script/Engine.KismetMathLibrary"',MemberName="Sin")
NodePosX=-256
NodePosY=-256
NodeGuid=FE2CD3AF6DF14671A45FB273B5DDDF8E
CustomProperties Pin (PinId=E48C5BE04F244CCFA93C5DF17AA41727,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nKismet Math Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=/Script/CoreUObject.Class'"/Script/Engine.KismetMathLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__KismetMathLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=ED71A80DC02B45518D8D016209E95FB6,PinName="A",PinToolTip="A\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=B89EE79C0898454BB00D8335BE922ED3,PinName="ReturnValue",PinToolTip="Return Value\nFloat (double-precision)\n\nReturns the sine of A (expects Radians)",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
`,
size: [12, 3],
pins: 2,
delegate: false,
development: false,
variadic: false,
},
]
generateNodeTests(tests)

33
dist/ueblueprint.js vendored
View File

@@ -3605,6 +3605,12 @@ class ObjectEntity extends IEntity {
if (memberName.startsWith("Conv_")) {
return "" // Conversion nodes do not have visible names
}
if (memberName.startsWith("Cross_")) {
return "cross"
}
if (memberName.startsWith("Dot_")) {
return "dot"
}
if (memberName.startsWith("EqualEqual_")) {
return "=="
}
@@ -3654,6 +3660,13 @@ class ObjectEntity extends IEntity {
case "Not_PreBool": return "NOT"
case "Sqrt": return "SQRT"
case "Square": return "^2"
// Dot products not repecting MemberName pattern
case "CrossProduct2D": return "cross"
case "Vector4_CrossProduct3": return "cross3"
case "DotProduct2D":
case "Vector4_DotProduct":
return "dot"
case "Vector4_DotProduct3": return "dot3"
}
break
case Configuration.paths.blueprintSetLibrary:
@@ -8523,6 +8536,8 @@ class NodeElement extends ISelectableDraggableElement {
if (
memberName.startsWith("And_")
|| memberName.startsWith("Boolean") // Boolean logic operations
|| memberName.startsWith("Cross_")
|| memberName.startsWith("Dot_")
|| memberName.startsWith("Not_")
|| memberName.startsWith("Or_")
|| memberName.startsWith("Percent_")
@@ -8530,22 +8545,38 @@ class NodeElement extends ISelectableDraggableElement {
) {
return VariableOperationNodeTemplate
}
switch (nodeEntity.FunctionReference.MemberName) {
switch (memberName) {
case "Abs":
case "Array_Add":
case "Array_Add":
case "Array_Identical":
case "BMax":
case "BMin":
case "CrossProduct2D":
case "DotProduct2D":
case "Exp":
case "FMax":
case "FMin":
case "GetPI":
case "Max":
case "MaxInt64":
case "Min":
case "MinInt64":
case "Sqrt":
case "Square":
case "Vector4_CrossProduct3":
case "Vector4_DotProduct":
case "Vector4_DotProduct3":
// Trigonometry
case "Acos":
case "Asin":
case "Cos":
case "DegAcos":
case "DegCos":
case "DegSin":
case "DegTan":
case "Sin":
case "Tan":
return VariableOperationNodeTemplate
}
}

File diff suppressed because one or more lines are too long

View File

@@ -118,6 +118,8 @@ export default class NodeElement extends ISelectableDraggableElement {
if (
memberName.startsWith("And_")
|| memberName.startsWith("Boolean") // Boolean logic operations
|| memberName.startsWith("Cross_")
|| memberName.startsWith("Dot_")
|| memberName.startsWith("Not_")
|| memberName.startsWith("Or_")
|| memberName.startsWith("Percent_")
@@ -125,22 +127,38 @@ export default class NodeElement extends ISelectableDraggableElement {
) {
return VariableOperationNodeTemplate
}
switch (nodeEntity.FunctionReference.MemberName) {
switch (memberName) {
case "Abs":
case "Array_Add":
case "Array_Add":
case "Array_Identical":
case "BMax":
case "BMin":
case "CrossProduct2D":
case "DotProduct2D":
case "Exp":
case "FMax":
case "FMin":
case "GetPI":
case "Max":
case "MaxInt64":
case "Min":
case "MinInt64":
case "Sqrt":
case "Square":
case "Vector4_CrossProduct3":
case "Vector4_DotProduct":
case "Vector4_DotProduct3":
// Trigonometry
case "Acos":
case "Asin":
case "Cos":
case "DegAcos":
case "DegCos":
case "DegSin":
case "DegTan":
case "Sin":
case "Tan":
return VariableOperationNodeTemplate
}
}

View File

@@ -681,6 +681,12 @@ export default class ObjectEntity extends IEntity {
if (memberName.startsWith("Conv_")) {
return "" // Conversion nodes do not have visible names
}
if (memberName.startsWith("Cross_")) {
return "cross"
}
if (memberName.startsWith("Dot_")) {
return "dot"
}
if (memberName.startsWith("EqualEqual_")) {
return "=="
}
@@ -730,6 +736,13 @@ export default class ObjectEntity extends IEntity {
case "Not_PreBool": return "NOT"
case "Sqrt": return "SQRT"
case "Square": return "^2"
// Dot products not respecting MemberName pattern
case "CrossProduct2D": return "cross"
case "Vector4_CrossProduct3": return "cross3"
case "DotProduct2D":
case "Vector4_DotProduct":
return "dot"
case "Vector4_DotProduct3": return "dot3"
}
break
case Configuration.paths.blueprintSetLibrary: