Blender V5.0
int_vector_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2025 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#include "vector2.h"
6#include "vector4.h"
7
8struct int2 {
9 int x;
10 int y;
11};
12
14{
15 return int2(a.x + b.x, a.y + b.y);
16}
17
19{
20 return int2(a.x + b, a.y + b);
21}
22
24{
25 return int2(a.x * b.x, a.y * b.y);
26}
27
29{
30 return int2(a.x * b, a.y * b);
31}
32
34{
35 return int2(a.x >> b, a.y >> b);
36}
37
39{
40 return int2(a.x ^ b.x, a.y ^ b.y);
41}
42
44{
45 return int2(a.x & b, a.y & b);
46}
47
49{
50 return int2((int)k.x, (int)k.y);
51}
52
54{
55 return vector2((float)k.x, (float)k.y);
56}
57
58struct int3 {
59 int x;
60 int y;
61 int z;
62};
63
65{
66 return int3(a.x + b.x, a.y + b.y, a.z + b.z);
67}
68
70{
71 return int3(a.x + b, a.y + b, a.z + b);
72}
73
75{
76 return int3(a.x * b.x, a.y * b.y, a.z * b.z);
77}
78
80{
81 return int3(a.x * b, a.y * b, a.z * b);
82}
83
85{
86 return int3(a.x >> b, a.y >> b, a.z >> b);
87}
88
90{
91 return int3(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z);
92}
93
95{
96 return int3(a.x & b, a.y & b, a.z & b);
97}
98
100{
101 return int3((int)k.x, (int)k.y, (int)k.z);
102}
103
105{
106 return point((float)k.x, (float)k.y, (float)k.z);
107}
108
109struct int4 {
110 int x;
111 int y;
112 int z;
113 int w;
114};
115
117{
118 return int4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
119}
120
122{
123 return int4(a.x + b, a.y + b, a.z + b, a.w + b);
124}
125
127{
128 return int4(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
129}
130
132{
133 return int4(a.x * b, a.y * b, a.z * b, a.w * b);
134}
135
137{
138 return int4(a.x >> b, a.y >> b, a.z >> b, a.w >> b);
139}
140
142{
143 return int4(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z, a.w ^ b.w);
144}
145
147{
148 return int4(a.x & b, a.y & b, a.z & b, a.w & b);
149}
150
152{
153 return int4((int)k.x, (int)k.y, (int)k.z, (int)k.w);
154}
155
157{
158 return vector4((float)k.x, (float)k.y, (float)k.z, (float)k.w);
159}
VecBase< int, 2 > int2
VecBase< int, 3 > int3
VecBase< int, 4 > int4
vector2 int2_to_vec2(int2 k)
int4 vec4_to_int4(vector4 k)
int2 __operator__mul__(int2 a, int2 b)
point int3_to_vec3(int3 k)
int2 __operator__bitand__(int2 a, int b)
int2 vec2_to_int2(vector2 k)
int2 __operator__xor__(int2 a, int2 b)
vector4 int4_to_vec4(int4 k)
int2 __operator__shr__(int2 a, int b)
int2 __operator__add__(int2 a, int2 b)
int3 vec3_to_int3(point k)