Arm2D_Tile.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "Arm2D_Tile.h"
  2. #include "Arm2D_Location.h"
  3. #include "Arm2D_Star.h"
  4. #include "Arm2D_Region.h"
  5. #include "Arm2D_common.h"
  6. void Arm2D_Tile___init__(PikaObj* self) {
  7. arm_2d_tile_t _self = {0};
  8. if (NULL == obj_getStruct(self, "_self")) {
  9. obj_setStruct(self, "_self", _self);
  10. }
  11. }
  12. PikaObj* Arm2D_Tile_generate_child(PikaObj* self,
  13. PikaObj* reg,
  14. int clipRegion) {
  15. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  16. arm_2d_region_t* _reg = obj_getStruct(reg, "_self");
  17. arm_2d_tile_t _child = {0};
  18. arm_2d_tile_generate_child(_self, _reg, &_child, clipRegion);
  19. PikaObj* child = newNormalObj(New_Arm2D_Tile);
  20. obj_setStruct(child, "_self", _child);
  21. return child;
  22. }
  23. PikaObj* Arm2D_Tile_get_root(PikaObj* self,
  24. PikaObj* validRegion,
  25. PikaObj* offset) {
  26. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  27. arm_2d_region_t* _validRegion = obj_getStruct(validRegion, "_self");
  28. arm_2d_location_t* _offset = obj_getStruct(offset, "_self");
  29. const arm_2d_tile_t* _root =
  30. arm_2d_tile_get_root(_self, _validRegion, _offset);
  31. PikaObj* root = newNormalObj(New_Arm2D_Tile);
  32. obj_setStruct(root, "_self", _root);
  33. return root;
  34. }
  35. int Arm2D_Tile_height_compare(PikaObj* self, PikaObj* reference) {
  36. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  37. arm_2d_tile_t* _reference = obj_getStruct(reference, "_self");
  38. return arm_2d_tile_height_compare(_self, _reference);
  39. }
  40. PikaObj* Arm2D_Tile_region_diff(PikaObj* self, PikaObj* tile) {
  41. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  42. arm_2d_tile_t* _tile = obj_getStruct(tile, "_self");
  43. arm_2d_region_t _region = {0};
  44. arm_2d_tile_region_diff(_self, _tile, &_region);
  45. PikaObj* region = newNormalObj(New_Arm2D_Region);
  46. obj_setStruct(region, "_self", _region);
  47. return region;
  48. }
  49. int Arm2D_Tile_shape_compare(PikaObj* self, PikaObj* reference) {
  50. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  51. arm_2d_tile_t* _reference = obj_getStruct(reference, "_self");
  52. return arm_2d_tile_shape_compare(_self, _reference);
  53. }
  54. int Arm2D_Tile_width_compare(PikaObj* self, PikaObj* reference) {
  55. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  56. arm_2d_tile_t* _reference = obj_getStruct(reference, "_self");
  57. return arm_2d_tile_width_compare(_self, _reference);
  58. }
  59. int Arm2D_Tile_transform(PikaObj *self, PikaObj* reg, PikaObj* centre){
  60. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  61. arm_2d_region_t* _reg = obj_getStruct(reg, "_self");
  62. arm_2d_location_t* _centre = obj_getStruct(centre, "_self");
  63. return arm_2d_tile_transform(_self, _reg, _centre);
  64. }
  65. int Arm2D_Tile_is_root_tile(PikaObj *self){
  66. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  67. return arm_2d_is_root_tile(_self);
  68. }
  69. PikaObj* Arm2D_Tile_get_absolute_location(PikaObj *self){
  70. arm_2d_tile_t* _self = obj_getStruct(self, "_self");
  71. arm_2d_location_t _location = {0};
  72. arm_2d_get_absolute_location(_self, &_location);
  73. PikaObj* location = newNormalObj(New_Arm2D_Location);
  74. obj_setStruct(location, "_self", _location);
  75. return location;
  76. }
  77. void Arm2D_Star___init__(PikaObj *self){
  78. extern arm_2d_tile_t c_tilePictureSunRGB565;
  79. obj_setStruct(self, "_self", c_tilePictureSunRGB565);
  80. }