godot_pool_arrays.cpp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. #include "godot_pool_arrays.h"
  2. #include "array.h"
  3. #include "dvector.h"
  4. #include "variant.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. void _pool_arrays_api_anchor() {
  9. }
  10. #define memnew_placement_custom(m_placement, m_class, m_constr) _post_initialize(new (m_placement, sizeof(m_class), "") m_constr)
  11. // byte
  12. void GDAPI godot_pool_byte_array_new(godot_pool_byte_array *p_pba) {
  13. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  14. memnew_placement(pba, PoolVector<uint8_t>);
  15. }
  16. void GDAPI godot_pool_byte_array_new_with_array(godot_pool_byte_array *p_pba, const godot_array *p_a) {
  17. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  18. Array *a = (Array *)p_a;
  19. memnew_placement(pba, PoolVector<uint8_t>);
  20. pba->resize(a->size());
  21. for (size_t i = 0; i < a->size(); i++) {
  22. pba->set(i, (*a)[i]);
  23. }
  24. }
  25. void GDAPI godot_pool_byte_array_append(godot_pool_byte_array *p_pba, const uint8_t p_data) {
  26. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  27. pba->append(p_data);
  28. }
  29. void GDAPI godot_pool_byte_array_append_array(godot_pool_byte_array *p_pba, const godot_pool_byte_array *p_array) {
  30. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  31. PoolVector<uint8_t> *array = (PoolVector<uint8_t> *)p_array;
  32. pba->append_array(*array);
  33. }
  34. int GDAPI godot_pool_byte_array_insert(godot_pool_byte_array *p_pba, const godot_int p_idx, const uint8_t p_data) {
  35. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  36. return pba->insert(p_idx, p_data);
  37. }
  38. void GDAPI godot_pool_byte_array_invert(godot_pool_byte_array *p_pba) {
  39. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  40. pba->invert();
  41. }
  42. void GDAPI godot_pool_byte_array_push_back(godot_pool_byte_array *p_pba, const uint8_t p_data) {
  43. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  44. pba->push_back(p_data);
  45. }
  46. void GDAPI godot_pool_byte_array_remove(godot_pool_byte_array *p_pba, const godot_int p_idx) {
  47. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  48. pba->remove(p_idx);
  49. }
  50. void GDAPI godot_pool_byte_array_resize(godot_pool_byte_array *p_pba, const godot_int p_size) {
  51. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  52. pba->resize(p_size);
  53. }
  54. void GDAPI godot_pool_byte_array_set(godot_pool_byte_array *p_pba, const godot_int p_idx, const uint8_t p_data) {
  55. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  56. pba->set(p_idx, p_data);
  57. }
  58. uint8_t GDAPI godot_pool_byte_array_get(godot_pool_byte_array *p_pba, const godot_int p_idx) {
  59. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  60. return pba->get(p_idx);
  61. }
  62. godot_int GDAPI godot_pool_byte_array_size(godot_pool_byte_array *p_pba) {
  63. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  64. return pba->size();
  65. }
  66. void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_pba) {
  67. ((PoolVector<uint8_t> *)p_pba)->~PoolVector();
  68. }
  69. // int
  70. void GDAPI godot_pool_int_array_new(godot_pool_int_array *p_pba) {
  71. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  72. memnew_placement(pba, PoolVector<uint8_t>);
  73. }
  74. void GDAPI godot_pool_int_array_new_with_array(godot_pool_int_array *p_pba, const godot_array *p_a) {
  75. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  76. Array *a = (Array *)p_a;
  77. memnew_placement(pba, PoolVector<uint8_t>);
  78. pba->resize(a->size());
  79. for (size_t i = 0; i < a->size(); i++) {
  80. pba->set(i, (*a)[i]);
  81. }
  82. }
  83. void GDAPI godot_pool_int_array_append(godot_pool_int_array *p_pba, const godot_int p_data) {
  84. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  85. pba->append(p_data);
  86. }
  87. void GDAPI godot_pool_int_array_append_array(godot_pool_int_array *p_pba, const godot_pool_int_array *p_array) {
  88. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  89. PoolVector<godot_int> *array = (PoolVector<godot_int> *)p_array;
  90. pba->append_array(*array);
  91. }
  92. int GDAPI godot_pool_int_array_insert(godot_pool_int_array *p_pba, const godot_int p_idx, const godot_int p_data) {
  93. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  94. return pba->insert(p_idx, p_data);
  95. }
  96. void GDAPI godot_pool_int_array_invert(godot_pool_int_array *p_pba) {
  97. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  98. pba->invert();
  99. }
  100. void GDAPI godot_pool_int_array_push_back(godot_pool_int_array *p_pba, const godot_int p_data) {
  101. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  102. pba->push_back(p_data);
  103. }
  104. void GDAPI godot_pool_int_array_remove(godot_pool_int_array *p_pba, const godot_int p_idx) {
  105. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  106. pba->remove(p_idx);
  107. }
  108. void GDAPI godot_pool_int_array_resize(godot_pool_int_array *p_pba, const godot_int p_size) {
  109. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  110. pba->resize(p_size);
  111. }
  112. void GDAPI godot_pool_int_array_set(godot_pool_int_array *p_pba, const godot_int p_idx, const godot_int p_data) {
  113. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  114. pba->set(p_idx, p_data);
  115. }
  116. godot_int GDAPI godot_pool_int_array_get(godot_pool_int_array *p_pba, const godot_int p_idx) {
  117. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  118. return pba->get(p_idx);
  119. }
  120. godot_int GDAPI godot_pool_int_array_size(godot_pool_int_array *p_pba) {
  121. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  122. return pba->size();
  123. }
  124. void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_pba) {
  125. ((PoolVector<godot_int> *)p_pba)->~PoolVector();
  126. }
  127. // real
  128. void GDAPI godot_pool_real_array_new(godot_pool_real_array *p_pba) {
  129. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  130. memnew_placement(pba, PoolVector<uint8_t>);
  131. }
  132. void GDAPI godot_pool_real_array_new_with_array(godot_pool_real_array *p_pba, const godot_array *p_a) {
  133. PoolVector<uint8_t> *pba = (PoolVector<uint8_t> *)p_pba;
  134. Array *a = (Array *)p_a;
  135. memnew_placement(pba, PoolVector<uint8_t>);
  136. pba->resize(a->size());
  137. for (size_t i = 0; i < a->size(); i++) {
  138. pba->set(i, (*a)[i]);
  139. }
  140. }
  141. void GDAPI godot_pool_real_array_append(godot_pool_real_array *p_pba, const godot_real p_data) {
  142. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  143. pba->append(p_data);
  144. }
  145. void GDAPI godot_pool_real_array_append_array(godot_pool_real_array *p_pba, const godot_pool_real_array *p_array) {
  146. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  147. PoolVector<godot_real> *array = (PoolVector<godot_real> *)p_array;
  148. pba->append_array(*array);
  149. }
  150. int GDAPI godot_pool_real_array_insert(godot_pool_real_array *p_pba, const godot_int p_idx, const godot_real p_data) {
  151. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  152. return pba->insert(p_idx, p_data);
  153. }
  154. void GDAPI godot_pool_real_array_invert(godot_pool_real_array *p_pba) {
  155. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  156. pba->invert();
  157. }
  158. void GDAPI godot_pool_real_array_push_back(godot_pool_real_array *p_pba, const godot_real p_data) {
  159. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  160. pba->push_back(p_data);
  161. }
  162. void GDAPI godot_pool_real_array_remove(godot_pool_real_array *p_pba, const godot_int p_idx) {
  163. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  164. pba->remove(p_idx);
  165. }
  166. void GDAPI godot_pool_real_array_resize(godot_pool_real_array *p_pba, const godot_int p_size) {
  167. PoolVector<godot_int> *pba = (PoolVector<godot_int> *)p_pba;
  168. pba->resize(p_size);
  169. }
  170. void GDAPI godot_pool_real_array_set(godot_pool_real_array *p_pba, const godot_int p_idx, const godot_real p_data) {
  171. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  172. pba->set(p_idx, p_data);
  173. }
  174. godot_real GDAPI godot_pool_real_array_get(godot_pool_real_array *p_pba, const godot_int p_idx) {
  175. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  176. return pba->get(p_idx);
  177. }
  178. godot_int GDAPI godot_pool_real_array_size(godot_pool_real_array *p_pba) {
  179. PoolVector<godot_real> *pba = (PoolVector<godot_real> *)p_pba;
  180. return pba->size();
  181. }
  182. void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_pba) {
  183. ((PoolVector<godot_real> *)p_pba)->~PoolVector();
  184. }
  185. // string
  186. void GDAPI godot_pool_string_array_new(godot_pool_string_array *p_pba) {
  187. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  188. memnew_placement(pba, PoolVector<String>);
  189. }
  190. void GDAPI godot_pool_string_array_new_with_array(godot_pool_string_array *p_pba, const godot_array *p_a) {
  191. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  192. Array *a = (Array *)p_a;
  193. memnew_placement(pba, PoolVector<String>);
  194. pba->resize(a->size());
  195. for (size_t i = 0; i < a->size(); i++) {
  196. pba->set(i, (*a)[i]);
  197. }
  198. }
  199. void GDAPI godot_pool_string_array_append(godot_pool_string_array *p_pba, const godot_string *p_data) {
  200. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  201. String &s = *(String *)p_data;
  202. pba->append(s);
  203. }
  204. void GDAPI godot_pool_string_array_append_array(godot_pool_string_array *p_pba, const godot_pool_string_array *p_array) {
  205. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  206. PoolVector<String> *array = (PoolVector<String> *)p_array;
  207. pba->append_array(*array);
  208. }
  209. int GDAPI godot_pool_string_array_insert(godot_pool_string_array *p_pba, const godot_int p_idx, const godot_string *p_data) {
  210. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  211. String &s = *(String *)p_data;
  212. return pba->insert(p_idx, s);
  213. }
  214. void GDAPI godot_pool_string_array_invert(godot_pool_string_array *p_pba) {
  215. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  216. pba->invert();
  217. }
  218. void GDAPI godot_pool_string_array_push_back(godot_pool_string_array *p_pba, const godot_string *p_data) {
  219. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  220. String &s = *(String *)p_data;
  221. pba->push_back(s);
  222. }
  223. void GDAPI godot_pool_string_array_remove(godot_pool_string_array *p_pba, const godot_int p_idx) {
  224. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  225. pba->remove(p_idx);
  226. }
  227. void GDAPI godot_pool_string_array_resize(godot_pool_string_array *p_pba, const godot_int p_size) {
  228. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  229. pba->resize(p_size);
  230. }
  231. void GDAPI godot_pool_string_array_set(godot_pool_string_array *p_pba, const godot_int p_idx, const godot_string *p_data) {
  232. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  233. String &s = *(String *)p_data;
  234. pba->set(p_idx, s);
  235. }
  236. godot_string GDAPI godot_pool_string_array_get(godot_pool_string_array *p_pba, const godot_int p_idx) {
  237. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  238. godot_string str;
  239. String *s = (String *)&str;
  240. memnew_placement(s, String);
  241. *s = pba->get(p_idx);
  242. return str;
  243. }
  244. godot_int GDAPI godot_pool_string_array_size(godot_pool_string_array *p_pba) {
  245. PoolVector<String> *pba = (PoolVector<String> *)p_pba;
  246. return pba->size();
  247. }
  248. void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_pba) {
  249. ((PoolVector<String> *)p_pba)->~PoolVector();
  250. }
  251. // vector2
  252. void GDAPI godot_pool_vector2_array_new(godot_pool_vector2_array *p_pba) {
  253. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  254. memnew_placement(pba, PoolVector<Vector2>);
  255. }
  256. void GDAPI godot_pool_vector2_array_new_with_array(godot_pool_vector2_array *p_pba, const godot_array *p_a) {
  257. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  258. Array *a = (Array *)p_a;
  259. memnew_placement(pba, PoolVector<Vector2>);
  260. pba->resize(a->size());
  261. for (size_t i = 0; i < a->size(); i++) {
  262. pba->set(i, (*a)[i]);
  263. }
  264. }
  265. void GDAPI godot_pool_vector2_array_append(godot_pool_vector2_array *p_pba, const godot_vector2 *p_data) {
  266. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  267. Vector2 &s = *(Vector2 *)p_data;
  268. pba->append(s);
  269. }
  270. void GDAPI godot_pool_vector2_array_append_array(godot_pool_vector2_array *p_pba, const godot_pool_vector2_array *p_array) {
  271. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  272. PoolVector<Vector2> *array = (PoolVector<Vector2> *)p_array;
  273. pba->append_array(*array);
  274. }
  275. int GDAPI godot_pool_vector2_array_insert(godot_pool_vector2_array *p_pba, const godot_int p_idx, const godot_vector2 *p_data) {
  276. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  277. Vector2 &s = *(Vector2 *)p_data;
  278. return pba->insert(p_idx, s);
  279. }
  280. void GDAPI godot_pool_vector2_array_invert(godot_pool_vector2_array *p_pba) {
  281. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  282. pba->invert();
  283. }
  284. void GDAPI godot_pool_vector2_array_push_back(godot_pool_vector2_array *p_pba, const godot_vector2 *p_data) {
  285. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  286. Vector2 &s = *(Vector2 *)p_data;
  287. pba->push_back(s);
  288. }
  289. void GDAPI godot_pool_vector2_array_remove(godot_pool_vector2_array *p_pba, const godot_int p_idx) {
  290. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  291. pba->remove(p_idx);
  292. }
  293. void GDAPI godot_pool_vector2_array_resize(godot_pool_vector2_array *p_pba, const godot_int p_size) {
  294. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  295. pba->resize(p_size);
  296. }
  297. void GDAPI godot_pool_vector2_array_set(godot_pool_vector2_array *p_pba, const godot_int p_idx, const godot_vector2 *p_data) {
  298. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  299. Vector2 &s = *(Vector2 *)p_data;
  300. pba->set(p_idx, s);
  301. }
  302. godot_vector2 GDAPI godot_pool_vector2_array_get(godot_pool_vector2_array *p_pba, const godot_int p_idx) {
  303. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  304. godot_vector2 v;
  305. Vector2 *s = (Vector2 *)&v;
  306. *s = pba->get(p_idx);
  307. return v;
  308. }
  309. godot_int GDAPI godot_pool_vector2_array_size(godot_pool_vector2_array *p_pba) {
  310. PoolVector<Vector2> *pba = (PoolVector<Vector2> *)p_pba;
  311. return pba->size();
  312. }
  313. void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_pba) {
  314. ((PoolVector<Vector2> *)p_pba)->~PoolVector();
  315. }
  316. // vector3
  317. void GDAPI godot_pool_vector3_array_new(godot_pool_vector3_array *p_pba) {
  318. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  319. memnew_placement(pba, PoolVector<Vector3>);
  320. }
  321. void GDAPI godot_pool_vector3_array_new_with_array(godot_pool_vector3_array *p_pba, const godot_array *p_a) {
  322. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  323. Array *a = (Array *)p_a;
  324. memnew_placement(pba, PoolVector<Vector3>);
  325. pba->resize(a->size());
  326. for (size_t i = 0; i < a->size(); i++) {
  327. pba->set(i, (*a)[i]);
  328. }
  329. }
  330. void GDAPI godot_pool_vector3_array_append(godot_pool_vector3_array *p_pba, const godot_vector3 *p_data) {
  331. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  332. Vector3 &s = *(Vector3 *)p_data;
  333. pba->append(s);
  334. }
  335. void GDAPI godot_pool_vector3_array_append_array(godot_pool_vector3_array *p_pba, const godot_pool_vector3_array *p_array) {
  336. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  337. PoolVector<Vector3> *array = (PoolVector<Vector3> *)p_array;
  338. pba->append_array(*array);
  339. }
  340. int GDAPI godot_pool_vector3_array_insert(godot_pool_vector3_array *p_pba, const godot_int p_idx, const godot_vector3 *p_data) {
  341. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  342. Vector3 &s = *(Vector3 *)p_data;
  343. return pba->insert(p_idx, s);
  344. }
  345. void GDAPI godot_pool_vector3_array_invert(godot_pool_vector3_array *p_pba) {
  346. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  347. pba->invert();
  348. }
  349. void GDAPI godot_pool_vector3_array_push_back(godot_pool_vector3_array *p_pba, const godot_vector3 *p_data) {
  350. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  351. Vector3 &s = *(Vector3 *)p_data;
  352. pba->push_back(s);
  353. }
  354. void GDAPI godot_pool_vector3_array_remove(godot_pool_vector3_array *p_pba, const godot_int p_idx) {
  355. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  356. pba->remove(p_idx);
  357. }
  358. void GDAPI godot_pool_vector3_array_resize(godot_pool_vector3_array *p_pba, const godot_int p_size) {
  359. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  360. pba->resize(p_size);
  361. }
  362. void GDAPI godot_pool_vector3_array_set(godot_pool_vector3_array *p_pba, const godot_int p_idx, const godot_vector3 *p_data) {
  363. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  364. Vector3 &s = *(Vector3 *)p_data;
  365. pba->set(p_idx, s);
  366. }
  367. godot_vector3 GDAPI godot_pool_vector3_array_get(godot_pool_vector3_array *p_pba, const godot_int p_idx) {
  368. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  369. godot_vector3 v;
  370. Vector3 *s = (Vector3 *)&v;
  371. *s = pba->get(p_idx);
  372. return v;
  373. }
  374. godot_int GDAPI godot_pool_vector3_array_size(godot_pool_vector3_array *p_pba) {
  375. PoolVector<Vector3> *pba = (PoolVector<Vector3> *)p_pba;
  376. return pba->size();
  377. }
  378. void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_pba) {
  379. ((PoolVector<Vector3> *)p_pba)->~PoolVector();
  380. }
  381. // color
  382. void GDAPI godot_pool_color_array_new(godot_pool_color_array *p_pba) {
  383. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  384. memnew_placement(pba, PoolVector<Color>);
  385. }
  386. void GDAPI godot_pool_color_array_new_with_array(godot_pool_color_array *p_pba, const godot_array *p_a) {
  387. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  388. Array *a = (Array *)p_a;
  389. memnew_placement(pba, PoolVector<Color>);
  390. pba->resize(a->size());
  391. for (size_t i = 0; i < a->size(); i++) {
  392. pba->set(i, (*a)[i]);
  393. }
  394. }
  395. void GDAPI godot_pool_color_array_append(godot_pool_color_array *p_pba, const godot_color *p_data) {
  396. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  397. Color &s = *(Color *)p_data;
  398. pba->append(s);
  399. }
  400. void GDAPI godot_pool_color_array_append_array(godot_pool_color_array *p_pba, const godot_pool_color_array *p_array) {
  401. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  402. PoolVector<Color> *array = (PoolVector<Color> *)p_array;
  403. pba->append_array(*array);
  404. }
  405. int GDAPI godot_pool_color_array_insert(godot_pool_color_array *p_pba, const godot_int p_idx, const godot_color *p_data) {
  406. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  407. Color &s = *(Color *)p_data;
  408. return pba->insert(p_idx, s);
  409. }
  410. void GDAPI godot_pool_color_array_invert(godot_pool_color_array *p_pba) {
  411. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  412. pba->invert();
  413. }
  414. void GDAPI godot_pool_color_array_push_back(godot_pool_color_array *p_pba, const godot_color *p_data) {
  415. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  416. Color &s = *(Color *)p_data;
  417. pba->push_back(s);
  418. }
  419. void GDAPI godot_pool_color_array_remove(godot_pool_color_array *p_pba, const godot_int p_idx) {
  420. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  421. pba->remove(p_idx);
  422. }
  423. void GDAPI godot_pool_color_array_resize(godot_pool_color_array *p_pba, const godot_int p_size) {
  424. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  425. pba->resize(p_size);
  426. }
  427. void GDAPI godot_pool_color_array_set(godot_pool_color_array *p_pba, const godot_int p_idx, const godot_color *p_data) {
  428. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  429. Color &s = *(Color *)p_data;
  430. pba->set(p_idx, s);
  431. }
  432. godot_color GDAPI godot_pool_color_array_get(godot_pool_color_array *p_pba, const godot_int p_idx) {
  433. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  434. godot_color v;
  435. Color *s = (Color *)&v;
  436. *s = pba->get(p_idx);
  437. return v;
  438. }
  439. godot_int GDAPI godot_pool_color_array_size(godot_pool_color_array *p_pba) {
  440. PoolVector<Color> *pba = (PoolVector<Color> *)p_pba;
  441. return pba->size();
  442. }
  443. void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_pba) {
  444. ((PoolVector<Color> *)p_pba)->~PoolVector();
  445. }
  446. #ifdef __cplusplus
  447. }
  448. #endif