Преглед на файлове

Added almost equal for vector2 and vector4

Christian Wolfgang преди 5 години
родител
ревизия
3af8bab010
променени са 2 файла, в които са добавени 22 реда и са изтрити 0 реда
  1. 10 0
      math32/vector2.go
  2. 12 0
      math32/vector4.go

+ 10 - 0
math32/vector2.go

@@ -404,3 +404,13 @@ func (v *Vector2) InTriangle(p0, p1, p2 *Vector2) bool {
 
 	return s >= 0 && t >= 0 && (s+t) < 2*A*sign
 }
+
+// AlmostEquals returns whether the vector is almost equal to another vector within the specified tolerance.
+func (v *Vector2) AlmostEquals(other *Vector2, tolerance float32) bool {
+
+	if (Abs(v.X - other.X) < tolerance) &&
+		(Abs(v.Y - other.Y) < tolerance) {
+		return true
+	}
+	return false
+}

+ 12 - 0
math32/vector4.go

@@ -630,3 +630,15 @@ func (v *Vector4) Clone() *Vector4 {
 
 	return NewVector4(v.X, v.Y, v.Z, v.W)
 }
+
+// AlmostEquals returns whether the vector is almost equal to another vector within the specified tolerance.
+func (v *Vector4) AlmostEquals(other *Vector4, tolerance float32) bool {
+
+	if (Abs(v.X - other.X) < tolerance) &&
+		(Abs(v.Y - other.Y) < tolerance) &&
+		(Abs(v.Z - other.Z) < tolerance) &&
+		(Abs(v.W - other.W) < tolerance) {
+		return true
+	}
+	return false
+}