Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
Double3.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
8
10
12class [[nodiscard]] Double3
13{
14public:
16
17 Double3() = default;
18 Double3(const Double3 &inRHS) = default;
19 Double3(double inX, double inY, double inZ) : x(inX), y(inY), z(inZ) { }
20
21 double operator [] (int inCoordinate) const
22 {
23 JPH_ASSERT(inCoordinate < 3);
24 return *(&x + inCoordinate);
25 }
26
27 bool operator == (const Double3 &inRHS) const
28 {
29 return x == inRHS.x && y == inRHS.y && z == inRHS.z;
30 }
31
32 bool operator != (const Double3 &inRHS) const
33 {
34 return x != inRHS.x || y != inRHS.y || z != inRHS.z;
35 }
36
37 double x;
38 double y;
39 double z;
40};
41
42static_assert(is_trivial<Double3>(), "Is supposed to be a trivial type!");
43
45
46// Create a std::hash for Double3
47JPH_MAKE_HASHABLE(JPH::Double3, t.x, t.y, t.z)
#define JPH_NAMESPACE_END
Definition: Core.h:240
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:234
#define JPH_MAKE_HASHABLE(type,...)
Definition: HashCombine.h:87
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:29
Class that holds 3 doubles. Used as a storage class. Convert to DVec3 for calculations.
Definition: Double3.h:13
double z
Definition: Double3.h:39
double y
Definition: Double3.h:38
JPH_OVERRIDE_NEW_DELETE Double3()=default
Intentionally not initialized for performance reasons.
Double3(const Double3 &inRHS)=default
double x
Definition: Double3.h:37
Double3(double inX, double inY, double inZ)
Definition: Double3.h:19