Plasma Engine
2.0
Loading...
Searching...
No Matches
SimdVec4b.h
1
#pragma once
2
3
#include <Foundation/SimdMath/SimdSwizzle.h>
4
#include <Foundation/SimdMath/SimdTypes.h>
5
6
class
PL_FOUNDATION_DLL
plSimdVec4b
7
{
8
public
:
9
PL_DECLARE_POD_TYPE();
10
11
plSimdVec4b
();
// [tested]
12
plSimdVec4b
(
bool
b);
// [tested]
13
plSimdVec4b
(
bool
x,
bool
y,
bool
z,
bool
w);
// [tested]
14
plSimdVec4b
(
plInternal::QuadBool
b);
// [tested]
15
16
public
:
17
template
<
int
N>
18
bool
GetComponent()
const
;
// [tested]
19
20
bool
x()
const
;
// [tested]
21
bool
y()
const
;
// [tested]
22
bool
z()
const
;
// [tested]
23
bool
w()
const
;
// [tested]
24
25
template
<plSwizzle::Enum s>
26
plSimdVec4b
Get()
const
;
// [tested]
27
28
public
:
29
plSimdVec4b
operator&&(
const
plSimdVec4b
& rhs)
const
;
// [tested]
30
plSimdVec4b
operator||(
const
plSimdVec4b
& rhs)
const
;
// [tested]
31
plSimdVec4b
operator!()
const
;
// [tested]
32
33
plSimdVec4b
operator==(
const
plSimdVec4b
& rhs)
const
;
// [tested]
34
plSimdVec4b
operator!=(
const
plSimdVec4b
& rhs)
const
;
// [tested]
35
36
template
<
int
N = 4>
37
bool
AllSet()
const
;
// [tested]
38
39
template
<
int
N = 4>
40
bool
AnySet()
const
;
// [tested]
41
42
template
<
int
N = 4>
43
bool
NoneSet()
const
;
// [tested]
44
45
static
plSimdVec4b
Select(
const
plSimdVec4b
& vCmp,
const
plSimdVec4b
& vTrue,
const
plSimdVec4b
& vFalse);
// [tested]
46
47
public
:
48
plInternal::QuadBool
m_v;
49
};
50
51
#if PL_SIMD_IMPLEMENTATION == PL_SIMD_IMPLEMENTATION_SSE
52
# include <Foundation/SimdMath/Implementation/SSE/SSEVec4b_inl.h>
53
#elif PL_SIMD_IMPLEMENTATION == PL_SIMD_IMPLEMENTATION_FPU
54
# include <Foundation/SimdMath/Implementation/FPU/FPUVec4b_inl.h>
55
#elif PL_SIMD_IMPLEMENTATION == PL_SIMD_IMPLEMENTATION_NEON
56
# include <Foundation/SimdMath/Implementation/NEON/NEONVec4b_inl.h>
57
#else
58
# error "Unknown SIMD implementation."
59
#endif
plSimdVec4b
Definition
SimdVec4b.h:7
plVec4Template
A 4-component vector class.
Definition
Vec4.h:9
Code
Engine
Foundation
SimdMath
SimdVec4b.h
Generated by
1.11.0