MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / xVec3Hdng

Function xVec3Hdng

src/SB/Core/x/xMovePoint.cpp:178–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

176}
177
178inline F32 xVec3Hdng(xVec3* a, const xVec3* b, const xVec3* c)
179{
180 F32 dx = c->x - b->x;
181 F32 dy = c->y - b->y;
182 F32 dz = c->z - b->z;
183 F32 len2 = dx * dx + dy * dy + dz * dz;
184 F32 len, invLen, ret;
185
186 if (xeq(len2, 1.0f, 0.00001f))
187 {
188 a->x = dx;
189 a->y = dy;
190 a->z = dz;
191 ret = 1.0f;
192 }
193 else if (xeq(len2, 0.0f, 0.00001f))
194 {
195 a->x = 0.0f;
196 a->y = 1.0f;
197 a->z = 0.0f;
198 ret = 0.0f;
199 }
200 else
201 {
202 len = xsqrt(len2);
203 invLen = 1.0f / len;
204 a->x = dx * invLen;
205 a->y = dy * invLen;
206 a->z = dz * invLen;
207 ret = len;
208 }
209
210 return ret;
211}

Callers 1

xMovePointGetNextFunction · 0.85

Calls 1

xsqrtFunction · 0.85

Tested by

no test coverage detected