easing.h 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193
  1. /*
  2. * Copyright 2011-2026 Branimir Karadzic. All rights reserved.
  3. * License: https://github.com/bkaradzic/bx/blob/master/LICENSE
  4. */
  5. #ifndef BX_EASING_H_HEADER_GUARD
  6. #define BX_EASING_H_HEADER_GUARD
  7. #include "math.h"
  8. namespace bx
  9. {
  10. ///
  11. struct Easing
  12. {
  13. enum Enum
  14. {
  15. Linear,
  16. Step,
  17. SmoothStep,
  18. InQuad,
  19. OutQuad,
  20. InOutQuad,
  21. OutInQuad,
  22. InCubic,
  23. OutCubic,
  24. InOutCubic,
  25. OutInCubic,
  26. InQuart,
  27. OutQuart,
  28. InOutQuart,
  29. OutInQuart,
  30. InQuint,
  31. OutQuint,
  32. InOutQuint,
  33. OutInQuint,
  34. InSine,
  35. OutSine,
  36. InOutSine,
  37. OutInSine,
  38. InExpo,
  39. OutExpo,
  40. InOutExpo,
  41. OutInExpo,
  42. InCirc,
  43. OutCirc,
  44. InOutCirc,
  45. OutInCirc,
  46. InElastic,
  47. OutElastic,
  48. InOutElastic,
  49. OutInElastic,
  50. InBack,
  51. OutBack,
  52. InOutBack,
  53. OutInBack,
  54. InBounce,
  55. OutBounce,
  56. InOutBounce,
  57. OutInBounce,
  58. Count
  59. };
  60. };
  61. ///
  62. typedef float (*EaseFn)(float _t);
  63. ///
  64. EaseFn getEaseFunc(Easing::Enum _enum);
  65. /// Linear.
  66. ///
  67. /// ^
  68. /// |
  69. /// |
  70. /// |
  71. /// |
  72. /// |
  73. /// | *******
  74. /// | *******
  75. /// | ********
  76. /// | *******
  77. /// | *******
  78. /// | ********
  79. /// | *******
  80. /// | ********
  81. /// | *******
  82. /// +*******--------------------------------------------------------->
  83. /// |*
  84. /// |
  85. /// |
  86. /// |
  87. /// |
  88. ///
  89. BX_CONST_FUNC float easeLinear(float _t);
  90. /// Step.
  91. ///
  92. /// ^
  93. /// |
  94. /// |
  95. /// |
  96. /// |
  97. /// | ********************************
  98. /// |
  99. /// |
  100. /// |
  101. /// |
  102. /// |
  103. /// |
  104. /// |
  105. /// |
  106. /// |
  107. /// +********************************-------------------------------->
  108. /// |
  109. /// |
  110. /// |
  111. /// |
  112. /// |
  113. ///
  114. BX_CONST_FUNC float easeStep(float _t);
  115. /// Smooth step.
  116. ///
  117. /// |
  118. /// |
  119. /// |
  120. /// |
  121. /// |
  122. /// | *************
  123. /// | *******
  124. /// | ******
  125. /// | *****
  126. /// | *****
  127. /// | *****
  128. /// | *****
  129. /// | ******
  130. /// | *******
  131. /// +*************--------------------------------------------------->
  132. /// |
  133. /// |
  134. /// |
  135. /// |
  136. /// |
  137. ///
  138. BX_CONST_FUNC float easeSmoothStep(float _t);
  139. /// Quad.
  140. ///
  141. /// ^
  142. /// |
  143. /// |
  144. /// |
  145. /// |
  146. /// |
  147. /// | ****
  148. /// | ****
  149. /// | *****
  150. /// | *****
  151. /// | *****
  152. /// | ******
  153. /// | ******
  154. /// | ********
  155. /// | *********
  156. /// +*********************------------------------------------------->
  157. /// |*
  158. /// |
  159. /// |
  160. /// |
  161. /// |
  162. ///
  163. BX_CONST_FUNC float easeInQuad(float _t);
  164. /// Out quad.
  165. ///
  166. /// ^
  167. /// |
  168. /// |
  169. /// |
  170. /// |
  171. /// |
  172. /// | *********************
  173. /// | *********
  174. /// | *******
  175. /// | ******
  176. /// | ******
  177. /// | *****
  178. /// | *****
  179. /// | *****
  180. /// | ****
  181. /// +****------------------------------------------------------------>
  182. /// |*
  183. /// |
  184. /// |
  185. /// |
  186. /// |
  187. ///
  188. BX_CONST_FUNC float easeOutQuad(float _t);
  189. /// In out quad.
  190. ///
  191. /// ^
  192. /// |
  193. /// |
  194. /// |
  195. /// |
  196. /// |
  197. /// | ***************
  198. /// | *******
  199. /// | *****
  200. /// | *****
  201. /// | ****
  202. /// | *****
  203. /// | *****
  204. /// | *****
  205. /// | *******
  206. /// +***************------------------------------------------------->
  207. /// |*
  208. /// |
  209. /// |
  210. /// |
  211. /// |
  212. ///
  213. BX_CONST_FUNC float easeInOutQuad(float _t);
  214. /// Out in quad.
  215. ///
  216. /// ^
  217. /// |
  218. /// |
  219. /// |
  220. /// |
  221. /// |
  222. /// | ****
  223. /// | *****
  224. /// | *****
  225. /// | *******
  226. /// | ***************
  227. /// | ****************
  228. /// | *******
  229. /// | *****
  230. /// | *****
  231. /// +****------------------------------------------------------------>
  232. /// |*
  233. /// |
  234. /// |
  235. /// |
  236. /// |
  237. ///
  238. BX_CONST_FUNC float easeOutInQuad(float _t);
  239. /// In cubic.
  240. ///
  241. /// ^
  242. /// |
  243. /// |
  244. /// |
  245. /// |
  246. /// |
  247. /// | ***
  248. /// | ***
  249. /// | ****
  250. /// | ***
  251. /// | ****
  252. /// | ****
  253. /// | ******
  254. /// | ******
  255. /// | *********
  256. /// +******************************---------------------------------->
  257. /// |*
  258. /// |
  259. /// |
  260. /// |
  261. /// |
  262. ///
  263. BX_CONST_FUNC float easeInCubic(float _t);
  264. /// Out cubic.
  265. ///
  266. /// ^
  267. /// |
  268. /// |
  269. /// |
  270. /// |
  271. /// | *
  272. /// | ******************************
  273. /// | *********
  274. /// | ******
  275. /// | ******
  276. /// | ****
  277. /// | ****
  278. /// | ****
  279. /// | ****
  280. /// | ***
  281. /// +***------------------------------------------------------------->
  282. /// |*
  283. /// |
  284. /// |
  285. /// |
  286. /// |
  287. ///
  288. BX_CONST_FUNC float easeOutCubic(float _t);
  289. /// In out cubic.
  290. ///
  291. /// ^
  292. /// |
  293. /// |
  294. /// |
  295. /// |
  296. /// | *
  297. /// | *******************
  298. /// | ******
  299. /// | ****
  300. /// | ****
  301. /// | ***
  302. /// | ****
  303. /// | ***
  304. /// | ****
  305. /// | ******
  306. /// +*******************--------------------------------------------->
  307. /// |*
  308. /// |
  309. /// |
  310. /// |
  311. /// |
  312. ///
  313. BX_CONST_FUNC float easeInOutCubic(float _t);
  314. /// Out in cubic.
  315. ///
  316. /// ^
  317. /// |
  318. /// |
  319. /// |
  320. /// |
  321. /// |
  322. /// | ***
  323. /// | ***
  324. /// | ****
  325. /// | ******
  326. /// | *******************
  327. /// | ********************
  328. /// | ******
  329. /// | ****
  330. /// | ****
  331. /// +***------------------------------------------------------------->
  332. /// |*
  333. /// |
  334. /// |
  335. /// |
  336. /// |
  337. ///
  338. BX_CONST_FUNC float easeOutInCubic(float _t);
  339. /// In quart.
  340. ///
  341. /// ^
  342. /// |
  343. /// |
  344. /// |
  345. /// |
  346. /// |
  347. /// | **
  348. /// | ***
  349. /// | ***
  350. /// | ***
  351. /// | ****
  352. /// | ****
  353. /// | ****
  354. /// | ******
  355. /// | *******
  356. /// +************************************---------------------------->
  357. /// |*
  358. /// |
  359. /// |
  360. /// |
  361. /// |
  362. ///
  363. BX_CONST_FUNC float easeInQuart(float _t);
  364. /// Out quart.
  365. ///
  366. /// ^
  367. /// |
  368. /// |
  369. /// |
  370. /// |
  371. /// | *
  372. /// | ************************************
  373. /// | ********
  374. /// | ******
  375. /// | ****
  376. /// | ****
  377. /// | ****
  378. /// | ***
  379. /// | ***
  380. /// | ***
  381. /// +**-------------------------------------------------------------->
  382. /// |*
  383. /// |
  384. /// |
  385. /// |
  386. /// |
  387. ///
  388. BX_CONST_FUNC float easeOutQuart(float _t);
  389. /// In out quart.
  390. ///
  391. /// ^
  392. /// |
  393. /// |
  394. /// |
  395. /// |
  396. /// | *
  397. /// | **********************
  398. /// | *****
  399. /// | ****
  400. /// | ***
  401. /// | **
  402. /// | ***
  403. /// | ***
  404. /// | ****
  405. /// | *****
  406. /// +**********************------------------------------------------>
  407. /// |*
  408. /// |
  409. /// |
  410. /// |
  411. /// |
  412. ///
  413. BX_CONST_FUNC float easeInOutQuart(float _t);
  414. /// Out in quart.
  415. ///
  416. /// ^
  417. /// |
  418. /// |
  419. /// |
  420. /// |
  421. /// |
  422. /// | **
  423. /// | ***
  424. /// | ****
  425. /// | *****
  426. /// | ***********************
  427. /// | ***********************
  428. /// | *****
  429. /// | ****
  430. /// | ***
  431. /// +**-------------------------------------------------------------->
  432. /// |*
  433. /// |
  434. /// |
  435. /// |
  436. /// |
  437. ///
  438. BX_CONST_FUNC float easeOutInQuart(float _t);
  439. /// In quint.
  440. ///
  441. /// ^
  442. /// |
  443. /// |
  444. /// |
  445. /// |
  446. /// |
  447. /// | **
  448. /// | **
  449. /// | ***
  450. /// | ***
  451. /// | ***
  452. /// | ***
  453. /// | ****
  454. /// | *****
  455. /// | *******
  456. /// +*****************************************----------------------->
  457. /// |*
  458. /// |
  459. /// |
  460. /// |
  461. /// |
  462. ///
  463. BX_CONST_FUNC float easeInQuint(float _t);
  464. /// Out quint.
  465. ///
  466. /// ^
  467. /// |
  468. /// |
  469. /// |
  470. /// |
  471. /// | **
  472. /// | *****************************************
  473. /// | *******
  474. /// | *****
  475. /// | ****
  476. /// | ***
  477. /// | ***
  478. /// | ***
  479. /// | ***
  480. /// | **
  481. /// +**-------------------------------------------------------------->
  482. /// |*
  483. /// |
  484. /// |
  485. /// |
  486. /// |
  487. ///
  488. BX_CONST_FUNC float easeOutQuint(float _t);
  489. /// In out quint.
  490. ///
  491. /// ^
  492. /// |
  493. /// |
  494. /// |
  495. /// |
  496. /// | **
  497. /// | ************************
  498. /// | ****
  499. /// | ***
  500. /// | ***
  501. /// | **
  502. /// | ***
  503. /// | ***
  504. /// | ***
  505. /// | ****
  506. /// +************************---------------------------------------->
  507. /// |*
  508. /// |
  509. /// |
  510. /// |
  511. /// |
  512. ///
  513. BX_CONST_FUNC float easeInOutQuint(float _t);
  514. /// Out in quint.
  515. ///
  516. /// ^
  517. /// |
  518. /// |
  519. /// |
  520. /// |
  521. /// |
  522. /// | **
  523. /// | ***
  524. /// | ***
  525. /// | ****
  526. /// | *************************
  527. /// | **************************
  528. /// | ****
  529. /// | ***
  530. /// | ***
  531. /// +**-------------------------------------------------------------->
  532. /// |*
  533. /// |
  534. /// |
  535. /// |
  536. /// |
  537. ///
  538. BX_CONST_FUNC float easeOutInQuint(float _t);
  539. /// In sine.
  540. ///
  541. /// ^
  542. /// |
  543. /// |
  544. /// |
  545. /// |
  546. /// |
  547. /// | ****
  548. /// | *****
  549. /// | *****
  550. /// | *****
  551. /// | ******
  552. /// | ******
  553. /// | ******
  554. /// | *******
  555. /// | *********
  556. /// +*******************--------------------------------------------->
  557. /// |*
  558. /// |
  559. /// |
  560. /// |
  561. /// |
  562. ///
  563. BX_CONST_FUNC float easeInSine(float _t);
  564. /// Out sine.
  565. ///
  566. /// ^
  567. /// |
  568. /// |
  569. /// |
  570. /// |
  571. /// |
  572. /// | *******************
  573. /// | *********
  574. /// | *******
  575. /// | ******
  576. /// | ******
  577. /// | ******
  578. /// | *****
  579. /// | *****
  580. /// | *****
  581. /// +*****----------------------------------------------------------->
  582. /// |*
  583. /// |
  584. /// |
  585. /// |
  586. /// |
  587. ///
  588. BX_CONST_FUNC float easeOutSine(float _t);
  589. /// In out sine.
  590. ///
  591. /// ^
  592. /// |
  593. /// |
  594. /// |
  595. /// |
  596. /// |
  597. /// | **************
  598. /// | ******
  599. /// | ******
  600. /// | *****
  601. /// | *****
  602. /// | ******
  603. /// | *****
  604. /// | ******
  605. /// | ******
  606. /// +**************-------------------------------------------------->
  607. /// |*
  608. /// |
  609. /// |
  610. /// |
  611. /// |
  612. ///
  613. BX_CONST_FUNC float easeInOutSine(float _t);
  614. /// Out in sine.
  615. ///
  616. /// ^
  617. /// |
  618. /// |
  619. /// |
  620. /// |
  621. /// |
  622. /// | *****
  623. /// | *****
  624. /// | ******
  625. /// | ******
  626. /// | **************
  627. /// | ***************
  628. /// | ******
  629. /// | ******
  630. /// | *****
  631. /// +*****----------------------------------------------------------->
  632. /// |*
  633. /// |
  634. /// |
  635. /// |
  636. /// |
  637. ///
  638. BX_CONST_FUNC float easeOutInSine(float _t);
  639. /// In exponential.
  640. ///
  641. /// ^
  642. /// |
  643. /// |
  644. /// |
  645. /// |
  646. /// |
  647. /// | *
  648. /// | **
  649. /// | **
  650. /// | **
  651. /// | ***
  652. /// | ***
  653. /// | ***
  654. /// | ****
  655. /// | ********
  656. /// +*******************************************--------------------->
  657. /// |*
  658. /// |
  659. /// |
  660. /// |
  661. /// |
  662. ///
  663. BX_CONST_FUNC float easeInExpo(float _t);
  664. /// Out exponential.
  665. ///
  666. /// ^
  667. /// |
  668. /// |
  669. /// |
  670. /// |
  671. /// | *
  672. /// | *******************************************
  673. /// | ********
  674. /// | ****
  675. /// | ****
  676. /// | ***
  677. /// | ***
  678. /// | **
  679. /// | **
  680. /// | **
  681. /// +*--------------------------------------------------------------->
  682. /// |
  683. /// |
  684. /// |
  685. /// |
  686. /// |
  687. ///
  688. BX_CONST_FUNC float easeOutExpo(float _t);
  689. /// In out exponential.
  690. ///
  691. /// ^
  692. /// |
  693. /// |
  694. /// |
  695. /// |
  696. /// | *
  697. /// | *************************
  698. /// | ****
  699. /// | ***
  700. /// | **
  701. /// | **
  702. /// | *
  703. /// | **
  704. /// | ***
  705. /// | ****
  706. /// +*************************--------------------------------------->
  707. /// |*
  708. /// |
  709. /// |
  710. /// |
  711. /// |
  712. ///
  713. BX_CONST_FUNC float easeInOutExpo(float _t);
  714. /// Out in exponential.
  715. ///
  716. /// ^
  717. /// |
  718. /// |
  719. /// |
  720. /// |
  721. /// |
  722. /// | *
  723. /// | **
  724. /// | ***
  725. /// | ****
  726. /// | **************************
  727. /// | **************************
  728. /// | ****
  729. /// | ***
  730. /// | **
  731. /// +**-------------------------------------------------------------->
  732. /// |
  733. /// |
  734. /// |
  735. /// |
  736. /// |
  737. ///
  738. BX_CONST_FUNC float easeOutInExpo(float _t);
  739. /// In circle.
  740. ///
  741. /// ^
  742. /// |
  743. /// |
  744. /// |
  745. /// |
  746. /// |
  747. /// | *
  748. /// | **
  749. /// | **
  750. /// | ****
  751. /// | ****
  752. /// | *****
  753. /// | *******
  754. /// | ********
  755. /// | ************
  756. /// +****************************------------------------------------>
  757. /// |*
  758. /// |
  759. /// |
  760. /// |
  761. /// |
  762. ///
  763. BX_CONST_FUNC float easeInCirc(float _t);
  764. /// Out circle.
  765. ///
  766. /// ^
  767. /// |
  768. /// |
  769. /// |
  770. /// |
  771. /// |
  772. /// | ****************************
  773. /// | ************
  774. /// | ********
  775. /// | *******
  776. /// | *****
  777. /// | ****
  778. /// | ***
  779. /// | **
  780. /// |**
  781. /// +*--------------------------------------------------------------->
  782. /// |*
  783. /// |
  784. /// |
  785. /// |
  786. /// |
  787. ///
  788. BX_CONST_FUNC float easeOutCirc(float _t);
  789. /// In out circle.
  790. ///
  791. /// ^
  792. /// |
  793. /// |
  794. /// |
  795. /// |
  796. /// |
  797. /// | ********************
  798. /// | *******
  799. /// | *****
  800. /// | ***
  801. /// | *
  802. /// | **
  803. /// | ***
  804. /// | *****
  805. /// | *******
  806. /// +********************-------------------------------------------->
  807. /// |*
  808. /// |
  809. /// |
  810. /// |
  811. /// |
  812. ///
  813. BX_CONST_FUNC float easeInOutCirc(float _t);
  814. /// Out in circle.
  815. ///
  816. /// ^
  817. /// |
  818. /// |
  819. /// |
  820. /// |
  821. /// |
  822. /// | *
  823. /// | ***
  824. /// | *****
  825. /// | *******
  826. /// | ********************
  827. /// | *********************
  828. /// | *******
  829. /// | *****
  830. /// |***
  831. /// +*--------------------------------------------------------------->
  832. /// |*
  833. /// |
  834. /// |
  835. /// |
  836. /// |
  837. ///
  838. BX_CONST_FUNC float easeOutInCirc(float _t);
  839. /// Out elastic.
  840. ///
  841. /// ^
  842. /// |
  843. /// |
  844. /// |
  845. /// |
  846. /// |
  847. /// | *
  848. /// | **
  849. /// | *
  850. /// | **
  851. /// | *
  852. /// | *
  853. /// | *
  854. /// | *
  855. /// | ***** **
  856. /// +-***********--------***********---------****---***---------*---->
  857. /// |** ********** *********** ** **
  858. /// | ** *
  859. /// | ** *
  860. /// | *****
  861. /// |
  862. ///
  863. BX_CONST_FUNC float easeOutElastic(float _t);
  864. /// In elastic.
  865. ///
  866. /// ^
  867. /// |
  868. /// | *****
  869. /// | * **
  870. /// | ** **
  871. /// | ** ** ********** ********** **
  872. /// | * *** ***** *********** ***********
  873. /// | ** *****
  874. /// | *
  875. /// | *
  876. /// | **
  877. /// | *
  878. /// | **
  879. /// | *
  880. /// |**
  881. /// +*--------------------------------------------------------------->
  882. /// |*
  883. /// |
  884. /// |
  885. /// |
  886. /// |
  887. ///
  888. BX_CONST_FUNC float easeInElastic(float _t);
  889. /// In out elastic.
  890. ///
  891. /// ^
  892. /// |
  893. /// |
  894. /// |
  895. /// | ***
  896. /// | ** ** ***** ****** *
  897. /// | * ****** ****** ******
  898. /// | *
  899. /// | *
  900. /// | **
  901. /// | *
  902. /// | **
  903. /// | *
  904. /// | *
  905. /// | *
  906. /// +******----******----*****----**--------------------------------->
  907. /// |* ****** ****** *** *
  908. /// | ***
  909. /// |
  910. /// |
  911. /// |
  912. ///
  913. BX_CONST_FUNC float easeInOutElastic(float _t);
  914. /// Out in elastic.
  915. ///
  916. /// ^
  917. /// |
  918. /// |
  919. /// |
  920. /// |
  921. /// |
  922. /// | *
  923. /// | *
  924. /// | *
  925. /// | *** *
  926. /// | ** ** ***** ****** ******* ****** ***** **
  927. /// | * ****** ****** ******* ****** ****** *** *
  928. /// | * ***
  929. /// | *
  930. /// |**
  931. /// +*--------------------------------------------------------------->
  932. /// |*
  933. /// |
  934. /// |
  935. /// |
  936. /// |
  937. ///
  938. BX_CONST_FUNC float easeOutInElastic(float _t);
  939. /// In back.
  940. ///
  941. /// ^
  942. /// |
  943. /// |
  944. /// |
  945. /// |
  946. /// |
  947. /// | *
  948. /// | **
  949. /// | **
  950. /// | **
  951. /// | **
  952. /// | **
  953. /// | **
  954. /// | **
  955. /// | **
  956. /// +*-------------------------------------------------***----------->
  957. /// |************* ***
  958. /// | ******* ****
  959. /// | ******* *****
  960. /// | ******************
  961. /// |
  962. ///
  963. BX_CONST_FUNC float easeInBack(float _t);
  964. /// Out back.
  965. ///
  966. /// ^
  967. /// |
  968. /// | ******************
  969. /// | ***** *******
  970. /// | **** *******
  971. /// | *** *************
  972. /// | ***
  973. /// | **
  974. /// | ***
  975. /// | **
  976. /// | ***
  977. /// | **
  978. /// | **
  979. /// | **
  980. /// | **
  981. /// +**-------------------------------------------------------------->
  982. /// |*
  983. /// |
  984. /// |
  985. /// |
  986. /// |
  987. ///
  988. BX_CONST_FUNC float easeOutBack(float _t);
  989. /// In out back.
  990. ///
  991. /// ^
  992. /// |
  993. /// |
  994. /// |
  995. /// | **************
  996. /// | **** **********
  997. /// | **
  998. /// | ***
  999. /// | **
  1000. /// | **
  1001. /// | **
  1002. /// | **
  1003. /// | **
  1004. /// | **
  1005. /// | **
  1006. /// +*------------------------**------------------------------------->
  1007. /// |********** ****
  1008. /// | **************
  1009. /// |
  1010. /// |
  1011. /// |
  1012. ///
  1013. BX_CONST_FUNC float easeInOutBack(float _t);
  1014. /// Out in back.
  1015. ///
  1016. /// ^
  1017. /// |
  1018. /// |
  1019. /// |
  1020. /// |
  1021. /// |
  1022. /// | *
  1023. /// | **
  1024. /// | **
  1025. /// | ************** **
  1026. /// | **** *********** **
  1027. /// | ** ********** ****
  1028. /// | *** **************
  1029. /// | **
  1030. /// | **
  1031. /// +**-------------------------------------------------------------->
  1032. /// |*
  1033. /// |
  1034. /// |
  1035. /// |
  1036. /// |
  1037. ///
  1038. BX_CONST_FUNC float easeOutInBack(float _t);
  1039. /// Out bounce.
  1040. ///
  1041. /// ^
  1042. /// |
  1043. /// |
  1044. /// |
  1045. /// |
  1046. /// |
  1047. /// | ********
  1048. /// | ****
  1049. /// | ***
  1050. /// | ***
  1051. /// | ***
  1052. /// | **
  1053. /// | **
  1054. /// | ************** **
  1055. /// | **** **** **
  1056. /// +********************------------------****---------------------->
  1057. /// |* *
  1058. /// |
  1059. /// |
  1060. /// |
  1061. /// |
  1062. ///
  1063. BX_CONST_FUNC float easeOutBounce(float _t);
  1064. /// In bounce.
  1065. ///
  1066. /// ^
  1067. /// |
  1068. /// |
  1069. /// |
  1070. /// |
  1071. /// | *
  1072. /// | **** ********************
  1073. /// | *** **** ****
  1074. /// | ** **************
  1075. /// | **
  1076. /// | ***
  1077. /// | ***
  1078. /// | ***
  1079. /// | ***
  1080. /// | ****
  1081. /// +********-------------------------------------------------------->
  1082. /// |*
  1083. /// |
  1084. /// |
  1085. /// |
  1086. /// |
  1087. ///
  1088. BX_CONST_FUNC float easeInBounce(float _t);
  1089. /// In out bounce.
  1090. ///
  1091. /// ^
  1092. /// |
  1093. /// |
  1094. /// |
  1095. /// |
  1096. /// | *
  1097. /// | ***** ************
  1098. /// | ** *******
  1099. /// | ***
  1100. /// | ***
  1101. /// | ******
  1102. /// | *******
  1103. /// | ***
  1104. /// | **
  1105. /// | ******* **
  1106. /// +************------****------------------------------------------>
  1107. /// |* *
  1108. /// |
  1109. /// |
  1110. /// |
  1111. /// |
  1112. ///
  1113. BX_CONST_FUNC float easeInOutBounce(float _t);
  1114. /// Out in bounce.
  1115. ///
  1116. /// ^
  1117. /// |
  1118. /// |
  1119. /// |
  1120. /// |
  1121. /// |
  1122. /// | ******
  1123. /// | ***
  1124. /// | **
  1125. /// | ******* **
  1126. /// | * ************ ****
  1127. /// | ***** ************* *
  1128. /// | ** *******
  1129. /// | ***
  1130. /// | ***
  1131. /// +******---------------------------------------------------------->
  1132. /// |*
  1133. /// |
  1134. /// |
  1135. /// |
  1136. /// |
  1137. ///
  1138. BX_CONST_FUNC float easeOutInBounce(float _t);
  1139. } // namespace bx
  1140. #include "inline/easing.inl"
  1141. #endif // BX_EASING_H_HEADER_GUARD