mirror of
https://github.com/MikuLeaks/MikuSB.git
synced 2026-06-04 17:04:13 +00:00
129 lines
2.3 KiB
C#
129 lines
2.3 KiB
C#
namespace MikuSB.Common.Util;
|
|
|
|
public class Position
|
|
{
|
|
public Position(float x, float y, float z)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
Z = z;
|
|
}
|
|
|
|
//public Position(Proto.Position position)
|
|
//{
|
|
// X = position.X;
|
|
// Y = position.Y;
|
|
// Z = position.Z;
|
|
//}
|
|
|
|
public Position()
|
|
{
|
|
X = 0;
|
|
Y = 0;
|
|
Z = 0;
|
|
}
|
|
|
|
public Position(Position position)
|
|
{
|
|
X = position.X;
|
|
Y = position.Y;
|
|
Z = position.Z;
|
|
}
|
|
|
|
public float X { get; set; }
|
|
public float Y { get; set; }
|
|
public float Z { get; set; }
|
|
|
|
public void Set(float x, float y, float z)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
Z = z;
|
|
}
|
|
|
|
public void Set(Position position)
|
|
{
|
|
X = position.X;
|
|
Y = position.Y;
|
|
Z = position.Z;
|
|
}
|
|
|
|
//public void Set(Vector vector)
|
|
//{
|
|
// X = vector.X;
|
|
// Y = vector.Y;
|
|
// Z = vector.Z;
|
|
//}
|
|
|
|
public void Add(float x, float y, float z)
|
|
{
|
|
X += x;
|
|
Y += y;
|
|
Z += z;
|
|
}
|
|
|
|
public void Add(Position position)
|
|
{
|
|
X += position.X;
|
|
Y += position.Y;
|
|
Z += position.Z;
|
|
}
|
|
|
|
public void Sub(float x, float y, float z)
|
|
{
|
|
X -= x;
|
|
Y -= y;
|
|
Z -= z;
|
|
}
|
|
|
|
public void Sub(Position position)
|
|
{
|
|
X -= position.X;
|
|
Y -= position.Y;
|
|
Z -= position.Z;
|
|
}
|
|
|
|
public void Mul(float x, float y, float z)
|
|
{
|
|
X *= x;
|
|
Y *= y;
|
|
Z *= z;
|
|
}
|
|
|
|
public void Mul(Position position)
|
|
{
|
|
X *= position.X;
|
|
Y *= position.Y;
|
|
Z *= position.Z;
|
|
}
|
|
|
|
public void Div(float x, float y, float z)
|
|
{
|
|
X /= x;
|
|
Y /= y;
|
|
Z /= z;
|
|
}
|
|
|
|
public void Div(Position position)
|
|
{
|
|
X /= position.X;
|
|
Y /= position.Y;
|
|
Z /= position.Z;
|
|
}
|
|
|
|
public double Distance(Position position)
|
|
{
|
|
return Math.Sqrt((X - position.X) * (X - position.X) + (Y - position.Y) * (Y - position.Y) +
|
|
(Z - position.Z) * (Z - position.Z));
|
|
}
|
|
|
|
//public Proto.Position ToProto()
|
|
//{
|
|
// return new Proto.Position
|
|
// {
|
|
// X = (int)X,
|
|
// Y = (int)Y,
|
|
// Z = (int)Z
|
|
// };
|
|
//}
|
|
} |