openDecal/Managed/Decal.Adapter/Decal.Adapter.Wrappers/Vector3Object.cs
erik d1442e3747 Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild:

Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil)
Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs
  - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters
  - Decal.Core, DecalControls, DecalRender, D3DService
Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL
Phase 4: DenAgent WinForms tray application
Phase 5: WiX installer and build script

25 C# projects building with 0 errors.
Native C++ projects require VS 2022 + Windows SDK (x86).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:27:56 +01:00

74 lines
1.2 KiB
C#

namespace Decal.Adapter.Wrappers;
public class Vector3Object
{
private double mX;
private double mY;
private double mZ;
public double X => mX;
public double Y => mY;
public double Z => mZ;
public Vector3Object(double x, double y, double z)
{
mX = x;
mY = y;
mZ = z;
}
public override string ToString()
{
return "{X = " + mX + ", Y = " + mY + ", Z = " + mZ + "}";
}
public override bool Equals(object obj)
{
if (obj is Vector3Object)
{
Vector3Object vector3Object = (Vector3Object)obj;
if (mX == vector3Object.mX && mY == vector3Object.mY)
{
return mZ == vector3Object.mZ;
}
return false;
}
return false;
}
public bool Equals(Vector3Object obj)
{
if (obj == null)
{
return false;
}
if (mX == obj.mX && mY == obj.mY)
{
return mZ == obj.mZ;
}
return false;
}
public override int GetHashCode()
{
return mX.GetHashCode() ^ mY.GetHashCode() ^ mZ.GetHashCode();
}
public static bool operator ==(Vector3Object a, Vector3Object b)
{
if (object.Equals(a, null))
{
return object.Equals(b, null);
}
return a.Equals(b);
}
public static bool operator !=(Vector3Object a, Vector3Object b)
{
return !(a == b);
}
}