RDR-Classes/rage/vector.hpp
maybegreat48 0132075d1c
Netsync stuff (#5)
* feat(metric): add rlMetric

* fix(metric): serializer fix

* feat(tls): add tlsContext

* feat(fwEntity): add entity classes

* fix: add import

* fix(vector): constexpr ctors

* feat(ped): add CPed

* feat(sync): add sync nodes

* feat(netsync): add netSyncDataNode::IsActive

* feat(netsync): first node

* fix: make GetData accessible

* fix: make netSyncDataNode an abstract class

* fix(netsync): the compiler is too smart for its own good

* feat(netsync): add CObjectCreationData

* feat(netsync): add CPlayerAppearanceData

* feat(netsync): CVehicleCreationData

* feat(netsync): add CPickupCreationData

* feat(netsync): add CPhysicalAttachData

* feat(netsync): add CVehicleProximityMigrationData

* feat(netsync): add CPedTaskTreeData

* feat(network): add CScriptedGameEvent

---------
2023-10-09 15:01:36 +02:00

88 lines
1.1 KiB
C++

#pragma once
namespace rage
{
template<typename T>
union vector2
{
T data[2];
struct { T x, y; };
constexpr vector2(T x, T y) :
x(x),
y(y)
{
}
constexpr vector2() :
x(),
y()
{
}
};
template<typename T>
union vector3
{
T data[3];
struct { T x, y, z; };
constexpr vector3(T x, T y, T z) :
x(x),
y(y),
z(z)
{
}
constexpr vector3() :
x(),
y(),
z()
{
}
};
template<typename T>
union vector4
{
T data[4];
struct { T x, y, z, w; };
constexpr vector4(T x, T y, T z, T w) :
x(x),
y(y),
z(z),
w(w)
{
}
constexpr vector4() :
x(),
y(),
z(),
w()
{
}
};
template<typename T>
union matrix34
{
T data[3][4];
struct { struct { T x, y, z, w; } rows[3]; };
};
template<typename T>
union matrix44
{
T data[4][4];
struct { struct { T x, y, z, w; } rows[4]; };
};
typedef vector2<float> fvector2;
typedef vector3<float> fvector3;
typedef vector4<float> fvector4;
typedef matrix34<float> fmatrix34;
typedef matrix44<float> fmatrix44;
}