mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-23 20:09:46 +03:00
github.dev removing files randomly lmfao
This commit is contained in:
79
source/common/Vec3.hpp
Normal file
79
source/common/Vec3.hpp
Normal file
@@ -0,0 +1,79 @@
|
||||
/********************************************************************
|
||||
Minecraft: Pocket Edition - Decompilation Project
|
||||
Copyright (C) 2023 iProgramInCpp
|
||||
|
||||
The following code is licensed under the BSD 1 clause license.
|
||||
SPDX-License-Identifier: BSD-1-Clause
|
||||
********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Mth.hpp"
|
||||
|
||||
class Vec3
|
||||
{
|
||||
public:
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
float z = 0;
|
||||
|
||||
public:
|
||||
bool clipX(const Vec3& a2, float a3, Vec3& a4) const;
|
||||
bool clipY(const Vec3& a2, float a3, Vec3& a4) const;
|
||||
bool clipZ(const Vec3& a2, float a3, Vec3& a4) const;
|
||||
Vec3 normalize();
|
||||
|
||||
// this constructor is nice to have, but it's probably inlined
|
||||
Vec3();
|
||||
Vec3(float x, float y, float z);
|
||||
|
||||
// these are likely inlined
|
||||
float distanceTo(const Vec3& b) const;
|
||||
float distanceToSqr(const Vec3& b) const;
|
||||
|
||||
// these are also likely inlined, but I'll declare them in the header
|
||||
Vec3 operator+(const Vec3& b)
|
||||
{
|
||||
return Vec3(x + b.x, y + b.y, z + b.z);
|
||||
}
|
||||
|
||||
Vec3 operator-(const Vec3& b)
|
||||
{
|
||||
return Vec3(x - b.x, y - b.y, z - b.z);
|
||||
}
|
||||
|
||||
void operator+=(const Vec3& b)
|
||||
{
|
||||
x += b.x;
|
||||
y += b.y;
|
||||
z += b.z;
|
||||
}
|
||||
|
||||
void operator-=(const Vec3& b)
|
||||
{
|
||||
(*this) += -b;
|
||||
}
|
||||
|
||||
void operator*=(float f)
|
||||
{
|
||||
x *= f;
|
||||
y *= f;
|
||||
z *= f;
|
||||
}
|
||||
|
||||
Vec3 operator-() const
|
||||
{
|
||||
return Vec3(-x, -y, -z);
|
||||
}
|
||||
|
||||
Vec3 operator*(float f) const
|
||||
{
|
||||
return Vec3(f * x, f * y, f * z);
|
||||
}
|
||||
|
||||
Vec3 translate(float tx, float ty, float tz) const
|
||||
{
|
||||
return Vec3(x + tx, y + ty, z + tz);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user