mirror of
				https://github.com/HandmadeMath/HandmadeMath.git
				synced 2025-10-26 12:26:59 +00:00 
			
		
		
		
	Provide const versions of operator[] (#166)
This makes it possible use to do something like
const HMM_Vec3 v{1,2,3};
float val = v[1];
			
			
This commit is contained in:
		| @@ -244,10 +244,8 @@ typedef union HMM_Vec2 | |||||||
|     float Elements[2]; |     float Elements[2]; | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline float &operator[](int Index) |     inline float &operator[](int Index) { return Elements[Index]; } | ||||||
|     { |     inline const float& operator[](int Index) const { return Elements[Index]; } | ||||||
|         return Elements[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Vec2; | } HMM_Vec2; | ||||||
|  |  | ||||||
| @@ -295,10 +293,8 @@ typedef union HMM_Vec3 | |||||||
|     float Elements[3]; |     float Elements[3]; | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline float &operator[](int Index) |     inline float &operator[](int Index) { return Elements[Index]; } | ||||||
|     { |     inline const float &operator[](int Index) const { return Elements[Index]; } | ||||||
|         return Elements[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Vec3; | } HMM_Vec3; | ||||||
|  |  | ||||||
| @@ -359,10 +355,8 @@ typedef union HMM_Vec4 | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline float &operator[](int Index) |     inline float &operator[](int Index) { return Elements[Index]; } | ||||||
|     { |     inline const float &operator[](int Index) const { return Elements[Index]; } | ||||||
|         return Elements[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Vec4; | } HMM_Vec4; | ||||||
|  |  | ||||||
| @@ -372,10 +366,8 @@ typedef union HMM_Mat2 | |||||||
|     HMM_Vec2 Columns[2]; |     HMM_Vec2 Columns[2]; | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline HMM_Vec2 &operator[](int Index) |     inline HMM_Vec2 &operator[](int Index) { return Columns[Index]; } | ||||||
|     { |     inline const HMM_Vec2 &operator[](int Index) const { return Columns[Index]; } | ||||||
|         return Columns[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Mat2; | } HMM_Mat2; | ||||||
|      |      | ||||||
| @@ -385,10 +377,8 @@ typedef union HMM_Mat3 | |||||||
|     HMM_Vec3 Columns[3]; |     HMM_Vec3 Columns[3]; | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline HMM_Vec3 &operator[](int Index) |     inline HMM_Vec3 &operator[](int Index) { return Columns[Index]; } | ||||||
|     { |     inline const HMM_Vec3 &operator[](int Index) const { return Columns[Index]; } | ||||||
|         return Columns[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Mat3; | } HMM_Mat3; | ||||||
|  |  | ||||||
| @@ -398,10 +388,8 @@ typedef union HMM_Mat4 | |||||||
|     HMM_Vec4 Columns[4]; |     HMM_Vec4 Columns[4]; | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|     inline HMM_Vec4 &operator[](int Index) |     inline HMM_Vec4 &operator[](int Index) { return Columns[Index]; } | ||||||
|     { |     inline const HMM_Vec4 &operator[](int Index) const { return Columns[Index]; } | ||||||
|         return Columns[Index]; |  | ||||||
|     } |  | ||||||
| #endif | #endif | ||||||
| } HMM_Mat4; | } HMM_Mat4; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Olivier Perret
					Olivier Perret