PoolArrays.cpp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. #include "PoolArrays.hpp"
  2. #include "Defs.hpp"
  3. #include "String.hpp"
  4. #include "Color.hpp"
  5. #include "Vector2.hpp"
  6. #include "Vector3.hpp"
  7. #include "GodotGlobal.hpp"
  8. #include <gdnative/pool_arrays.h>
  9. namespace godot {
  10. PoolByteArray::PoolByteArray()
  11. {
  12. godot::api->godot_pool_byte_array_new(&_godot_array);
  13. }
  14. PoolByteArray::PoolByteArray(const PoolByteArray &p_other)
  15. {
  16. godot::api->godot_pool_byte_array_new_copy(&_godot_array, &p_other._godot_array);
  17. }
  18. PoolByteArray &PoolByteArray::operator=(const PoolByteArray & p_other)
  19. {
  20. godot::api->godot_pool_byte_array_destroy(&_godot_array);
  21. godot::api->godot_pool_byte_array_new_copy(&_godot_array, &p_other._godot_array);
  22. return *this;
  23. }
  24. PoolByteArray::PoolByteArray(const Array& array)
  25. {
  26. godot::api->godot_pool_byte_array_new_with_array(&_godot_array, (godot_array *) &array);
  27. }
  28. PoolByteArray::Read PoolByteArray::read() const
  29. {
  30. Read read;
  31. read._read_access = godot::api->godot_pool_byte_array_read(&_godot_array);
  32. return read;
  33. }
  34. PoolByteArray::Write PoolByteArray::write()
  35. {
  36. Write write;
  37. write._write_access = godot::api->godot_pool_byte_array_write(&_godot_array);
  38. return write;
  39. }
  40. void PoolByteArray::append(const uint8_t data)
  41. {
  42. godot::api->godot_pool_byte_array_append(&_godot_array, data);
  43. }
  44. void PoolByteArray::append_array(const PoolByteArray& array)
  45. {
  46. godot::api->godot_pool_byte_array_append_array(&_godot_array, &array._godot_array);
  47. }
  48. int PoolByteArray::insert(const int idx, const uint8_t data)
  49. {
  50. return godot::api->godot_pool_byte_array_insert(&_godot_array, idx, data);
  51. }
  52. void PoolByteArray::invert()
  53. {
  54. godot::api->godot_pool_byte_array_invert(&_godot_array);
  55. }
  56. void PoolByteArray::push_back(const uint8_t data)
  57. {
  58. godot::api->godot_pool_byte_array_push_back(&_godot_array, data);
  59. }
  60. void PoolByteArray::remove(const int idx)
  61. {
  62. godot::api->godot_pool_byte_array_remove(&_godot_array, idx);
  63. }
  64. void PoolByteArray::resize(const int size)
  65. {
  66. godot::api->godot_pool_byte_array_resize(&_godot_array, size);
  67. }
  68. void PoolByteArray::set(const int idx, const uint8_t data)
  69. {
  70. godot::api->godot_pool_byte_array_set(&_godot_array, idx, data);
  71. }
  72. uint8_t PoolByteArray::operator [](const int idx)
  73. {
  74. return godot::api->godot_pool_byte_array_get(&_godot_array, idx);
  75. }
  76. int PoolByteArray::size()
  77. {
  78. return godot::api->godot_pool_byte_array_size(&_godot_array);
  79. }
  80. PoolByteArray::~PoolByteArray()
  81. {
  82. godot::api->godot_pool_byte_array_destroy(&_godot_array);
  83. }
  84. PoolIntArray::PoolIntArray()
  85. {
  86. godot::api->godot_pool_int_array_new(&_godot_array);
  87. }
  88. PoolIntArray::PoolIntArray(const PoolIntArray &p_other)
  89. {
  90. godot::api->godot_pool_int_array_new_copy(&_godot_array, &p_other._godot_array);
  91. }
  92. PoolIntArray &PoolIntArray::operator=(const PoolIntArray &p_other)
  93. {
  94. godot::api->godot_pool_int_array_destroy(&_godot_array);
  95. godot::api->godot_pool_int_array_new_copy(&_godot_array, &p_other._godot_array);
  96. return *this;
  97. }
  98. PoolIntArray::PoolIntArray(const Array& array)
  99. {
  100. godot::api->godot_pool_int_array_new_with_array(&_godot_array, (godot_array *) &array);
  101. }
  102. PoolIntArray::Read PoolIntArray::read() const
  103. {
  104. Read read;
  105. read._read_access = godot::api->godot_pool_int_array_read(&_godot_array);
  106. return read;
  107. }
  108. PoolIntArray::Write PoolIntArray::write()
  109. {
  110. Write write;
  111. write._write_access = godot::api->godot_pool_int_array_write(&_godot_array);
  112. return write;
  113. }
  114. void PoolIntArray::append(const int data)
  115. {
  116. godot::api->godot_pool_int_array_append(&_godot_array, data);
  117. }
  118. void PoolIntArray::append_array(const PoolIntArray& array)
  119. {
  120. godot::api->godot_pool_int_array_append_array(&_godot_array, &array._godot_array);
  121. }
  122. int PoolIntArray::insert(const int idx, const int data)
  123. {
  124. return godot::api->godot_pool_int_array_insert(&_godot_array, idx, data);
  125. }
  126. void PoolIntArray::invert()
  127. {
  128. godot::api->godot_pool_int_array_invert(&_godot_array);
  129. }
  130. void PoolIntArray::push_back(const int data)
  131. {
  132. godot::api->godot_pool_int_array_push_back(&_godot_array, data);
  133. }
  134. void PoolIntArray::remove(const int idx)
  135. {
  136. godot::api->godot_pool_int_array_remove(&_godot_array, idx);
  137. }
  138. void PoolIntArray::resize(const int size)
  139. {
  140. godot::api->godot_pool_int_array_resize(&_godot_array, size);
  141. }
  142. void PoolIntArray::set(const int idx, const int data)
  143. {
  144. godot::api->godot_pool_int_array_set(&_godot_array, idx, data);
  145. }
  146. int PoolIntArray::operator [](const int idx)
  147. {
  148. return godot::api->godot_pool_int_array_get(&_godot_array, idx);
  149. }
  150. int PoolIntArray::size()
  151. {
  152. return godot::api->godot_pool_int_array_size(&_godot_array);
  153. }
  154. PoolIntArray::~PoolIntArray()
  155. {
  156. godot::api->godot_pool_int_array_destroy(&_godot_array);
  157. }
  158. PoolRealArray::PoolRealArray()
  159. {
  160. godot::api->godot_pool_real_array_new(&_godot_array);
  161. }
  162. PoolRealArray::PoolRealArray(const PoolRealArray &p_other)
  163. {
  164. godot::api->godot_pool_real_array_new_copy(&_godot_array, &p_other._godot_array);
  165. }
  166. PoolRealArray &PoolRealArray::operator=(const PoolRealArray &p_other)
  167. {
  168. godot::api->godot_pool_real_array_destroy(&_godot_array);
  169. godot::api->godot_pool_real_array_new_copy(&_godot_array, &p_other._godot_array);
  170. return *this;
  171. }
  172. PoolRealArray::Read PoolRealArray::read() const
  173. {
  174. Read read;
  175. read._read_access = godot::api->godot_pool_real_array_read(&_godot_array);
  176. return read;
  177. }
  178. PoolRealArray::Write PoolRealArray::write()
  179. {
  180. Write write;
  181. write._write_access = godot::api->godot_pool_real_array_write(&_godot_array);
  182. return write;
  183. }
  184. PoolRealArray::PoolRealArray(const Array& array)
  185. {
  186. godot::api->godot_pool_real_array_new_with_array(&_godot_array, (godot_array *) &array);
  187. }
  188. void PoolRealArray::append(const real_t data)
  189. {
  190. godot::api->godot_pool_real_array_append(&_godot_array, data);
  191. }
  192. void PoolRealArray::append_array(const PoolRealArray& array)
  193. {
  194. godot::api->godot_pool_real_array_append_array(&_godot_array, &array._godot_array);
  195. }
  196. int PoolRealArray::insert(const int idx, const real_t data)
  197. {
  198. return godot::api->godot_pool_real_array_insert(&_godot_array, idx, data);
  199. }
  200. void PoolRealArray::invert()
  201. {
  202. godot::api->godot_pool_real_array_invert(&_godot_array);
  203. }
  204. void PoolRealArray::push_back(const real_t data)
  205. {
  206. godot::api->godot_pool_real_array_push_back(&_godot_array, data);
  207. }
  208. void PoolRealArray::remove(const int idx)
  209. {
  210. godot::api->godot_pool_real_array_remove(&_godot_array, idx);
  211. }
  212. void PoolRealArray::resize(const int size)
  213. {
  214. godot::api->godot_pool_real_array_resize(&_godot_array, size);
  215. }
  216. void PoolRealArray::set(const int idx, const real_t data)
  217. {
  218. godot::api->godot_pool_real_array_set(&_godot_array, idx, data);
  219. }
  220. real_t PoolRealArray::operator [](const int idx)
  221. {
  222. return godot::api->godot_pool_real_array_get(&_godot_array, idx);
  223. }
  224. int PoolRealArray::size()
  225. {
  226. return godot::api->godot_pool_real_array_size(&_godot_array);
  227. }
  228. PoolRealArray::~PoolRealArray()
  229. {
  230. godot::api->godot_pool_real_array_destroy(&_godot_array);
  231. }
  232. PoolStringArray::PoolStringArray()
  233. {
  234. godot::api->godot_pool_string_array_new(&_godot_array);
  235. }
  236. PoolStringArray::PoolStringArray(const PoolStringArray &p_other)
  237. {
  238. godot::api->godot_pool_string_array_new_copy(&_godot_array, &p_other._godot_array);
  239. }
  240. PoolStringArray &PoolStringArray::operator=(const PoolStringArray &p_other)
  241. {
  242. godot::api->godot_pool_string_array_destroy(&_godot_array);
  243. godot::api->godot_pool_string_array_new_copy(&_godot_array, &p_other._godot_array);
  244. return *this;
  245. }
  246. PoolStringArray::PoolStringArray(const Array& array)
  247. {
  248. godot::api->godot_pool_string_array_new_with_array(&_godot_array, (godot_array *) &array);
  249. }
  250. PoolStringArray::Read PoolStringArray::read() const
  251. {
  252. Read read;
  253. read._read_access = godot::api->godot_pool_string_array_read(&_godot_array);
  254. return read;
  255. }
  256. PoolStringArray::Write PoolStringArray::write()
  257. {
  258. Write write;
  259. write._write_access = godot::api->godot_pool_string_array_write(&_godot_array);
  260. return write;
  261. }
  262. void PoolStringArray::append(const String& data)
  263. {
  264. godot::api->godot_pool_string_array_append(&_godot_array, (godot_string *) &data);
  265. }
  266. void PoolStringArray::append_array(const PoolStringArray& array)
  267. {
  268. godot::api->godot_pool_string_array_append_array(&_godot_array, &array._godot_array);
  269. }
  270. int PoolStringArray::insert(const int idx, const String& data)
  271. {
  272. return godot::api->godot_pool_string_array_insert(&_godot_array, idx, (godot_string *) &data);
  273. }
  274. void PoolStringArray::invert()
  275. {
  276. godot::api->godot_pool_string_array_invert(&_godot_array);
  277. }
  278. void PoolStringArray::push_back(const String& data)
  279. {
  280. godot::api->godot_pool_string_array_push_back(&_godot_array, (godot_string *) &data);
  281. }
  282. void PoolStringArray::remove(const int idx)
  283. {
  284. godot::api->godot_pool_string_array_remove(&_godot_array, idx);
  285. }
  286. void PoolStringArray::resize(const int size)
  287. {
  288. godot::api->godot_pool_string_array_resize(&_godot_array, size);
  289. }
  290. void PoolStringArray::set(const int idx, const String& data)
  291. {
  292. godot::api->godot_pool_string_array_set(&_godot_array, idx, (godot_string *) &data);
  293. }
  294. String PoolStringArray::operator [](const int idx)
  295. {
  296. String s;
  297. godot_string str = godot::api->godot_pool_string_array_get(&_godot_array, idx);
  298. godot::api->godot_string_new_copy((godot_string *) &s, &str);
  299. godot::api->godot_string_destroy(&str);
  300. return s;
  301. }
  302. int PoolStringArray::size()
  303. {
  304. return godot::api->godot_pool_string_array_size(&_godot_array);
  305. }
  306. PoolStringArray::~PoolStringArray()
  307. {
  308. godot::api->godot_pool_string_array_destroy(&_godot_array);
  309. }
  310. PoolVector2Array::PoolVector2Array()
  311. {
  312. godot::api->godot_pool_vector2_array_new(&_godot_array);
  313. }
  314. PoolVector2Array::PoolVector2Array(const PoolVector2Array &p_other)
  315. {
  316. godot::api->godot_pool_vector2_array_new_copy(&_godot_array, &p_other._godot_array);
  317. }
  318. PoolVector2Array &PoolVector2Array::operator=(const PoolVector2Array &p_other)
  319. {
  320. godot::api->godot_pool_vector2_array_destroy(&_godot_array);
  321. godot::api->godot_pool_vector2_array_new_copy(&_godot_array, &p_other._godot_array);
  322. return *this;
  323. }
  324. PoolVector2Array::PoolVector2Array(const Array& array)
  325. {
  326. godot::api->godot_pool_vector2_array_new_with_array(&_godot_array, (godot_array *) &array);
  327. }
  328. PoolVector2Array::Read PoolVector2Array::read() const
  329. {
  330. Read read;
  331. read._read_access = godot::api->godot_pool_vector2_array_read(&_godot_array);
  332. return read;
  333. }
  334. PoolVector2Array::Write PoolVector2Array::write()
  335. {
  336. Write write;
  337. write._write_access = godot::api->godot_pool_vector2_array_write(&_godot_array);
  338. return write;
  339. }
  340. void PoolVector2Array::append(const Vector2& data)
  341. {
  342. godot::api->godot_pool_vector2_array_append(&_godot_array, (godot_vector2 *) &data);
  343. }
  344. void PoolVector2Array::append_array(const PoolVector2Array& array)
  345. {
  346. godot::api->godot_pool_vector2_array_append_array(&_godot_array, &array._godot_array);
  347. }
  348. int PoolVector2Array::insert(const int idx, const Vector2& data)
  349. {
  350. return godot::api->godot_pool_vector2_array_insert(&_godot_array, idx, (godot_vector2 *) &data);
  351. }
  352. void PoolVector2Array::invert()
  353. {
  354. godot::api->godot_pool_vector2_array_invert(&_godot_array);
  355. }
  356. void PoolVector2Array::push_back(const Vector2& data)
  357. {
  358. godot::api->godot_pool_vector2_array_push_back(&_godot_array, (godot_vector2 *) &data);
  359. }
  360. void PoolVector2Array::remove(const int idx)
  361. {
  362. godot::api->godot_pool_vector2_array_remove(&_godot_array, idx);
  363. }
  364. void PoolVector2Array::resize(const int size)
  365. {
  366. godot::api->godot_pool_vector2_array_resize(&_godot_array, size);
  367. }
  368. void PoolVector2Array::set(const int idx, const Vector2& data)
  369. {
  370. godot::api->godot_pool_vector2_array_set(&_godot_array, idx, (godot_vector2 *) &data);
  371. }
  372. Vector2 PoolVector2Array::operator [](const int idx)
  373. {
  374. Vector2 v;
  375. *(godot_vector2 *) &v = godot::api->godot_pool_vector2_array_get(&_godot_array, idx);
  376. return v;
  377. }
  378. int PoolVector2Array::size()
  379. {
  380. return godot::api->godot_pool_vector2_array_size(&_godot_array);
  381. }
  382. PoolVector2Array::~PoolVector2Array()
  383. {
  384. godot::api->godot_pool_vector2_array_destroy(&_godot_array);
  385. }
  386. PoolVector3Array::PoolVector3Array()
  387. {
  388. godot::api->godot_pool_vector3_array_new(&_godot_array);
  389. }
  390. PoolVector3Array::PoolVector3Array(const PoolVector3Array &p_other)
  391. {
  392. godot::api->godot_pool_vector3_array_new_copy(&_godot_array, &p_other._godot_array);
  393. }
  394. PoolVector3Array &PoolVector3Array::operator=(const PoolVector3Array &p_other)
  395. {
  396. godot::api->godot_pool_vector3_array_destroy(&_godot_array);
  397. godot::api->godot_pool_vector3_array_new_copy(&_godot_array, &p_other._godot_array);
  398. return *this;
  399. }
  400. PoolVector3Array::PoolVector3Array(const Array& array)
  401. {
  402. godot::api->godot_pool_vector3_array_new_with_array(&_godot_array, (godot_array *) &array);
  403. }
  404. PoolVector3Array::Read PoolVector3Array::read() const
  405. {
  406. Read read;
  407. read._read_access = godot::api->godot_pool_vector3_array_read(&_godot_array);
  408. return read;
  409. }
  410. PoolVector3Array::Write PoolVector3Array::write()
  411. {
  412. Write write;
  413. write._write_access = godot::api->godot_pool_vector3_array_write(&_godot_array);
  414. return write;
  415. }
  416. void PoolVector3Array::append(const Vector3& data)
  417. {
  418. godot::api->godot_pool_vector3_array_append(&_godot_array, (godot_vector3 *) &data);
  419. }
  420. void PoolVector3Array::append_array(const PoolVector3Array& array)
  421. {
  422. godot::api->godot_pool_vector3_array_append_array(&_godot_array, &array._godot_array);
  423. }
  424. int PoolVector3Array::insert(const int idx, const Vector3& data)
  425. {
  426. return godot::api->godot_pool_vector3_array_insert(&_godot_array, idx, (godot_vector3 *) &data);
  427. }
  428. void PoolVector3Array::invert()
  429. {
  430. godot::api->godot_pool_vector3_array_invert(&_godot_array);
  431. }
  432. void PoolVector3Array::push_back(const Vector3& data)
  433. {
  434. godot::api->godot_pool_vector3_array_push_back(&_godot_array, (godot_vector3 *) &data);
  435. }
  436. void PoolVector3Array::remove(const int idx)
  437. {
  438. godot::api->godot_pool_vector3_array_remove(&_godot_array, idx);
  439. }
  440. void PoolVector3Array::resize(const int size)
  441. {
  442. godot::api->godot_pool_vector3_array_resize(&_godot_array, size);
  443. }
  444. void PoolVector3Array::set(const int idx, const Vector3& data)
  445. {
  446. godot::api->godot_pool_vector3_array_set(&_godot_array, idx, (godot_vector3 *) &data);
  447. }
  448. Vector3 PoolVector3Array::operator [](const int idx)
  449. {
  450. Vector3 v;
  451. *(godot_vector3 *) &v = godot::api->godot_pool_vector3_array_get(&_godot_array, idx);
  452. return v;
  453. }
  454. int PoolVector3Array::size()
  455. {
  456. return godot::api->godot_pool_vector3_array_size(&_godot_array);
  457. }
  458. PoolVector3Array::~PoolVector3Array()
  459. {
  460. godot::api->godot_pool_vector3_array_destroy(&_godot_array);
  461. }
  462. PoolColorArray::PoolColorArray()
  463. {
  464. godot::api->godot_pool_color_array_new(&_godot_array);
  465. }
  466. PoolColorArray::PoolColorArray(const PoolColorArray &p_other)
  467. {
  468. godot::api->godot_pool_color_array_new_copy(&_godot_array, &p_other._godot_array);
  469. }
  470. PoolColorArray &PoolColorArray::operator=(const PoolColorArray &p_other)
  471. {
  472. godot::api->godot_pool_color_array_destroy(&_godot_array);
  473. godot::api->godot_pool_color_array_new_copy(&_godot_array, &p_other._godot_array);
  474. return *this;
  475. }
  476. PoolColorArray::PoolColorArray(const Array& array)
  477. {
  478. godot::api->godot_pool_color_array_new_with_array(&_godot_array, (godot_array *) &array);
  479. }
  480. PoolColorArray::Read PoolColorArray::read() const
  481. {
  482. Read read;
  483. read._read_access = godot::api->godot_pool_color_array_read(&_godot_array);
  484. return read;
  485. }
  486. PoolColorArray::Write PoolColorArray::write()
  487. {
  488. Write write;
  489. write._write_access = godot::api->godot_pool_color_array_write(&_godot_array);
  490. return write;
  491. }
  492. void PoolColorArray::append(const Color& data)
  493. {
  494. godot::api->godot_pool_color_array_append(&_godot_array, (godot_color *) &data);
  495. }
  496. void PoolColorArray::append_array(const PoolColorArray& array)
  497. {
  498. godot::api->godot_pool_color_array_append_array(&_godot_array, &array._godot_array);
  499. }
  500. int PoolColorArray::insert(const int idx, const Color& data)
  501. {
  502. return godot::api->godot_pool_color_array_insert(&_godot_array, idx, (godot_color *) &data);
  503. }
  504. void PoolColorArray::invert()
  505. {
  506. godot::api->godot_pool_color_array_invert(&_godot_array);
  507. }
  508. void PoolColorArray::push_back(const Color& data)
  509. {
  510. godot::api->godot_pool_color_array_push_back(&_godot_array, (godot_color *) &data);
  511. }
  512. void PoolColorArray::remove(const int idx)
  513. {
  514. godot::api->godot_pool_color_array_remove(&_godot_array, idx);
  515. }
  516. void PoolColorArray::resize(const int size)
  517. {
  518. godot::api->godot_pool_color_array_resize(&_godot_array, size);
  519. }
  520. void PoolColorArray::set(const int idx, const Color& data)
  521. {
  522. godot::api->godot_pool_color_array_set(&_godot_array, idx, (godot_color *) &data);
  523. }
  524. Color PoolColorArray::operator [](const int idx)
  525. {
  526. Color v;
  527. *(godot_color *) &v = godot::api->godot_pool_color_array_get(&_godot_array, idx);
  528. return v;
  529. }
  530. int PoolColorArray::size()
  531. {
  532. return godot::api->godot_pool_color_array_size(&_godot_array);
  533. }
  534. PoolColorArray::~PoolColorArray()
  535. {
  536. godot::api->godot_pool_color_array_destroy(&_godot_array);
  537. }
  538. }