tool_api.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. /*
  2. * Copyright (c) 2012-2018 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/dbartolini/crown/blob/master/LICENSE
  4. */
  5. #include "core/strings/types.h"
  6. #include "core/types.h"
  7. #include "world/types.h"
  8. #if CROWN_PLATFORM_WINDOWS
  9. #undef RELATIVE
  10. #undef ABSOLUTE
  11. #endif // CROWN_PLATFORM_WINDOWS
  12. namespace crown
  13. {
  14. namespace tool
  15. {
  16. struct ToolType
  17. {
  18. enum Enum
  19. {
  20. PLACE,
  21. MOVE,
  22. ROTATE,
  23. SCALE
  24. };
  25. };
  26. struct SnapMode
  27. {
  28. enum Enum
  29. {
  30. RELATIVE,
  31. ABSOLUTE
  32. };
  33. };
  34. struct ReferenceSystem
  35. {
  36. enum Enum
  37. {
  38. LOCAL,
  39. WORLD
  40. };
  41. };
  42. const char* lua_bool(const bool b);
  43. void lua_vector2(StringStream& out, const Vector2& v);
  44. void lua_vector3(StringStream& out, const Vector3& v);
  45. void lua_quaternion(StringStream& out, const Quaternion& q);
  46. void device_quit(StringStream& out);
  47. void set_mouse_state(StringStream& out, f32 x, f32 y, bool left, bool middle, bool right);
  48. void mouse_down(StringStream& out, f32 x, f32 y);
  49. void mouse_up(StringStream& out, f32 x, f32 y);
  50. void mouse_wheel(StringStream& out, f32 delta);
  51. void key_down(StringStream& out, const char* key);
  52. void key_up(StringStream& out, const char* key);
  53. void set_grid_size(StringStream& out, f32 size);
  54. void set_rotation_snap(StringStream& out, f32 degrees);
  55. void enable_show_grid(StringStream& out, bool enable);
  56. void enable_snap_to_grid(StringStream& out, bool enable);
  57. void enable_debug_render_world(StringStream& out, bool enable);
  58. void enable_debug_physics_world(StringStream& out, bool enable);
  59. void set_tool_type(StringStream& out, const ToolType::Enum tt);
  60. void set_snap_mode(StringStream& out, const SnapMode::Enum sm);
  61. void set_reference_system(StringStream& out, const ReferenceSystem::Enum rs);
  62. void spawn_unit(StringStream& out
  63. , const Guid& id
  64. , const char* name
  65. , const Vector3& pos
  66. , const Quaternion& rot
  67. , const Vector3& scl
  68. );
  69. void spawn_empty_unit(StringStream& /*out*/, Guid& /*id*/);
  70. void spawn_sound(StringStream& /*out*/
  71. , const Guid& /*id*/
  72. , const char* /*name*/
  73. , const Vector3& /*pos*/
  74. , const Quaternion& /*rot*/
  75. , const f64 /*vol*/
  76. , const bool /*loop*/
  77. );
  78. void add_tranform_component(StringStream& /*out*/
  79. , const Guid& /*id*/
  80. , const Guid& /*component_id*/
  81. , const Vector3& /*pos*/
  82. , const Quaternion& /*rot*/
  83. , const Vector3& /*scl*/
  84. );
  85. void add_mesh_component(StringStream& /*out*/
  86. , const Guid& /*id*/
  87. , const Guid& /*component_id*/
  88. , const char* /*mesh_resource*/
  89. , const char* /*geometry_name*/
  90. , const char* /*material_resource*/
  91. , const bool /*visible*/
  92. );
  93. void add_material_component(StringStream& /*out*/
  94. , const Guid& /*id*/
  95. , const Guid& /*component_id*/
  96. , const char* /*sprite_resource*/
  97. , const char* /*material_resource*/
  98. , const bool /*visible*/
  99. );
  100. void add_camera_content(StringStream& /*out*/
  101. , const Guid& /*id*/
  102. , const Guid& /*component_id*/
  103. , const ProjectionType::Enum /*projection*/
  104. , const f64 /*fov*/
  105. , const f64 /*far_range*/
  106. , const f64 /*near_range*/
  107. );
  108. void add_light_component(StringStream& /*out*/
  109. , const Guid& /*id*/
  110. , const Guid& /*component_id*/
  111. , const LightType::Enum /*type*/
  112. , const f64 /*range*/
  113. , const f64 /*intensity*/
  114. , const f64 /*spot_angle*/
  115. , const Vector3& /*color*/
  116. );
  117. void move_object(StringStream& /*out*/
  118. , const Guid& /*id*/
  119. , const Vector3& /*pos*/
  120. , const Quaternion& /*rot*/
  121. , const Vector3& /*scl*/
  122. );
  123. void set_light(StringStream& /*out*/
  124. , const Guid& /*id*/
  125. , const LightType::Enum /*type*/
  126. , const f64 /*range*/
  127. , const f64 /*intensity*/
  128. , const f64 /*spot_angle*/
  129. , const Vector3& /*color*/
  130. );
  131. void set_sound_range(StringStream& /*out*/
  132. , const Guid& /*id*/
  133. , f64 /*range*/
  134. );
  135. void set_placeable(StringStream& out
  136. , const char* type
  137. , const char* name
  138. );
  139. void selection_set(StringStream& /*out*/, const Array<Guid>& /*ids*/);
  140. void camera_view_perspective(StringStream& out);
  141. void camera_view_front(StringStream& out);
  142. void camera_view_back(StringStream& out);
  143. void camera_view_right(StringStream& out);
  144. void camera_view_left(StringStream& out);
  145. void camera_view_top(StringStream& out);
  146. void camera_view_bottom(StringStream& out);
  147. } // namespace tool
  148. } // namespace crown