Lines Matching refs:pOut
31 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
36 @return pOut を返します。
39 QUATAdd(QUAT* pOut, const QUAT* q1, const QUAT* q2)
41 NN_NULL_ASSERT( pOut );
45 pOut->x = q1->x + q2->x;
46 pOut->y = q1->y + q2->y;
47 pOut->z = q1->z + q2->z;
48 pOut->w = q1->w + q2->w;
50 return pOut;
57 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
62 @return pOut を返します。
65 QUATSub(QUAT *pOut, const QUAT *q1, const QUAT *q2)
67 NN_NULL_ASSERT( pOut );
71 pOut->x = q1->x - q2->x;
72 pOut->y = q1->y - q2->y;
73 pOut->z = q1->z - q2->z;
74 pOut->w = q1->w - q2->w;
76 return pOut;
83 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
88 @return pOut を返します。
91 QUATDivide(QUAT* pOut, const QUAT* q1, const QUAT* q2)
95 NN_NULL_ASSERT( pOut );
100 QUATMult(pOut, &qtmp, q1);
102 return pOut;
127 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
132 @return pOut を返します。
135 QUATScale(QUAT* pOut, const QUAT* q, f32 scale)
137 NN_NULL_ASSERT( pOut );
140 pOut->x = q->x * scale;
141 pOut->y = q->y * scale;
142 pOut->z = q->z * scale;
143 pOut->w = q->w * scale;
145 return pOut;
152 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
157 @return pOut を返します。
160 QUATExp(QUAT* pOut, const QUAT* __restrict q)
164 NN_NULL_ASSERT( pOut );
178 pOut->x = scale * q->x;
179 pOut->y = scale * q->y;
180 pOut->z = scale * q->z;
181 pOut->w = (f32)::std::cosf(theta);
183 return pOut;
190 @param[out] pOut 計算結果を受け取るバッファへのポインタ。
194 @return pOut を返します。
197 QUATLogN(QUAT* pOut, const QUAT* __restrict q)
201 NN_NULL_ASSERT( pOut );
214 pOut->x = scale * q->x;
215 pOut->y = scale * q->y;
216 pOut->z = scale * q->z;
217 pOut->w = 0.0F;
219 return pOut;
226 @param[out] pOut 計算結果を受け取るバッファへのポインタ。q1, q2 と同じクォータニオンを指していても構いません。
231 @return pOut を返します。
234 QUATLerp(QUAT* pOut, const QUAT* __restrict q1, const QUAT* __restrict q2, f32 t)
236 NN_NULL_ASSERT( pOut );
240 pOut->x = t * ( q2->x - q1->x ) + q1->x;
241 pOut->y = t * ( q2->y - q1->y ) + q1->y;
242 pOut->z = t * ( q2->z - q1->z ) + q1->z;
243 pOut->w = t * ( q2->w - q1->w ) + q1->w;
245 return pOut;
252 @param[out] pOut 計算結果を受け取るバッファへのポインタ。q1, q2 と同じクォータニオンを指していても構いません。
257 @return pOut を返します。
260 QUATSlerp(QUAT* pOut, const QUAT* __restrict q1, const QUAT* __restrict q2, f32 t)
264 NN_NULL_ASSERT( pOut );
291 pOut->x = tp * q1->x + tq * q2->x;
292 pOut->y = tp * q1->y + tq * q2->y;
293 pOut->z = tp * q1->z + tq * q2->z;
294 pOut->w = tp * q1->w + tq * q2->w;
296 return pOut;
303 @param[out] pOut 計算結果を受け取るバッファへのポインタ。p, a, b, q と同じクォータニオンを指していても構いません。
310 @return pOut を返します。
313 QUATSquad(QUAT* pOut, const QUAT* p, const QUAT* a, const QUAT* b, const QUAT* q, f32 t)
318 NN_NULL_ASSERT( pOut );
327 QUATSlerp(pOut, &pq, &ab, t2);
329 return pOut;
336 @param[out] pOut resultant modified quaternion
343 QUATMakeClosest(QUAT* pOut, const QUAT *q, const QUAT *qto)
347 NN_NULL_ASSERT(pOut);
355 pOut->x = -q->x;
356 pOut->y = -q->y;
357 pOut->z = -q->z;
358 pOut->w = -q->w;
362 *pOut = *q;
365 return pOut;
373 @param[out] pOut 結果のクォータニオンへのポインタ。
381 QUATRotAxisRad( QUAT *pOut, const VEC3 *axis, f32 rad )
386 NN_NULL_ASSERT( pOut );
395 pOut->x = sh * nAxis.x;
396 pOut->y = sh * nAxis.y;
397 pOut->z = sh * nAxis.z;
398 pOut->w = ch;
400 return pOut;