Changeset 1136
- Timestamp:
- Jan 27, 2012, 9:05:03 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/monsterz/title.cpp
r1135 r1136 145 145 146 146 data->ground = Tiler::Register(PNG_TITLE_GROUND, ivec2(384, 80), ivec2(0), 1.0f); 147 data->ground_pos = ivec2((bbox[1] - bbox[0]).xy() / vec2(2, 4)) 147 vec2(1,2).xy - vec2(2, 4); 148 data->ground_pos = ivec2((bbox[1] - bbox[0]).xy / vec2(2, 4)) 148 149 - ivec2(192, 80); 149 150 150 151 data->rocks = Tiler::Register(PNG_TITLE_ROCKS, ivec2(640, 155), ivec2(0), 1.0f); 151 data->rocks_pos = ivec2((bbox[1] - bbox[0]).xy ()/ vec2(2, 2))152 data->rocks_pos = ivec2((bbox[1] - bbox[0]).xy / vec2(2, 2)) 152 153 - ivec2(320, 240); 153 154 -
trunk/src/input.cpp
r1135 r1136 135 135 if (data->entities[n] == top) 136 136 { 137 data->entities[n]->mousepos = coord - (ivec2)top->bbox[0].xy ();137 data->entities[n]->mousepos = coord - (ivec2)top->bbox[0].xy; 138 138 if (top != data->lastfocus) 139 139 data->entities[n]->pressed = data->buttons; -
trunk/src/lol/math/matrix.h
r1135 r1136 50 50 VECTOR_TYPES(Mat4, mat4) 51 51 52 /* 53 * Magic swizzling (part 1/2) 54 */ 55 56 template<typename T, int I, int J> struct MagicVec2 57 { 58 inline Vec2<T> operator =(Vec2<T> that); 59 60 float ptr[1 + (I > J ? I : J)]; 61 }; 62 63 template<typename T, int I, int J, int K> struct MagicVec3 64 { 65 inline Vec3<T> operator =(Vec3<T> that); 66 67 float ptr[1 + (I > J ? I > K ? I : K 68 : J > K ? J : K)]; 69 }; 70 71 template<typename T, int I, int J, int K, int L> struct MagicVec4 72 { 73 inline Vec4<T> operator =(Vec4<T> that); 74 75 float ptr[1 + (I > J ? I > K ? I > L ? I : L : K > L ? K : L 76 : J > K ? J > L ? J : L : K > L ? K : L)]; 77 }; 78 52 79 #define MEMBER_OPS() \ 53 80 inline T& operator[](int n) { return *(&x + n); } \ … … 112 139 } 113 140 114 #define SWIZZLE2(e1, e2) \115 inline Vec2<T> e1##e2() const \116 { \117 return Vec2<T>(this->e1, this->e2); \118 }119 120 #define SWIZZLE3(e1, e2, e3) \121 inline Vec3<T> e1##e2##e3() const \122 { \123 return Vec3<T>(this->e1, this->e2, this->e3); \124 }125 126 #define SWIZZLE4(e1, e2, e3, e4) \127 inline Vec4<T> e1##e2##e3##e4() const \128 { \129 return Vec4<T>(this->e1, this->e2, this->e3, this->e4); \130 }131 132 #define SWIZZLE22(e1) \133 SWIZZLE2(e1, x); SWIZZLE2(e1, y);134 #define SWIZZLE23(e1) \135 SWIZZLE2(e1, x); SWIZZLE2(e1, y); SWIZZLE2(e1, z);136 #define SWIZZLE24(e1) \137 SWIZZLE2(e1, x); SWIZZLE2(e1, y); SWIZZLE2(e1, z); SWIZZLE2(e1, w);138 139 #define SWIZZLE32(e1, e2) \140 SWIZZLE3(e1, e2, x); SWIZZLE3(e1, e2, y);141 #define SWIZZLE322(e1) \142 SWIZZLE32(e1, x); SWIZZLE32(e1, y);143 #define SWIZZLE33(e1, e2) \144 SWIZZLE3(e1, e2, x); SWIZZLE3(e1, e2, y); SWIZZLE3(e1, e2, z);145 #define SWIZZLE333(e1) \146 SWIZZLE33(e1, x); SWIZZLE33(e1, y); SWIZZLE33(e1, z);147 #define SWIZZLE34(e1, e2) \148 SWIZZLE3(e1, e2, x); SWIZZLE3(e1, e2, y); \149 SWIZZLE3(e1, e2, z); SWIZZLE3(e1, e2, w);150 #define SWIZZLE344(e1) \151 SWIZZLE34(e1, x); SWIZZLE34(e1, y); \152 SWIZZLE34(e1, z); SWIZZLE34(e1, w);153 154 #define SWIZZLE42(e1, e2, e3) \155 SWIZZLE4(e1, e2, e3, x); SWIZZLE4(e1, e2, e3, y);156 #define SWIZZLE422(e1, e2) \157 SWIZZLE42(e1, e2, x); SWIZZLE42(e1, e2, y);158 #define SWIZZLE4222(e1) \159 SWIZZLE422(e1, x); SWIZZLE422(e1, y);160 #define SWIZZLE43(e1, e2, e3) \161 SWIZZLE4(e1, e2, e3, x); SWIZZLE4(e1, e2, e3, y); SWIZZLE4(e1, e2, e3, z);162 #define SWIZZLE433(e1, e2) \163 SWIZZLE43(e1, e2, x); SWIZZLE43(e1, e2, y); SWIZZLE43(e1, e2, z);164 #define SWIZZLE4333(e1) \165 SWIZZLE433(e1, x); SWIZZLE433(e1, y); SWIZZLE433(e1, z);166 #define SWIZZLE44(e1, e2, e3) \167 SWIZZLE4(e1, e2, e3, x); SWIZZLE4(e1, e2, e3, y); \168 SWIZZLE4(e1, e2, e3, z); SWIZZLE4(e1, e2, e3, w);169 #define SWIZZLE444(e1, e2) \170 SWIZZLE44(e1, e2, x); SWIZZLE44(e1, e2, y); \171 SWIZZLE44(e1, e2, z); SWIZZLE44(e1, e2, w);172 #define SWIZZLE4444(e1) \173 SWIZZLE444(e1, x); SWIZZLE444(e1, y); SWIZZLE444(e1, z); SWIZZLE444(e1, w);174 175 141 /* 176 142 * 2-element vectors … … 185 151 inline Vec2(T _x, T _y) { x = _x; y = _y; } 186 152 153 template<int I, int J> 154 inline Vec2<T>(MagicVec2<T, I, J> const &v) 155 : x(v.ptr[I]), y(v.ptr[J]) {} 156 187 157 MEMBER_OPS() 188 158 OTHER_MEMBER_OPS(Vec2) 189 190 SWIZZLE22(x); SWIZZLE22(y);191 SWIZZLE322(x); SWIZZLE322(y);192 SWIZZLE4222(x); SWIZZLE4222(y);193 159 194 160 #if !defined __ANDROID__ … … 202 168 struct { T r, g; }; 203 169 struct { T s, t; }; 170 171 MagicVec2<T,0,0> xx, rr, ss; 172 MagicVec2<T,0,1> xy, rg, st; 173 MagicVec2<T,1,0> yx, gr, ts; 174 MagicVec2<T,1,1> yy, gg, tt; 175 MagicVec3<T,0,0,0> xxx, rrr, sss; 176 MagicVec3<T,0,0,1> xxy, rrg, sst; 177 MagicVec3<T,0,1,0> xyx, rgr, sts; 178 MagicVec3<T,0,1,1> xyy, rgg, stt; 179 MagicVec3<T,1,0,0> yxx, grr, tss; 180 MagicVec3<T,1,0,1> yxy, grg, tst; 181 MagicVec3<T,1,1,0> yyx, ggr, tts; 182 MagicVec3<T,1,1,1> yyy, ggg, ttt; 183 MagicVec4<T,0,0,0,0> xxxx, rrrr, ssss; 184 MagicVec4<T,0,0,0,1> xxxy, rrrg, ssst; 185 MagicVec4<T,0,0,1,0> xxyx, rrgr, ssts; 186 MagicVec4<T,0,0,1,1> xxyy, rrgg, sstt; 187 MagicVec4<T,0,1,0,0> xyxx, rgrr, stss; 188 MagicVec4<T,0,1,0,1> xyxy, rgrg, stst; 189 MagicVec4<T,0,1,1,0> xyyx, rggr, stts; 190 MagicVec4<T,0,1,1,1> xyyy, rggg, sttt; 191 MagicVec4<T,1,0,0,0> yxxx, grrr, tsss; 192 MagicVec4<T,1,0,0,1> yxxy, grrg, tsst; 193 MagicVec4<T,1,0,1,0> yxyx, grgr, tsts; 194 MagicVec4<T,1,0,1,1> yxyy, grgg, tstt; 195 MagicVec4<T,1,1,0,0> yyxx, ggrr, ttss; 196 MagicVec4<T,1,1,0,1> yyxy, ggrg, ttst; 197 MagicVec4<T,1,1,1,0> yyyx, gggr, ttts; 198 MagicVec4<T,1,1,1,1> yyyy, gggg, tttt; 204 199 }; 205 200 }; … … 279 274 inline Vec3(T _x, Vec2<T> _yz) { x = _x; y = _yz.x; z = _yz.y; } 280 275 276 template<int I, int J, int K> 277 inline Vec3<T>(MagicVec3<T, I, J, K> const &v) 278 : x(v.ptr[I]), y(v.ptr[J]), z(v.ptr[K]) {} 279 281 280 MEMBER_OPS() 282 281 OTHER_MEMBER_OPS(Vec3) 283 284 SWIZZLE23(x); SWIZZLE23(y); SWIZZLE23(z);285 SWIZZLE333(x); SWIZZLE333(y); SWIZZLE333(z);286 SWIZZLE4333(x); SWIZZLE4333(y); SWIZZLE4333(z);287 282 288 283 template<typename U> … … 299 294 struct { T r, g, b; }; 300 295 struct { T s, t, p; }; 296 297 MagicVec2<T,0,0> xx, rr, ss; 298 MagicVec2<T,0,1> xy, rg, st; 299 MagicVec2<T,0,2> xz, rb, sp; 300 MagicVec2<T,1,0> yx, gr, ts; 301 MagicVec2<T,1,1> yy, gg, tt; 302 MagicVec2<T,1,2> yz, gb, tp; 303 MagicVec2<T,2,0> zx, br, ps; 304 MagicVec2<T,2,1> zy, bg, pt; 305 MagicVec2<T,2,2> zz, bb, pp; 306 MagicVec3<T,0,0,0> xxx, rrr, sss; 307 MagicVec3<T,0,0,1> xxy, rrg, sst; 308 MagicVec3<T,0,0,2> xxz, rrb, ssp; 309 MagicVec3<T,0,1,0> xyx, rgr, sts; 310 MagicVec3<T,0,1,1> xyy, rgg, stt; 311 MagicVec3<T,0,1,2> xyz, rgb, stp; 312 MagicVec3<T,0,2,0> xzx, rbr, sps; 313 MagicVec3<T,0,2,1> xzy, rbg, spt; 314 MagicVec3<T,0,2,2> xzz, rbb, spp; 315 MagicVec3<T,1,0,0> yxx, grr, tss; 316 MagicVec3<T,1,0,1> yxy, grg, tst; 317 MagicVec3<T,1,0,2> yxz, grb, tsp; 318 MagicVec3<T,1,1,0> yyx, ggr, tts; 319 MagicVec3<T,1,1,1> yyy, ggg, ttt; 320 MagicVec3<T,1,1,2> yyz, ggb, ttp; 321 MagicVec3<T,1,2,0> yzx, gbr, tps; 322 MagicVec3<T,1,2,1> yzy, gbg, tpt; 323 MagicVec3<T,1,2,2> yzz, gbb, tpp; 324 MagicVec3<T,2,0,0> zxx, brr, pss; 325 MagicVec3<T,2,0,1> zxy, brg, pst; 326 MagicVec3<T,2,0,2> zxz, brb, psp; 327 MagicVec3<T,2,1,0> zyx, bgr, pts; 328 MagicVec3<T,2,1,1> zyy, bgg, ptt; 329 MagicVec3<T,2,1,2> zyz, bgb, ptp; 330 MagicVec3<T,2,2,0> zzx, bbr, pps; 331 MagicVec3<T,2,2,1> zzy, bbg, ppt; 332 MagicVec3<T,2,2,2> zzz, bbb, ppp; 333 MagicVec4<T,0,0,0,0> xxxx, rrrr, ssss; 334 MagicVec4<T,0,0,0,1> xxxy, rrrg, ssst; 335 MagicVec4<T,0,0,0,2> xxxz, rrrb, sssp; 336 MagicVec4<T,0,0,1,0> xxyx, rrgr, ssts; 337 MagicVec4<T,0,0,1,1> xxyy, rrgg, sstt; 338 MagicVec4<T,0,0,1,2> xxyz, rrgb, sstp; 339 MagicVec4<T,0,0,2,0> xxzx, rrbr, ssps; 340 MagicVec4<T,0,0,2,1> xxzy, rrbg, sspt; 341 MagicVec4<T,0,0,2,2> xxzz, rrbb, sspp; 342 MagicVec4<T,0,1,0,0> xyxx, rgrr, stss; 343 MagicVec4<T,0,1,0,1> xyxy, rgrg, stst; 344 MagicVec4<T,0,1,0,2> xyxz, rgrb, stsp; 345 MagicVec4<T,0,1,1,0> xyyx, rggr, stts; 346 MagicVec4<T,0,1,1,1> xyyy, rggg, sttt; 347 MagicVec4<T,0,1,1,2> xyyz, rggb, sttp; 348 MagicVec4<T,0,1,2,0> xyzx, rgbr, stps; 349 MagicVec4<T,0,1,2,1> xyzy, rgbg, stpt; 350 MagicVec4<T,0,1,2,2> xyzz, rgbb, stpp; 351 MagicVec4<T,0,2,0,0> xzxx, rbrr, spss; 352 MagicVec4<T,0,2,0,1> xzxy, rbrg, spst; 353 MagicVec4<T,0,2,0,2> xzxz, rbrb, spsp; 354 MagicVec4<T,0,2,1,0> xzyx, rbgr, spts; 355 MagicVec4<T,0,2,1,1> xzyy, rbgg, sptt; 356 MagicVec4<T,0,2,1,2> xzyz, rbgb, sptp; 357 MagicVec4<T,0,2,2,0> xzzx, rbbr, spps; 358 MagicVec4<T,0,2,2,1> xzzy, rbbg, sppt; 359 MagicVec4<T,0,2,2,2> xzzz, rbbb, sppp; 360 MagicVec4<T,1,0,0,0> yxxx, grrr, tsss; 361 MagicVec4<T,1,0,0,1> yxxy, grrg, tsst; 362 MagicVec4<T,1,0,0,2> yxxz, grrb, tssp; 363 MagicVec4<T,1,0,1,0> yxyx, grgr, tsts; 364 MagicVec4<T,1,0,1,1> yxyy, grgg, tstt; 365 MagicVec4<T,1,0,1,2> yxyz, grgb, tstp; 366 MagicVec4<T,1,0,2,0> yxzx, grbr, tsps; 367 MagicVec4<T,1,0,2,1> yxzy, grbg, tspt; 368 MagicVec4<T,1,0,2,2> yxzz, grbb, tspp; 369 MagicVec4<T,1,1,0,0> yyxx, ggrr, ttss; 370 MagicVec4<T,1,1,0,1> yyxy, ggrg, ttst; 371 MagicVec4<T,1,1,0,2> yyxz, ggrb, ttsp; 372 MagicVec4<T,1,1,1,0> yyyx, gggr, ttts; 373 MagicVec4<T,1,1,1,1> yyyy, gggg, tttt; 374 MagicVec4<T,1,1,1,2> yyyz, gggb, tttp; 375 MagicVec4<T,1,1,2,0> yyzx, ggbr, ttps; 376 MagicVec4<T,1,1,2,1> yyzy, ggbg, ttpt; 377 MagicVec4<T,1,1,2,2> yyzz, ggbb, ttpp; 378 MagicVec4<T,1,2,0,0> yzxx, gbrr, tpss; 379 MagicVec4<T,1,2,0,1> yzxy, gbrg, tpst; 380 MagicVec4<T,1,2,0,2> yzxz, gbrb, tpsp; 381 MagicVec4<T,1,2,1,0> yzyx, gbgr, tpts; 382 MagicVec4<T,1,2,1,1> yzyy, gbgg, tptt; 383 MagicVec4<T,1,2,1,2> yzyz, gbgb, tptp; 384 MagicVec4<T,1,2,2,0> yzzx, gbbr, tpps; 385 MagicVec4<T,1,2,2,1> yzzy, gbbg, tppt; 386 MagicVec4<T,1,2,2,2> yzzz, gbbb, tppp; 387 MagicVec4<T,2,0,0,0> zxxx, brrr, psss; 388 MagicVec4<T,2,0,0,1> zxxy, brrg, psst; 389 MagicVec4<T,2,0,0,2> zxxz, brrb, pssp; 390 MagicVec4<T,2,0,1,0> zxyx, brgr, psts; 391 MagicVec4<T,2,0,1,1> zxyy, brgg, pstt; 392 MagicVec4<T,2,0,1,2> zxyz, brgb, pstp; 393 MagicVec4<T,2,0,2,0> zxzx, brbr, psps; 394 MagicVec4<T,2,0,2,1> zxzy, brbg, pspt; 395 MagicVec4<T,2,0,2,2> zxzz, brbb, pspp; 396 MagicVec4<T,2,1,0,0> zyxx, bgrr, ptss; 397 MagicVec4<T,2,1,0,1> zyxy, bgrg, ptst; 398 MagicVec4<T,2,1,0,2> zyxz, bgrb, ptsp; 399 MagicVec4<T,2,1,1,0> zyyx, bggr, ptts; 400 MagicVec4<T,2,1,1,1> zyyy, bggg, pttt; 401 MagicVec4<T,2,1,1,2> zyyz, bggb, pttp; 402 MagicVec4<T,2,1,2,0> zyzx, bgbr, ptps; 403 MagicVec4<T,2,1,2,1> zyzy, bgbg, ptpt; 404 MagicVec4<T,2,1,2,2> zyzz, bgbb, ptpp; 405 MagicVec4<T,2,2,0,0> zzxx, bbrr, ppss; 406 MagicVec4<T,2,2,0,1> zzxy, bbrg, ppst; 407 MagicVec4<T,2,2,0,2> zzxz, bbrb, ppsp; 408 MagicVec4<T,2,2,1,0> zzyx, bbgr, ppts; 409 MagicVec4<T,2,2,1,1> zzyy, bbgg, pptt; 410 MagicVec4<T,2,2,1,2> zzyz, bbgb, pptp; 411 MagicVec4<T,2,2,2,0> zzzx, bbbr, ppps; 412 MagicVec4<T,2,2,2,1> zzzy, bbbg, pppt; 413 MagicVec4<T,2,2,2,2> zzzz, bbbb, pppp; 301 414 }; 302 415 }; … … 320 433 inline Vec4(T _x, Vec3<T> _yzw) : x(_x), y(_yzw.x), z(_yzw.y), w(_yzw.z) { } 321 434 435 template<int I, int J, int K, int L> 436 inline Vec4<T>(MagicVec4<T, I, J, K, L> const &v) 437 : x(v.ptr[I]), y(v.ptr[J]), z(v.ptr[K]), w(v.ptr[L]) {} 438 439 template<typename U, int I, int J, int K, int L> 440 explicit inline Vec4<T>(MagicVec4<U, I, J, K, L> const &v) 441 : x(v.ptr[I]), y(v.ptr[J]), z(v.ptr[K]), w(v.ptr[L]) {} 442 322 443 MEMBER_OPS() 323 444 OTHER_MEMBER_OPS(Vec4) 324 325 SWIZZLE24(x); SWIZZLE24(y); SWIZZLE24(z); SWIZZLE24(w);326 SWIZZLE344(x); SWIZZLE344(y); SWIZZLE344(z); SWIZZLE344(w);327 SWIZZLE4444(x); SWIZZLE4444(y); SWIZZLE4444(z); SWIZZLE4444(w);328 445 329 446 #if !defined __ANDROID__ … … 337 454 struct { T r, g, b, a; }; 338 455 struct { T s, t, p, q; }; 456 457 MagicVec2<T,0,0> xx, rr, ss; 458 MagicVec2<T,0,1> xy, rg, st; 459 MagicVec2<T,0,2> xz, rb, sp; 460 MagicVec2<T,0,3> xw, ra, sq; 461 MagicVec2<T,1,0> yx, gr, ts; 462 MagicVec2<T,1,1> yy, gg, tt; 463 MagicVec2<T,1,2> yz, gb, tp; 464 MagicVec2<T,1,3> yw, ga, tq; 465 MagicVec2<T,2,0> zx, br, ps; 466 MagicVec2<T,2,1> zy, bg, pt; 467 MagicVec2<T,2,2> zz, bb, pp; 468 MagicVec2<T,2,3> zw, ba, pq; 469 MagicVec2<T,3,0> wx, ar, qs; 470 MagicVec2<T,3,1> wy, ag, qt; 471 MagicVec2<T,3,2> wz, ab, qp; 472 MagicVec2<T,3,3> ww, aa, qq; 473 MagicVec3<T,0,0,0> xxx, rrr, sss; 474 MagicVec3<T,0,0,1> xxy, rrg, sst; 475 MagicVec3<T,0,0,2> xxz, rrb, ssp; 476 MagicVec3<T,0,0,3> xxw, rra, ssq; 477 MagicVec3<T,0,1,0> xyx, rgr, sts; 478 MagicVec3<T,0,1,1> xyy, rgg, stt; 479 MagicVec3<T,0,1,2> xyz, rgb, stp; 480 MagicVec3<T,0,1,3> xyw, rga, stq; 481 MagicVec3<T,0,2,0> xzx, rbr, sps; 482 MagicVec3<T,0,2,1> xzy, rbg, spt; 483 MagicVec3<T,0,2,2> xzz, rbb, spp; 484 MagicVec3<T,0,2,3> xzw, rba, spq; 485 MagicVec3<T,0,3,0> xwx, rar, sqs; 486 MagicVec3<T,0,3,1> xwy, rag, sqt; 487 MagicVec3<T,0,3,2> xwz, rab, sqp; 488 MagicVec3<T,0,3,3> xww, raa, sqq; 489 MagicVec3<T,1,0,0> yxx, grr, tss; 490 MagicVec3<T,1,0,1> yxy, grg, tst; 491 MagicVec3<T,1,0,2> yxz, grb, tsp; 492 MagicVec3<T,1,0,3> yxw, gra, tsq; 493 MagicVec3<T,1,1,0> yyx, ggr, tts; 494 MagicVec3<T,1,1,1> yyy, ggg, ttt; 495 MagicVec3<T,1,1,2> yyz, ggb, ttp; 496 MagicVec3<T,1,1,3> yyw, gga, ttq; 497 MagicVec3<T,1,2,0> yzx, gbr, tps; 498 MagicVec3<T,1,2,1> yzy, gbg, tpt; 499 MagicVec3<T,1,2,2> yzz, gbb, tpp; 500 MagicVec3<T,1,2,3> yzw, gba, tpq; 501 MagicVec3<T,1,3,0> ywx, gar, tqs; 502 MagicVec3<T,1,3,1> ywy, gag, tqt; 503 MagicVec3<T,1,3,2> ywz, gab, tqp; 504 MagicVec3<T,1,3,3> yww, gaa, tqq; 505 MagicVec3<T,2,0,0> zxx, brr, pss; 506 MagicVec3<T,2,0,1> zxy, brg, pst; 507 MagicVec3<T,2,0,2> zxz, brb, psp; 508 MagicVec3<T,2,0,3> zxw, bra, psq; 509 MagicVec3<T,2,1,0> zyx, bgr, pts; 510 MagicVec3<T,2,1,1> zyy, bgg, ptt; 511 MagicVec3<T,2,1,2> zyz, bgb, ptp; 512 MagicVec3<T,2,1,3> zyw, bga, ptq; 513 MagicVec3<T,2,2,0> zzx, bbr, pps; 514 MagicVec3<T,2,2,1> zzy, bbg, ppt; 515 MagicVec3<T,2,2,2> zzz, bbb, ppp; 516 MagicVec3<T,2,2,3> zzw, bba, ppq; 517 MagicVec3<T,2,3,0> zwx, bar, pqs; 518 MagicVec3<T,2,3,1> zwy, bag, pqt; 519 MagicVec3<T,2,3,2> zwz, bab, pqp; 520 MagicVec3<T,2,3,3> zww, baa, pqq; 521 MagicVec3<T,3,0,0> wxx, arr, qss; 522 MagicVec3<T,3,0,1> wxy, arg, qst; 523 MagicVec3<T,3,0,2> wxz, arb, qsp; 524 MagicVec3<T,3,0,3> wxw, ara, qsq; 525 MagicVec3<T,3,1,0> wyx, agr, qts; 526 MagicVec3<T,3,1,1> wyy, agg, qtt; 527 MagicVec3<T,3,1,2> wyz, agb, qtp; 528 MagicVec3<T,3,1,3> wyw, aga, qtq; 529 MagicVec3<T,3,2,0> wzx, abr, qps; 530 MagicVec3<T,3,2,1> wzy, abg, qpt; 531 MagicVec3<T,3,2,2> wzz, abb, qpp; 532 MagicVec3<T,3,2,3> wzw, aba, qpq; 533 MagicVec3<T,3,3,0> wwx, aar, qqs; 534 MagicVec3<T,3,3,1> wwy, aag, qqt; 535 MagicVec3<T,3,3,2> wwz, aab, qqp; 536 MagicVec3<T,3,3,3> www, aaa, qqq; 537 MagicVec4<T,0,0,0,0> xxxx, rrrr, ssss; 538 MagicVec4<T,0,0,0,1> xxxy, rrrg, ssst; 539 MagicVec4<T,0,0,0,2> xxxz, rrrb, sssp; 540 MagicVec4<T,0,0,0,3> xxxw, rrra, sssq; 541 MagicVec4<T,0,0,1,0> xxyx, rrgr, ssts; 542 MagicVec4<T,0,0,1,1> xxyy, rrgg, sstt; 543 MagicVec4<T,0,0,1,2> xxyz, rrgb, sstp; 544 MagicVec4<T,0,0,1,3> xxyw, rrga, sstq; 545 MagicVec4<T,0,0,2,0> xxzx, rrbr, ssps; 546 MagicVec4<T,0,0,2,1> xxzy, rrbg, sspt; 547 MagicVec4<T,0,0,2,2> xxzz, rrbb, sspp; 548 MagicVec4<T,0,0,2,3> xxzw, rrba, sspq; 549 MagicVec4<T,0,0,3,0> xxwx, rrar, ssqs; 550 MagicVec4<T,0,0,3,1> xxwy, rrag, ssqt; 551 MagicVec4<T,0,0,3,2> xxwz, rrab, ssqp; 552 MagicVec4<T,0,0,3,3> xxww, rraa, ssqq; 553 MagicVec4<T,0,1,0,0> xyxx, rgrr, stss; 554 MagicVec4<T,0,1,0,1> xyxy, rgrg, stst; 555 MagicVec4<T,0,1,0,2> xyxz, rgrb, stsp; 556 MagicVec4<T,0,1,0,3> xyxw, rgra, stsq; 557 MagicVec4<T,0,1,1,0> xyyx, rggr, stts; 558 MagicVec4<T,0,1,1,1> xyyy, rggg, sttt; 559 MagicVec4<T,0,1,1,2> xyyz, rggb, sttp; 560 MagicVec4<T,0,1,1,3> xyyw, rgga, sttq; 561 MagicVec4<T,0,1,2,0> xyzx, rgbr, stps; 562 MagicVec4<T,0,1,2,1> xyzy, rgbg, stpt; 563 MagicVec4<T,0,1,2,2> xyzz, rgbb, stpp; 564 MagicVec4<T,0,1,2,3> xyzw, rgba, stpq; 565 MagicVec4<T,0,1,3,0> xywx, rgar, stqs; 566 MagicVec4<T,0,1,3,1> xywy, rgag, stqt; 567 MagicVec4<T,0,1,3,2> xywz, rgab, stqp; 568 MagicVec4<T,0,1,3,3> xyww, rgaa, stqq; 569 MagicVec4<T,0,2,0,0> xzxx, rbrr, spss; 570 MagicVec4<T,0,2,0,1> xzxy, rbrg, spst; 571 MagicVec4<T,0,2,0,2> xzxz, rbrb, spsp; 572 MagicVec4<T,0,2,0,3> xzxw, rbra, spsq; 573 MagicVec4<T,0,2,1,0> xzyx, rbgr, spts; 574 MagicVec4<T,0,2,1,1> xzyy, rbgg, sptt; 575 MagicVec4<T,0,2,1,2> xzyz, rbgb, sptp; 576 MagicVec4<T,0,2,1,3> xzyw, rbga, sptq; 577 MagicVec4<T,0,2,2,0> xzzx, rbbr, spps; 578 MagicVec4<T,0,2,2,1> xzzy, rbbg, sppt; 579 MagicVec4<T,0,2,2,2> xzzz, rbbb, sppp; 580 MagicVec4<T,0,2,2,3> xzzw, rbba, sppq; 581 MagicVec4<T,0,2,3,0> xzwx, rbar, spqs; 582 MagicVec4<T,0,2,3,1> xzwy, rbag, spqt; 583 MagicVec4<T,0,2,3,2> xzwz, rbab, spqp; 584 MagicVec4<T,0,2,3,3> xzww, rbaa, spqq; 585 MagicVec4<T,0,3,0,0> xwxx, rarr, sqss; 586 MagicVec4<T,0,3,0,1> xwxy, rarg, sqst; 587 MagicVec4<T,0,3,0,2> xwxz, rarb, sqsp; 588 MagicVec4<T,0,3,0,3> xwxw, rara, sqsq; 589 MagicVec4<T,0,3,1,0> xwyx, ragr, sqts; 590 MagicVec4<T,0,3,1,1> xwyy, ragg, sqtt; 591 MagicVec4<T,0,3,1,2> xwyz, ragb, sqtp; 592 MagicVec4<T,0,3,1,3> xwyw, raga, sqtq; 593 MagicVec4<T,0,3,2,0> xwzx, rabr, sqps; 594 MagicVec4<T,0,3,2,1> xwzy, rabg, sqpt; 595 MagicVec4<T,0,3,2,2> xwzz, rabb, sqpp; 596 MagicVec4<T,0,3,2,3> xwzw, raba, sqpq; 597 MagicVec4<T,0,3,3,0> xwwx, raar, sqqs; 598 MagicVec4<T,0,3,3,1> xwwy, raag, sqqt; 599 MagicVec4<T,0,3,3,2> xwwz, raab, sqqp; 600 MagicVec4<T,0,3,3,3> xwww, raaa, sqqq; 601 MagicVec4<T,1,0,0,0> yxxx, grrr, tsss; 602 MagicVec4<T,1,0,0,1> yxxy, grrg, tsst; 603 MagicVec4<T,1,0,0,2> yxxz, grrb, tssp; 604 MagicVec4<T,1,0,0,3> yxxw, grra, tssq; 605 MagicVec4<T,1,0,1,0> yxyx, grgr, tsts; 606 MagicVec4<T,1,0,1,1> yxyy, grgg, tstt; 607 MagicVec4<T,1,0,1,2> yxyz, grgb, tstp; 608 MagicVec4<T,1,0,1,3> yxyw, grga, tstq; 609 MagicVec4<T,1,0,2,0> yxzx, grbr, tsps; 610 MagicVec4<T,1,0,2,1> yxzy, grbg, tspt; 611 MagicVec4<T,1,0,2,2> yxzz, grbb, tspp; 612 MagicVec4<T,1,0,2,3> yxzw, grba, tspq; 613 MagicVec4<T,1,0,3,0> yxwx, grar, tsqs; 614 MagicVec4<T,1,0,3,1> yxwy, grag, tsqt; 615 MagicVec4<T,1,0,3,2> yxwz, grab, tsqp; 616 MagicVec4<T,1,0,3,3> yxww, graa, tsqq; 617 MagicVec4<T,1,1,0,0> yyxx, ggrr, ttss; 618 MagicVec4<T,1,1,0,1> yyxy, ggrg, ttst; 619 MagicVec4<T,1,1,0,2> yyxz, ggrb, ttsp; 620 MagicVec4<T,1,1,0,3> yyxw, ggra, ttsq; 621 MagicVec4<T,1,1,1,0> yyyx, gggr, ttts; 622 MagicVec4<T,1,1,1,1> yyyy, gggg, tttt; 623 MagicVec4<T,1,1,1,2> yyyz, gggb, tttp; 624 MagicVec4<T,1,1,1,3> yyyw, ggga, tttq; 625 MagicVec4<T,1,1,2,0> yyzx, ggbr, ttps; 626 MagicVec4<T,1,1,2,1> yyzy, ggbg, ttpt; 627 MagicVec4<T,1,1,2,2> yyzz, ggbb, ttpp; 628 MagicVec4<T,1,1,2,3> yyzw, ggba, ttpq; 629 MagicVec4<T,1,1,3,0> yywx, ggar, ttqs; 630 MagicVec4<T,1,1,3,1> yywy, ggag, ttqt; 631 MagicVec4<T,1,1,3,2> yywz, ggab, ttqp; 632 MagicVec4<T,1,1,3,3> yyww, ggaa, ttqq; 633 MagicVec4<T,1,2,0,0> yzxx, gbrr, tpss; 634 MagicVec4<T,1,2,0,1> yzxy, gbrg, tpst; 635 MagicVec4<T,1,2,0,2> yzxz, gbrb, tpsp; 636 MagicVec4<T,1,2,0,3> yzxw, gbra, tpsq; 637 MagicVec4<T,1,2,1,0> yzyx, gbgr, tpts; 638 MagicVec4<T,1,2,1,1> yzyy, gbgg, tptt; 639 MagicVec4<T,1,2,1,2> yzyz, gbgb, tptp; 640 MagicVec4<T,1,2,1,3> yzyw, gbga, tptq; 641 MagicVec4<T,1,2,2,0> yzzx, gbbr, tpps; 642 MagicVec4<T,1,2,2,1> yzzy, gbbg, tppt; 643 MagicVec4<T,1,2,2,2> yzzz, gbbb, tppp; 644 MagicVec4<T,1,2,2,3> yzzw, gbba, tppq; 645 MagicVec4<T,1,2,3,0> yzwx, gbar, tpqs; 646 MagicVec4<T,1,2,3,1> yzwy, gbag, tpqt; 647 MagicVec4<T,1,2,3,2> yzwz, gbab, tpqp; 648 MagicVec4<T,1,2,3,3> yzww, gbaa, tpqq; 649 MagicVec4<T,1,3,0,0> ywxx, garr, tqss; 650 MagicVec4<T,1,3,0,1> ywxy, garg, tqst; 651 MagicVec4<T,1,3,0,2> ywxz, garb, tqsp; 652 MagicVec4<T,1,3,0,3> ywxw, gara, tqsq; 653 MagicVec4<T,1,3,1,0> ywyx, gagr, tqts; 654 MagicVec4<T,1,3,1,1> ywyy, gagg, tqtt; 655 MagicVec4<T,1,3,1,2> ywyz, gagb, tqtp; 656 MagicVec4<T,1,3,1,3> ywyw, gaga, tqtq; 657 MagicVec4<T,1,3,2,0> ywzx, gabr, tqps; 658 MagicVec4<T,1,3,2,1> ywzy, gabg, tqpt; 659 MagicVec4<T,1,3,2,2> ywzz, gabb, tqpp; 660 MagicVec4<T,1,3,2,3> ywzw, gaba, tqpq; 661 MagicVec4<T,1,3,3,0> ywwx, gaar, tqqs; 662 MagicVec4<T,1,3,3,1> ywwy, gaag, tqqt; 663 MagicVec4<T,1,3,3,2> ywwz, gaab, tqqp; 664 MagicVec4<T,1,3,3,3> ywww, gaaa, tqqq; 665 MagicVec4<T,2,0,0,0> zxxx, brrr, psss; 666 MagicVec4<T,2,0,0,1> zxxy, brrg, psst; 667 MagicVec4<T,2,0,0,2> zxxz, brrb, pssp; 668 MagicVec4<T,2,0,0,3> zxxw, brra, pssq; 669 MagicVec4<T,2,0,1,0> zxyx, brgr, psts; 670 MagicVec4<T,2,0,1,1> zxyy, brgg, pstt; 671 MagicVec4<T,2,0,1,2> zxyz, brgb, pstp; 672 MagicVec4<T,2,0,1,3> zxyw, brga, pstq; 673 MagicVec4<T,2,0,2,0> zxzx, brbr, psps; 674 MagicVec4<T,2,0,2,1> zxzy, brbg, pspt; 675 MagicVec4<T,2,0,2,2> zxzz, brbb, pspp; 676 MagicVec4<T,2,0,2,3> zxzw, brba, pspq; 677 MagicVec4<T,2,0,3,0> zxwx, brar, psqs; 678 MagicVec4<T,2,0,3,1> zxwy, brag, psqt; 679 MagicVec4<T,2,0,3,2> zxwz, brab, psqp; 680 MagicVec4<T,2,0,3,3> zxww, braa, psqq; 681 MagicVec4<T,2,1,0,0> zyxx, bgrr, ptss; 682 MagicVec4<T,2,1,0,1> zyxy, bgrg, ptst; 683 MagicVec4<T,2,1,0,2> zyxz, bgrb, ptsp; 684 MagicVec4<T,2,1,0,3> zyxw, bgra, ptsq; 685 MagicVec4<T,2,1,1,0> zyyx, bggr, ptts; 686 MagicVec4<T,2,1,1,1> zyyy, bggg, pttt; 687 MagicVec4<T,2,1,1,2> zyyz, bggb, pttp; 688 MagicVec4<T,2,1,1,3> zyyw, bgga, pttq; 689 MagicVec4<T,2,1,2,0> zyzx, bgbr, ptps; 690 MagicVec4<T,2,1,2,1> zyzy, bgbg, ptpt; 691 MagicVec4<T,2,1,2,2> zyzz, bgbb, ptpp; 692 MagicVec4<T,2,1,2,3> zyzw, bgba, ptpq; 693 MagicVec4<T,2,1,3,0> zywx, bgar, ptqs; 694 MagicVec4<T,2,1,3,1> zywy, bgag, ptqt; 695 MagicVec4<T,2,1,3,2> zywz, bgab, ptqp; 696 MagicVec4<T,2,1,3,3> zyww, bgaa, ptqq; 697 MagicVec4<T,2,2,0,0> zzxx, bbrr, ppss; 698 MagicVec4<T,2,2,0,1> zzxy, bbrg, ppst; 699 MagicVec4<T,2,2,0,2> zzxz, bbrb, ppsp; 700 MagicVec4<T,2,2,0,3> zzxw, bbra, ppsq; 701 MagicVec4<T,2,2,1,0> zzyx, bbgr, ppts; 702 MagicVec4<T,2,2,1,1> zzyy, bbgg, pptt; 703 MagicVec4<T,2,2,1,2> zzyz, bbgb, pptp; 704 MagicVec4<T,2,2,1,3> zzyw, bbga, pptq; 705 MagicVec4<T,2,2,2,0> zzzx, bbbr, ppps; 706 MagicVec4<T,2,2,2,1> zzzy, bbbg, pppt; 707 MagicVec4<T,2,2,2,2> zzzz, bbbb, pppp; 708 MagicVec4<T,2,2,2,3> zzzw, bbba, pppq; 709 MagicVec4<T,2,2,3,0> zzwx, bbar, ppqs; 710 MagicVec4<T,2,2,3,1> zzwy, bbag, ppqt; 711 MagicVec4<T,2,2,3,2> zzwz, bbab, ppqp; 712 MagicVec4<T,2,2,3,3> zzww, bbaa, ppqq; 713 MagicVec4<T,2,3,0,0> zwxx, barr, pqss; 714 MagicVec4<T,2,3,0,1> zwxy, barg, pqst; 715 MagicVec4<T,2,3,0,2> zwxz, barb, pqsp; 716 MagicVec4<T,2,3,0,3> zwxw, bara, pqsq; 717 MagicVec4<T,2,3,1,0> zwyx, bagr, pqts; 718 MagicVec4<T,2,3,1,1> zwyy, bagg, pqtt; 719 MagicVec4<T,2,3,1,2> zwyz, bagb, pqtp; 720 MagicVec4<T,2,3,1,3> zwyw, baga, pqtq; 721 MagicVec4<T,2,3,2,0> zwzx, babr, pqps; 722 MagicVec4<T,2,3,2,1> zwzy, babg, pqpt; 723 MagicVec4<T,2,3,2,2> zwzz, babb, pqpp; 724 MagicVec4<T,2,3,2,3> zwzw, baba, pqpq; 725 MagicVec4<T,2,3,3,0> zwwx, baar, pqqs; 726 MagicVec4<T,2,3,3,1> zwwy, baag, pqqt; 727 MagicVec4<T,2,3,3,2> zwwz, baab, pqqp; 728 MagicVec4<T,2,3,3,3> zwww, baaa, pqqq; 729 MagicVec4<T,3,0,0,0> wxxx, arrr, qsss; 730 MagicVec4<T,3,0,0,1> wxxy, arrg, qsst; 731 MagicVec4<T,3,0,0,2> wxxz, arrb, qssp; 732 MagicVec4<T,3,0,0,3> wxxw, arra, qssq; 733 MagicVec4<T,3,0,1,0> wxyx, argr, qsts; 734 MagicVec4<T,3,0,1,1> wxyy, argg, qstt; 735 MagicVec4<T,3,0,1,2> wxyz, argb, qstp; 736 MagicVec4<T,3,0,1,3> wxyw, arga, qstq; 737 MagicVec4<T,3,0,2,0> wxzx, arbr, qsps; 738 MagicVec4<T,3,0,2,1> wxzy, arbg, qspt; 739 MagicVec4<T,3,0,2,2> wxzz, arbb, qspp; 740 MagicVec4<T,3,0,2,3> wxzw, arba, qspq; 741 MagicVec4<T,3,0,3,0> wxwx, arar, qsqs; 742 MagicVec4<T,3,0,3,1> wxwy, arag, qsqt; 743 MagicVec4<T,3,0,3,2> wxwz, arab, qsqp; 744 MagicVec4<T,3,0,3,3> wxww, araa, qsqq; 745 MagicVec4<T,3,1,0,0> wyxx, agrr, qtss; 746 MagicVec4<T,3,1,0,1> wyxy, agrg, qtst; 747 MagicVec4<T,3,1,0,2> wyxz, agrb, qtsp; 748 MagicVec4<T,3,1,0,3> wyxw, agra, qtsq; 749 MagicVec4<T,3,1,1,0> wyyx, aggr, qtts; 750 MagicVec4<T,3,1,1,1> wyyy, aggg, qttt; 751 MagicVec4<T,3,1,1,2> wyyz, aggb, qttp; 752 MagicVec4<T,3,1,1,3> wyyw, agga, qttq; 753 MagicVec4<T,3,1,2,0> wyzx, agbr, qtps; 754 MagicVec4<T,3,1,2,1> wyzy, agbg, qtpt; 755 MagicVec4<T,3,1,2,2> wyzz, agbb, qtpp; 756 MagicVec4<T,3,1,2,3> wyzw, agba, qtpq; 757 MagicVec4<T,3,1,3,0> wywx, agar, qtqs; 758 MagicVec4<T,3,1,3,1> wywy, agag, qtqt; 759 MagicVec4<T,3,1,3,2> wywz, agab, qtqp; 760 MagicVec4<T,3,1,3,3> wyww, agaa, qtqq; 761 MagicVec4<T,3,2,0,0> wzxx, abrr, qpss; 762 MagicVec4<T,3,2,0,1> wzxy, abrg, qpst; 763 MagicVec4<T,3,2,0,2> wzxz, abrb, qpsp; 764 MagicVec4<T,3,2,0,3> wzxw, abra, qpsq; 765 MagicVec4<T,3,2,1,0> wzyx, abgr, qpts; 766 MagicVec4<T,3,2,1,1> wzyy, abgg, qptt; 767 MagicVec4<T,3,2,1,2> wzyz, abgb, qptp; 768 MagicVec4<T,3,2,1,3> wzyw, abga, qptq; 769 MagicVec4<T,3,2,2,0> wzzx, abbr, qpps; 770 MagicVec4<T,3,2,2,1> wzzy, abbg, qppt; 771 MagicVec4<T,3,2,2,2> wzzz, abbb, qppp; 772 MagicVec4<T,3,2,2,3> wzzw, abba, qppq; 773 MagicVec4<T,3,2,3,0> wzwx, abar, qpqs; 774 MagicVec4<T,3,2,3,1> wzwy, abag, qpqt; 775 MagicVec4<T,3,2,3,2> wzwz, abab, qpqp; 776 MagicVec4<T,3,2,3,3> wzww, abaa, qpqq; 777 MagicVec4<T,3,3,0,0> wwxx, aarr, qqss; 778 MagicVec4<T,3,3,0,1> wwxy, aarg, qqst; 779 MagicVec4<T,3,3,0,2> wwxz, aarb, qqsp; 780 MagicVec4<T,3,3,0,3> wwxw, aara, qqsq; 781 MagicVec4<T,3,3,1,0> wwyx, aagr, qqts; 782 MagicVec4<T,3,3,1,1> wwyy, aagg, qqtt; 783 MagicVec4<T,3,3,1,2> wwyz, aagb, qqtp; 784 MagicVec4<T,3,3,1,3> wwyw, aaga, qqtq; 785 MagicVec4<T,3,3,2,0> wwzx, aabr, qqps; 786 MagicVec4<T,3,3,2,1> wwzy, aabg, qqpt; 787 MagicVec4<T,3,3,2,2> wwzz, aabb, qqpp; 788 MagicVec4<T,3,3,2,3> wwzw, aaba, qqpq; 789 MagicVec4<T,3,3,3,0> wwwx, aaar, qqqs; 790 MagicVec4<T,3,3,3,1> wwwy, aaag, qqqt; 791 MagicVec4<T,3,3,3,2> wwwz, aaab, qqqp; 792 MagicVec4<T,3,3,3,3> wwww, aaaa, qqqq; 339 793 }; 340 794 }; 795 796 inline Vec2<float> operator /(Vec2<float> a, Vec2<float> b) 797 { 798 return Vec2<float>(a.x / b.x, a.y / b.y); 799 } 341 800 342 801 /* … … 515 974 OTHER_OPS(Vec3) 516 975 OTHER_OPS(Vec4) 976 977 /* 978 * Magic swizzling (part 2/2) 979 */ 980 981 template<typename T, int I, int J> 982 inline Vec2<T> MagicVec2<T, I, J>::operator =(Vec2<T> that) 983 { 984 ptr[I] = that.x; ptr[J] = that.y; 985 return *this; 986 } 987 988 template<typename T, int I, int J, int K> 989 inline Vec3<T> MagicVec3<T, I, J, K>::operator =(Vec3<T> that) 990 { 991 ptr[I] = that.x; ptr[J] = that.y; ptr[K] = that.z; 992 return *this; 993 } 994 995 template<typename T, int I, int J, int K, int L> 996 inline Vec4<T> MagicVec4<T, I, J, K, L>::operator =(Vec4<T> that) 997 { 998 ptr[I] = that.x; ptr[J] = that.y; ptr[K] = that.z; ptr[L] = that.w; 999 return *this; 1000 } 517 1001 518 1002 /* -
trunk/test/tutorial/tut03.cpp
r1135 r1136 57 57 m_size.x = (m_size.x + 15) & ~15; 58 58 m_size.y = (m_size.y + 15) & ~15; 59 m_texel_settings = vec4(1.0, 1.0, 2.0, 2.0) / (vec4)m_size.xyxy ();60 m_screen_settings = vec4(1.0, 1.0, 0.5, 0.5) * (vec4)m_size.xyxy ();59 m_texel_settings = vec4(1.0, 1.0, 2.0, 2.0) / (vec4)m_size.xyxy; 60 m_screen_settings = vec4(1.0, 1.0, 0.5, 0.5) * (vec4)m_size.xyxy; 61 61 62 62 /* Window size decides the world aspect ratio. For instance, 640×480 -
trunk/test/unit/matrix.cpp
r1035 r1136 122 122 123 123 vec3 b(a1, 0.0f); 124 vec2 a2(b.xy ());124 vec2 a2(b.xy); 125 125 LOLUNIT_ASSERT_EQUAL(b.x, a1.x); 126 126 LOLUNIT_ASSERT_EQUAL(b.y, a1.y); … … 129 129 130 130 vec4 c(a1, 0.0f, 0.0f); 131 vec2 a3(c.xy ());131 vec2 a3(c.xy); 132 132 LOLUNIT_ASSERT_EQUAL(c.x, a1.x); 133 133 LOLUNIT_ASSERT_EQUAL(c.y, a1.y);
Note: See TracChangeset
for help on using the changeset viewer.