Lines Matching refs:pOut
23 MTX23Add(MTX23* pOut, const MTX23* p1, const MTX23* p2)
25 NN_NULL_ASSERT( pOut );
29 pOut->f._00 = p1->f._00 + p2->f._00;
30 pOut->f._01 = p1->f._01 + p2->f._01;
31 pOut->f._02 = p1->f._02 + p2->f._02;
33 pOut->f._10 = p1->f._10 + p2->f._10;
34 pOut->f._11 = p1->f._11 + p2->f._11;
35 pOut->f._12 = p1->f._12 + p2->f._12;
37 return pOut;
41 MTX23Copy(MTX23* pOut, const MTX23* p)
43 NN_NULL_ASSERT( pOut );
46 if (pOut != p)
48 *pOut = *p;
51 return pOut;
55 MTX23Identity(MTX23* pOut)
57 NN_NULL_ASSERT( pOut );
59 MTX23Copy(pOut, MTX23::Identity());
61 return pOut;
74 MTX23MAdd(MTX23* pOut, f32 t, const MTX23* p1, const MTX23* p2)
76 NN_NULL_ASSERT( pOut );
80 pOut->f._00 = t * p1->f._00 + p2->f._00;
81 pOut->f._01 = t * p1->f._01 + p2->f._01;
82 pOut->f._02 = t * p1->f._02 + p2->f._02;
84 pOut->f._10 = t * p1->f._10 + p2->f._10;
85 pOut->f._11 = t * p1->f._11 + p2->f._11;
86 pOut->f._12 = t * p1->f._12 + p2->f._12;
88 return pOut;
92 MTX23Mult(MTX23* pOut, const MTX23* p, f32 f)
94 NN_NULL_ASSERT( pOut );
97 pOut->f._00 = p->f._00 * f;
98 pOut->f._01 = p->f._01 * f;
99 pOut->f._02 = p->f._02 * f;
101 pOut->f._10 = p->f._10 * f;
102 pOut->f._11 = p->f._11 * f;
103 pOut->f._12 = p->f._12 * f;
105 return pOut;
109 MTX23Mult(MTX23* pOut, const MTX23* __restrict p1, const MTX23* __restrict p2)
111 NN_NULL_ASSERT( pOut );
118 if ( (pOut == p1) || (pOut == p2) )
124 pMtx = pOut;
137 MTX23Copy(pOut, &tmp);
140 return pOut;
144 MTX23MultTranslate(MTX23* pOut, const MTX23* pM, const VEC2* pT)
146 if (pOut != pM)
148 (void)MTX23Copy(pOut, pM);
154 pOut->f._02 = tmp.x;
155 pOut->f._12 = tmp.y;
156 return pOut;
160 MTX23MultTranslate(MTX23* pOut, const VEC2* pT, const MTX23* pM)
162 NN_NULL_ASSERT(pOut);
167 f32 (*const dst)[3] = pOut->m;
178 return pOut;
182 MTX23RotCenterFIdx(MTX23* pOut, const VEC2* pCenter, f32 fIdx)
184 NN_NULL_ASSERT( pOut );
197 (void)MTX23RotFIdx(pOut, fIdx);
199 MTX23Mult(pOut, &trans, pOut);
204 MTX23Mult(pOut, pOut, &trans);
206 return pOut;
210 MTX23RotFIdx(MTX23* pOut, f32 fIdx)
212 NN_NULL_ASSERT( pOut );
218 pOut->f._00 = pOut->f._11 = cos;
219 pOut->f._01 = sin;
220 pOut->f._10 = -sin;
221 pOut->f._02 = pOut->f._12 = 0.f;
223 return pOut;
227 MTX23Scale(MTX23* pOut, const MTX23* __restrict pM, const VEC2* __restrict pS)
229 NN_NULL_ASSERT( pOut );
233 pOut->f._00 = pM->f._00 * pS->x;
234 pOut->f._10 = pM->f._10 * pS->x;
236 pOut->f._01 = pM->f._01 * pS->y;
237 pOut->f._11 = pM->f._11 * pS->y;
239 if (pOut != pM)
241 pOut->f._02 = pM->f._02;
242 pOut->f._12 = pM->f._12;
244 return pOut;
248 MTX23Sub(MTX23* pOut, const MTX23* p1, const MTX23* p2)
250 NN_NULL_ASSERT( pOut );
254 pOut->f._00 = p1->f._00 - p2->f._00;
255 pOut->f._01 = p1->f._01 - p2->f._01;
256 pOut->f._02 = p1->f._02 - p2->f._02;
258 pOut->f._10 = p1->f._10 - p2->f._10;
259 pOut->f._11 = p1->f._11 - p2->f._11;
260 pOut->f._12 = p1->f._12 - p2->f._12;
262 return pOut;
266 MTX23Translate(MTX23* pOut, const VEC2* pT)
268 NN_NULL_ASSERT( pOut );
271 f32 (*const m)[3] = pOut->m;
276 return pOut;
280 MTX23Zero(MTX23* pOut)
282 NN_NULL_ASSERT( pOut );
284 pOut->f._00 = pOut->f._01 = pOut->f._02 =
285 pOut->f._10 = pOut->f._11 = pOut->f._12 = 0.f;
287 return pOut;