mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-04 19:36:43 +03:00
* WIP C++03 + Xbox 360 Support * math.h & _USE_MATH_DEFINES on Level.hpp Updated Xenon vcxproj file for new file structure. * * Fix bad GUI scale setup. * * Gui: Use ratios instead of hardcoded sub-1 floating point values, to make the mechanism more clear. * Add Direct Connect Button and Screen (#30) * Add Direct Connect Button and Screen * Remove accidental extra build directories for wasm * Add DirectConnectScreen.cpp to the CMake * Use Hungarian coding style notation * * Fix errors caused by #30 * * Improve the Chat Screen * * Improve the DirectConnectScreen, among other things. * * Update the game title once again. * * Add build-wasm.bat. * * Add info about compiling for wasm * * Fix send to specific GUID actually broadcasting to everyone * * Add command manager. * * Add writeable configuration. * * Allow dynamic screen size change on windows * * Allow the same thing on the emscripten version. * WIP C++03 + Xbox 360 Support * Fixed a possible merging issue that broke RakNet? * Additional Xbox 360 compatability fixes --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com> Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com> Co-authored-by: ts <124226059+uniformization@users.noreply.github.com>
78 lines
1.4 KiB
C++
78 lines
1.4 KiB
C++
/********************************************************************
|
|
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, y, z;
|
|
|
|
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);
|
|
}
|
|
};
|
|
|