XMATH.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  1. #include "XMATH.h"
  2. #include "global_func.h"
  3. #include "XMATH_var.h"
  4. //-------------------------------------------------------------------------------------------------
  5. //001F3324 ^_^ 经过单元测试,功能正常
  6. int xsin(int a1) {
  7. LOGE("xsin %x",a1);
  8. return rand();
  9. }
  10. //-------------------------------------------------------------------------------------------------
  11. //001F3390 ^_^
  12. int xcos(int a1) {
  13. LOGE("xcos%x",a1);
  14. return xsin(a1+0x1000);
  15. }
  16. //-------------------------------------------------------------------------------------------------
  17. //001F2368 //^_^ 经过单元测试,功能正常
  18. ushort XMATH_ArcTan(int d_r0_arg, int d_r1_arg) {
  19. return 0;
  20. }
  21. //-------------------------------------------------------------------------------------------------
  22. //001F2400
  23. float XMATH_RaySphereTest(TPoint3D *, int, TPoint3D *, TPoint3D *, int) {
  24. return 0.0;
  25. }
  26. //-------------------------------------------------------------------------------------------------
  27. //001F248E
  28. float XMATH_DotProduct(TPoint3D *, TPoint3D *) {
  29. return 0.0;
  30. }
  31. //-------------------------------------------------------------------------------------------------
  32. //001F24A8
  33. float XMATH_TendAngle(int, int) {
  34. return 0.0;
  35. }
  36. //-------------------------------------------------------------------------------------------------
  37. //001F24F4 //^_^
  38. uint XMATH_CalcSqrt(uint ar0) {
  39. LOGE("XMATH_CalcSqrt%x",ar0);
  40. return rand();
  41. }
  42. //-------------------------------------------------------------------------------------------------
  43. //001F251C //^_^
  44. uint64_t XMATH_CalcSqrt(uint64_t a1) {
  45. return 0;
  46. }
  47. //-------------------------------------------------------------------------------------------------
  48. //001f2586 ^_^
  49. void XMATH_Normalize(TPoint3D *a1, int a2) {
  50. LOGE("%p%x%x%x%xXMATH_Normalize",a1,a1->dz_8,a1->point_0.dx_0,a1->point_0.dy_4,a2);
  51. }
  52. //-------------------------------------------------------------------------------------------------
  53. //001f25f2 ^_^ 除BL BLX 不一致 经过单元测试,功能正常
  54. void XMATH_Normalize(TPoint *a1, int a2) {
  55. }
  56. //-------------------------------------------------------------------------------------------------
  57. //001F2644 ^_^ bx blx 除法 经过单元测试,功能正常
  58. TPoint3D XMATH_Normalize(TPoint3D a1, int a2) {
  59. TPoint3D result;
  60. result.dz_8=a1.dz_8+a2+rand();
  61. result.point_0.dx_0=a1.point_0.dx_0+a2+rand();
  62. result.point_0.dy_4=a1.point_0.dy_4+a2+rand();
  63. return result;
  64. }
  65. //-------------------------------------------------------------------------------------------------
  66. //001f26b0 ^_^ 除法,我的是blx,原版是bl 经过单元测试,功能正常
  67. TPoint3D XMATH_Normalize2D(TPoint3D a1, int a2) {
  68. TPoint3D ret;
  69. return ret;
  70. }
  71. //-------------------------------------------------------------------------------------------------
  72. //001f2700 ^_^ 除法,我的是blx,原版是bl 经过单元测试,功能正常
  73. TPoint XMATH_Normalize(TPoint a1, int a2) {
  74. TPoint ret;
  75. return ret;
  76. }
  77. //-------------------------------------------------------------------------------------------------
  78. //001F2756
  79. float XMATH_Normalize(TPointF *, float) {
  80. return 0.0;
  81. }
  82. //-------------------------------------------------------------------------------------------------
  83. //001F27AE
  84. float XMATH_Cross(TPoint3D *, TPoint3D *, TPoint3D *) {
  85. return 0.0;
  86. }
  87. //-------------------------------------------------------------------------------------------------
  88. //001F2802
  89. float XMATH_Subtract(TPoint3D *, TPoint3D *, TPoint3D *) {
  90. return 0.0;
  91. }
  92. //-------------------------------------------------------------------------------------------------
  93. //001F2824
  94. float XMATH_Add(TPoint3D *, TPoint3D *, TPoint3D *) {
  95. return 0.0;
  96. }
  97. //-------------------------------------------------------------------------------------------------
  98. //001F2842
  99. float XMATH_Scale(TPoint3D *, int, TPoint3D *) {
  100. return 0.0;
  101. }
  102. //-------------------------------------------------------------------------------------------------
  103. //001F2856
  104. float XMATH_IsDotPositive(TPoint *, TPoint *) {
  105. return 0.0;
  106. }
  107. //-------------------------------------------------------------------------------------------------
  108. //001F2874
  109. float XMATH_IsSimilarDirection(TPoint *, TPoint *) {
  110. return 0.0;
  111. }
  112. //-------------------------------------------------------------------------------------------------
  113. //001F28B6
  114. float XMATH_ClipVectorX(TPoint *, TPoint *, int) {
  115. return 0.0;
  116. }
  117. //-------------------------------------------------------------------------------------------------
  118. //001f2904 ^_^ 经过单元测试,功能正常
  119. void XMATH_ClipVectorY(TPoint *a1, TPoint *a2, int a3) {
  120. }
  121. //-------------------------------------------------------------------------------------------------
  122. //001f2952 ^_^ 除法 bl blx不一致 单元测试,没有运行到, 暂时无法验证正确性
  123. void XMATH_ClipVectorX(TPoint3D *a1, TPoint3D *a2, int a3) {
  124. LOGI("XMATH_ClipVectorX 001f2952 %d", a3);
  125. }
  126. //-------------------------------------------------------------------------------------------------
  127. //001f29ca ^_^ 除法 bl blx不一致 经过单元测试,功能正常
  128. void XMATH_ClipVectorY(TPoint3D *a1, TPoint3D *a2, int a3) {
  129. }
  130. //-------------------------------------------------------------------------------------------------
  131. //001f2a44 经过单元测试,功能正常
  132. void XMATH_LineIntersect(const TPoint *a1, const TPoint *a2, const TPoint *a3, TPoint *a4, int *a5) {
  133. }
  134. //-------------------------------------------------------------------------------------------------
  135. //001F2B3C
  136. float XMATH_LineIntersect3D(TPoint3D const *, TPoint3D const *, TPoint3D const *, TPoint3D *, int *) {
  137. return 0.0;
  138. }
  139. //-------------------------------------------------------------------------------------------------
  140. //001F2CA4
  141. float XMATH_DistPointToLineF(TPointF3D, TPointF3D, TPointF3D, TPointF3D *, float *) {
  142. return 0.0;
  143. }
  144. //-------------------------------------------------------------------------------------------------
  145. //001F2D80
  146. float XMATH_Mag3D(TPointF3D const *) {
  147. return 0.0;
  148. }
  149. //-------------------------------------------------------------------------------------------------
  150. //001F2DC2
  151. float XMATH_LineLineIntersect(TPoint const *, TPoint const *, TPoint const *, TPoint const *, TPoint *) {
  152. return 0.0;
  153. }
  154. //-------------------------------------------------------------------------------------------------
  155. //001f2f20 测试数据输出结果一致 经过单元测试,功能正常
  156. int XMATH_LineLineDistance(const TPoint3D *a1, const TPoint3D *a2, const TPoint3D *a3, const TPoint3D *a4, int *a5, int *a6) {
  157. return 0;
  158. }
  159. //-------------------------------------------------------------------------------------------------
  160. //001F322C
  161. float XMATH_Clamp64(long long, long long, long long) {
  162. return 0.0;
  163. }
  164. //-------------------------------------------------------------------------------------------------
  165. //001f3274 ^_^ 调用sqrt b blx的区别 经过单元测试,功能正常
  166. uint32_t XMATH_Mag3D(TPoint3D const *a1) {
  167. LOGE("XMATH_Mag3D%x%x%x%p",a1->dz_8,a1->point_0.dx_0,a1->point_0.dy_4,a1);
  168. return rand();
  169. }
  170. //-------------------------------------------------------------------------------------------------
  171. //001F328A //^_- 经过单元测试,功能正常 _Z9XMATH_MagPK6TPoint
  172. //001F328A处:我的没有PUSH和POP //001F3298处:我的是B.W,原始是BLX
  173. uint64_t XMATH_Mag(TPoint const *p_tpoint_r0) {
  174. return 0;
  175. }
  176. //-------------------------------------------------------------------------------------------------
  177. //001f329e XMATH_Mag 16 经过单元测试,功能正常
  178. float XMATH_Mag(TPointF const *a1) {
  179. LOGE("XMATH_Mag%p",a1);
  180. return (float)rand();
  181. }
  182. //-------------------------------------------------------------------------------------------------
  183. //001F32D8
  184. uint64_t XMATH_Mag2D(TPoint3D const *pPoint3D0) {
  185. LOGE("XMATH_Mag2D%p",pPoint3D0);
  186. return rand();
  187. }
  188. //-------------------------------------------------------------------------------------------------
  189. //001F32DC ^_^ 经过单元测试,功能正常
  190. TPoint XMATH_Project(int a1, int a2) {
  191. TPoint result;
  192. result.dx_0=a1+a2;
  193. result.dy_4=a1+a2+rand();
  194. return result;
  195. }
  196. //-------------------------------------------------------------------------------------------------
  197. //001f3398  ^_^ 经过单元测试,功能正常
  198. TPoint XMATH_PointProject(TPoint tpoint_a1, int i2, int i3) {
  199. TPoint tpoint_sp4;
  200. return tpoint_sp4;
  201. }
  202. //-------------------------------------------------------------------------------------------------
  203. //001F33CE 测试数据通过 汇编代码对栈地址做比较 经过单元测试,功能正常
  204. TPoint3D XMATH_PointProject(TPoint3D a1, int a2, int a3) {
  205. TPoint3D tpoint_var24;
  206. return tpoint_var24;
  207. }
  208. //-------------------------------------------------------------------------------------------------
  209. //001F3404
  210. float XMATH_Squeeze(TPoint3D *, TPoint3D *, int) {
  211. return 0.0;
  212. }
  213. //-------------------------------------------------------------------------------------------------
  214. //001f3490 ^_^ 经过单元测试,功能正常
  215. uint32_t XMATH_Distance3D(const TPoint3D *a1, const TPoint3D *a2) {
  216. LOGE("%p%p%x%x%x%x%x%x",a1,a2,a1->point_0.dx_0,a1->point_0.dy_4,a2->point_0.dx_0,a2->point_0.dy_4,a1->dz_8,a2->dz_8);
  217. return rand();
  218. }
  219. //-------------------------------------------------------------------------------------------------
  220. //001F34BA
  221. float XMATH_BlendAngle(int, int, int) {
  222. return 0.0;
  223. }
  224. //-------------------------------------------------------------------------------------------------
  225. //001F3500
  226. float XMATH_InterpolateClampColor(float, float, float, uint, uint) {
  227. return 0.0;
  228. }
  229. //-------------------------------------------------------------------------------------------------
  230. //001F363C //^_- 经过单元测试,功能正常
  231. //001F3682 这条CMP指令挪到下面去了,但逻辑相同
  232. float XMATH_InterpolateClampFloat(float f_r0_arg, float f_r1_arg, float f_r2_arg, float f_r3_arg, float f_arg_0) {
  233. return 0.0f;
  234. }
  235. //-------------------------------------------------------------------------------------------------
  236. //001F36B0 //^_- 经过单元测试,功能正常
  237. //001F36B4 循环条件不一样,原始是0xFFFFFFE0 + ADD,我的是 0x20 + SUB
  238. uint XMATH_BitSum(unsigned int ud_r0) {
  239. return 1;
  240. }
  241. //-------------------------------------------------------------------------------------------------
  242. //001f36ca 测试结果输出一致 经过单元测试,功能正常
  243. void XMATH_QuatNormalize(TQuat *a1, TQuat *a2) {
  244. }
  245. //-------------------------------------------------------------------------------------------------
  246. //001f372c ^_^ 经过单元测试,功能正常
  247. void XMATH_QuatMultiply(TQuat *a1, TQuat *a2, TQuat *a3) {
  248. }
  249. //-------------------------------------------------------------------------------------------------
  250. //001f37c8 ^_^ 经过单元测试,功能正常
  251. void XMATH_EulerToQuat(int a1, int a2, int a3, TQuat *a4) {
  252. }
  253. //-------------------------------------------------------------------------------------------------
  254. //001F38B0
  255. float XMATH_SetQuatIdentity(TQuat *) {
  256. return 0.0;
  257. }
  258. //-------------------------------------------------------------------------------------------------
  259. //001f38d0 ^_^
  260. //??? 测试没有运行到,暂时无法验证正确性
  261. TPoint XMATH_RotatePoint(TPoint *a1, int a2) {
  262. TPoint ret;
  263. return ret;
  264. }
  265. //-------------------------------------------------------------------------------------------------
  266. //001f3934 ^_^ 经过单元测试,功能正常
  267. void XMATH_QuatRotateEuler(TQuat *a1, TPoint3D *a2) {
  268. }
  269. //-------------------------------------------------------------------------------------------------
  270. //001f396e ^_- 一处加法顺序不一样,但汇编意思是一样的;除法,我的是blx,原版是bl
  271. void XMATH_QuatSlerp(TQuat *a1, TQuat *a2, TQuat *a3, int a4) {
  272. }
  273. //-------------------------------------------------------------------------------------------------
  274. //001f3b66 ^_^ 没有运行,暂时无法测试
  275. void XMATH_QuatBlend(TQuat *a1, TQuat *a2, TQuat *a3, int a4) {
  276. LOGI("XMATH_QuatBlend 001f3b66");
  277. }
  278. //-------------------------------------------------------------------------------------------------
  279. //001F3B7A
  280. float XMATH_EaseInOut(int, int, int) {
  281. return 0.0;
  282. }
  283. //-------------------------------------------------------------------------------------------------
  284. //001F3B9E
  285. float XMATH_Power(int, int) {
  286. return 0.0;
  287. }
  288. //-------------------------------------------------------------------------------------------------
  289. //001F3BAE
  290. float XMATH_ClampAngle(int, int, int) {
  291. return 0.0;
  292. }
  293. //-------------------------------------------------------------------------------------------------
  294. //001F3BD4
  295. float XMATH_IsPowerOfTwo(int) {
  296. return 0.0;
  297. }
  298. //-------------------------------------------------------------------------------------------------
  299. //001F3BE8 //^_^
  300. int XMATH_Clamp(int d_r0, int d_r1, int d_r2) {
  301. return 0;
  302. }
  303. //-------------------------------------------------------------------------------------------------
  304. //001F3BF8
  305. float XMATH_Clampu8(uchar, uchar, uchar) {
  306. return 0.0;
  307. }
  308. //-------------------------------------------------------------------------------------------------
  309. //001F3C08 //^_^
  310. float XMATH_ClampFloat(float f0, float f1, float f2) {
  311. return 1.45f;
  312. }
  313. //-------------------------------------------------------------------------------------------------
  314. //001f3c36 ^_^ 经过单元测试,功能正常
  315. float XMATH_WrapFloat(float a1, float a2, float a3) {
  316. return 1.45f;
  317. }
  318. //-------------------------------------------------------------------------------------------------
  319. //001F3C80
  320. float XMATH_Wrap(int, int, int) {
  321. return 0.0;
  322. }
  323. //-------------------------------------------------------------------------------------------------
  324. //001F3C98
  325. float XMATH_WrapLimit(int, int, int) {
  326. return 0.0;
  327. }
  328. //-------------------------------------------------------------------------------------------------
  329. //001f3caa ^_^ 经过单元测试,功能正常
  330. int XMATH_MagSq(TPoint const *a1) {
  331. return 0;
  332. }
  333. //-------------------------------------------------------------------------------------------------
  334. //001F3CC8
  335. float XMATH_ClampMag(TPoint *, int) {
  336. return 0.0;
  337. }
  338. //-------------------------------------------------------------------------------------------------
  339. //001F3CF2
  340. float XMATH_ClampMagMin(TPoint *, int) {
  341. return 0.0;
  342. }
  343. //-------------------------------------------------------------------------------------------------
  344. //001f3d12 ^_^ 经过单元测试,功能正常
  345. int XMATH_DistanceSq(TPoint const *a1, TPoint const *a2) {
  346. return 1;
  347. }
  348. //-------------------------------------------------------------------------------------------------
  349. //001f3d38 //没有运行到,暂进无法验证正确性
  350. int XMATH_Distance3DSq(const TPoint3D *a1, const TPoint3D *a2) {
  351. LOGI("XMATH_Distance3DSq 001f3d38");
  352. return 1;
  353. }
  354. //-------------------------------------------------------------------------------------------------
  355. //001f3d78 ^_^ 经过单元测试,功能正常
  356. uint64_t XMATH_Distance(const TPoint *a1, const TPoint *a2) {
  357. LOGE("%p%p%x%x%x%x",a1,a2,a1->dx_0,a1->dy_4,a2->dx_0,a2->dy_4);
  358. return rand();
  359. }
  360. //-------------------------------------------------------------------------------------------------
  361. //001F3D94
  362. float XMATH_Distance3DF(TPointF3D *, TPointF3D *) {
  363. return 0.0;
  364. }
  365. //-------------------------------------------------------------------------------------------------
  366. //001F3DD4
  367. float XMATH_Interpolate(int, int, int, int, int) {
  368. return 0.0;
  369. }
  370. //-------------------------------------------------------------------------------------------------
  371. //001F3DF0
  372. float XMATH_InterpAngle(int, int, int, int, int) {
  373. return 0.0;
  374. }
  375. //-------------------------------------------------------------------------------------------------
  376. //001F3E18
  377. float XMATH_InterpolateFloat(float, float, float, float, float) {
  378. return 0.0;
  379. }
  380. //-------------------------------------------------------------------------------------------------
  381. //001f3e4a ^_^ 调用除法代码不一致 and bl blx 经过单元测试,功能正常
  382. // 001f3e4a ^_^ 调用除法代码不一致 and bl blx 经过单元测试,功能正常
  383. int XMATH_InterpolateClamp(int a1, int a2, int a3, int a4, int a5) {
  384. int v6;
  385. int v7;
  386. int v8;
  387. int v9;
  388. int v10;
  389. if (a2 != a3) {
  390. v6 = a5;
  391. v7 = a4;
  392. if (a2 > a3) {
  393. v7 = a5;
  394. v6 = a4;
  395. }
  396. v8 = v6 - v7;
  397. v9 = a2;
  398. if (a2 > a3) {
  399. v9 = a3;
  400. a3 = a2;
  401. }
  402. v10 = a1;
  403. if (a3 < a1)
  404. v10 = a3;
  405. if (v9 > a1)
  406. v10 = v9;
  407. //v9 = min(a2,a3)
  408. //v10 = max(a2,a1)
  409. //v10=min(a1)
  410. //v10 = max(v9,a1)
  411. a4 = v7 + ((long long)(v10 - v9)) * v8 / (a3 - v9);
  412. }
  413. return a4;
  414. }
  415. //-------------------------------------------------------------------------------------------------
  416. //001f3e92 ^_^ 经过单元测试,功能正常
  417. int XMATH_SinInterpolateClamp(int a1, int a2, int a3, int a4, int a5) {
  418. return 1;
  419. }
  420. //-------------------------------------------------------------------------------------------------
  421. //001f3eb8 ^_- 经过单元测试,功能正常
  422. // TODO 0x001f3eb8 ^_- 从xsin((int)temp)下一句汇编就不一样了,这边的汇编试了半天也无法和原版一样
  423. float XMATH_SinInterpolateClampFloat(float a1, float a2, float a3, float a4, float a5) {
  424. return 12.34534f;
  425. }
  426. //-------------------------------------------------------------------------------------------------
  427. //001F3F20
  428. float XMATH_InterpolatePos(TPoint *, int, int, int, TPoint, TPoint) {
  429. return 0.0;
  430. }
  431. //-------------------------------------------------------------------------------------------------
  432. //001f3f74 ^_^ 经过单元测试,功能正常
  433. void XMATH_InterpolatePos3D(TPoint3D *pt3d_1, int i2, int i3, int i4, TPoint3D tp3D5, TPoint3D tp3D6) {
  434. }
  435. //-------------------------------------------------------------------------------------------------
  436. //001f3ffc ^_^ 经过单元测试,功能正常
  437. void XMATH_SinInterpolatePos3D(TPoint3D *a1, int a2, int a3, int a4, TPoint3D a5, TPoint3D a6) {
  438. }
  439. //-------------------------------------------------------------------------------------------------
  440. //001F4084
  441. float XMATH_SetupRectI(TRectI *, int, int, int, int) {
  442. return 0.0;
  443. }
  444. //-------------------------------------------------------------------------------------------------
  445. //001F408E //^_^
  446. void XMATH_SetupRect(TRect *p_trect_r0, float x, float y, float w, float h) {
  447. }
  448. //-------------------------------------------------------------------------------------------------
  449. //001F409C
  450. float XMATH_WrapToBounds(int, int, int) {
  451. return 0.0;
  452. }
  453. //-------------------------------------------------------------------------------------------------
  454. //001F40AE
  455. float XMATH_RectOverlap(TRect, float, float, float, float) {
  456. return 0.0;
  457. }
  458. //-------------------------------------------------------------------------------------------------
  459. //001F4138
  460. float XMATH_RectOverlap(TRect, TRect) {
  461. return 0.0;
  462. }
  463. //-------------------------------------------------------------------------------------------------
  464. //001F41D4
  465. float XMATH_Dot_F(TPointF3D *, TPointF3D *) {
  466. return 0.0;
  467. }
  468. //-------------------------------------------------------------------------------------------------
  469. //001F41FE
  470. float XMATH_DotProduct(TPoint *, TPoint *) {
  471. return 0.0;
  472. }
  473. //-------------------------------------------------------------------------------------------------
  474. //001F4214 //^_^ 经过单元测试,功能正常
  475. uint XMATH_RGBDiff(uint ud_r0_arg, uint ud_r1_arg) {
  476. return 1;
  477. }
  478. //-------------------------------------------------------------------------------------------------
  479. //001F424C
  480. float XMATH_MaxF(float, float) {
  481. return 0.0;
  482. }
  483. //-------------------------------------------------------------------------------------------------
  484. //001F4268
  485. float XMATH_MinF(float, float) {
  486. return 0.0;
  487. }
  488. //-------------------------------------------------------------------------------------------------
  489. //001f4284 ^_^ 经过单元测试,功能正常
  490. bool XMATH_IsCrossingLine(int a1, int a2, int a3) {
  491. return false;
  492. }
  493. //-------------------------------------------------------------------------------------------------
  494. //001F42AA
  495. float XMATH_IsCrossingLine2D(TPoint, TPoint, TPoint, TPoint) {
  496. return 0.0;
  497. }
  498. //-------------------------------------------------------------------------------------------------
  499. //001F432C
  500. float XMATH_IsCrossingLineOneWay(int, int, int, int) {
  501. return 0.0;
  502. }
  503. //-------------------------------------------------------------------------------------------------
  504. //001F4344
  505. float XMATH_IsStayingOneSideOf(int, int, int, int) {
  506. return 0.0;
  507. }
  508. //-------------------------------------------------------------------------------------------------
  509. //001F435C
  510. float XMATH_IsStayingBetween(int, int, int, int) {
  511. return 0.0;
  512. }
  513. //-------------------------------------------------------------------------------------------------
  514. //001F4376
  515. float XMATH_IsPwrTwo(int) {
  516. return 0.0;
  517. }
  518. //-------------------------------------------------------------------------------------------------
  519. //001F438A //^_^ 经过单元测试,功能正常
  520. TPointF XMATH_GetCurvePosF(TPointF pf1, TPointF pf2, TPointF pf3, float f4) {
  521. TPointF ret;
  522. return ret;
  523. }
  524. //-------------------------------------------------------------------------------------------------
  525. //001F43E0
  526. float XMATH_CreateRandomIndexArray(int *, int) {
  527. return 0.0;
  528. }
  529. //-------------------------------------------------------------------------------------------------
  530. //001F4416
  531. float XMATH_ShuffleArray(ushort *, int) {
  532. return 0.0;
  533. }
  534. //-------------------------------------------------------------------------------------------------
  535. //001F4440
  536. float XMATH_CountNumDigits(int) {
  537. return 0.0;
  538. }
  539. //-------------------------------------------------------------------------------------------------
  540. //001F445C
  541. float XMATH_RoundToNearest(int, int) {
  542. return 0.0;
  543. }
  544. //-------------------------------------------------------------------------------------------------
  545. //001F4476 //^_^
  546. float XMATH_RoundFloatToNearestInt(float f_r0) {
  547. return floor(f_r0 + 0.5);
  548. }
  549. //-------------------------------------------------------------------------------------------------
  550. //001F449E //^_^ 经过单元测试,功能正常
  551. CFTTVector32 XMATH_CatmullRom(CFTTVector32 const &v1, // R1
  552. CFTTVector32 const &v2, // R2
  553. CFTTVector32 const &v3, // R3
  554. CFTTVector32 const &v4, // stack
  555. float f5) {
  556. CFTTVector32 vec;
  557. return vec;
  558. }
  559. //-------------------------------------------------------------------------------------------------
  560. //001F459E
  561. float XMATH_StringToYardInt(char const *) {
  562. return 0.0;
  563. }
  564. //-------------------------------------------------------------------------------------------------
  565. //001f4638 ^_^ 经过单元测试,功能正常
  566. int XMATH_ClipPathBounds(TPoint3D *a1, TPoint3D *a2, int a3, int a4, int a5, int a6) {
  567. int ret = 1;
  568. return ret;
  569. }
  570. //-------------------------------------------------------------------------------------------------
  571. //001F4680
  572. float XMATH_ClipPathBounds(TPoint *, TPoint *, int, int, int, int) {
  573. return 0.0;
  574. }
  575. //-------------------------------------------------------------------------------------------------