Skip to content

Commit

Permalink
Fixes visual for invalid normals
Browse files Browse the repository at this point in the history
  • Loading branch information
nomnomab committed Mar 27, 2023
1 parent cde4f3d commit a511b1c
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Runtime/Shapes/Arrow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public void Draw(Color color) {
headLength = VisualPhysicsSettingsHandler.GetEditorSettings().RegularArrowLength;
}

Quaternion rot = direction == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(direction);
Quaternion rot = direction == Vector3.zero || VisualUtils.IsNan(direction) ? Quaternion.identity : Quaternion.LookRotation(direction);
Vector3 backDir = Vector3.back * headLength;
Vector3 right = rot * Quaternion.Euler(headAngle, 0, 0) * backDir;
Vector3 left = rot * Quaternion.Euler(-headAngle, 0, 0) * backDir;
Expand Down
2 changes: 1 addition & 1 deletion Runtime/Shapes/Circle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void Draw(Color color) {
cachePosition.y = sin;
cachePosition.z = 0;

Quaternion rot = upDirection == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(upDirection);
Quaternion rot = upDirection == Vector3.zero || VisualUtils.IsNan(upDirection) ? Quaternion.identity : Quaternion.LookRotation(upDirection);

cachePosition = rot * cachePosition;
cachePosition += origin;
Expand Down
10 changes: 7 additions & 3 deletions Runtime/VisualUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ internal static void DrawCircle(in Vector3 center, in Vector3 upwardDirection, i
cachePosition.y = sin;
cachePosition.z = 0;

Quaternion rot = upwardDirection == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(upwardDirection);
Quaternion rot = upwardDirection == Vector3.zero || IsNan(upwardDirection) ? Quaternion.identity : Quaternion.LookRotation(upwardDirection);

cachePosition = rot * cachePosition;
cachePosition += center;
Expand Down Expand Up @@ -110,7 +110,7 @@ internal static void DrawNormalCircle(in Vector3 center, in Vector3 upwardDirect
cachePosition.y = sin;
cachePosition.z = 0;

Quaternion rot = upwardDirection == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(upwardDirection);
Quaternion rot = upwardDirection == Vector3.zero || IsNan(upwardDirection) ? Quaternion.identity : Quaternion.LookRotation(upwardDirection);

cachePosition = rot * cachePosition;
cachePosition += center + upwardDirection * settings.CircleDistance;
Expand Down Expand Up @@ -280,7 +280,7 @@ internal static void DrawArrow(
arrowHeadLength = VisualPhysicsSettingsHandler.GetEditorSettings().RegularArrowLength;
}

Quaternion rot = direction == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(direction);
Quaternion rot = direction == Vector3.zero || IsNan(direction) ? Quaternion.identity : Quaternion.LookRotation(direction);
Vector3 backDir = Vector3.back * arrowHeadLength;
Vector3 right = rot * Quaternion.Euler(arrowHeadAngle, 0, 0) * backDir;
Vector3 left = rot * Quaternion.Euler(-arrowHeadAngle, 0, 0) * backDir;
Expand Down Expand Up @@ -310,5 +310,9 @@ internal static void DrawRay(in Vector3 start, in Vector3 direction, in Color co
Debug.DrawRay(start, direction, color, drawTime, true);
#endif
}

internal static bool IsNan(Vector3 vector) {
return float.IsNaN(vector.x) || float.IsNaN(vector.y) || float.IsNaN(vector.z);
}
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.nomnom.raycast-visualization",
"version": "2.2.0",
"version": "2.2.1",
"displayName": "Nomnom's Raycast Visualization",
"description": "This asset allows users to view debug visuals for all raycast methods.",
"unity": "2020.3",
Expand Down

0 comments on commit a511b1c

Please sign in to comment.