engineStructs.cpp 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) 2012 GarageGames, LLC
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to
  6. // deal in the Software without restriction, including without limitation the
  7. // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8. // sell copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  19. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. // IN THE SOFTWARE.
  21. //-----------------------------------------------------------------------------
  22. #include "console/engineStructs.h"
  23. #include "console/engineAPI.h"
  24. #include "core/util/tVector.h"
  25. #include "core/util/uuid.h"
  26. #include "core/color.h"
  27. #include "math/mPolyhedron.h"
  28. IMPLEMENT_STRUCT(PlaneF,
  29. PlaneF, ,
  30. "")
  31. FIELD(x, x, 1, "")
  32. FIELD(y, y, 1, "")
  33. FIELD(z, z, 1, "")
  34. FIELD(d, d, 1, "")
  35. END_IMPLEMENT_STRUCT;
  36. IMPLEMENT_STRUCT( PolyhedronData::Edge,
  37. Edge,,
  38. "" )
  39. FIELD_AS(U32, face, face, 2, "")
  40. FIELD_AS(U32, vertex, vertex, 2, "")
  41. END_IMPLEMENT_STRUCT;
  42. IMPLEMENT_STRUCT(Torque::UUID,
  43. UUID, ,
  44. "")
  45. Torque::UUIDEngineExport::getAField(),
  46. Torque::UUIDEngineExport::getBField(),
  47. Torque::UUIDEngineExport::getCField(),
  48. Torque::UUIDEngineExport::getDField(),
  49. Torque::UUIDEngineExport::getEField(),
  50. Torque::UUIDEngineExport::getFField(),
  51. END_IMPLEMENT_STRUCT;
  52. IMPLEMENT_STRUCT( ColorI,
  53. ColorI,,
  54. "RGBA color quadruple in 8bit integer precision per channel." )
  55. FIELD( red, red, 1, "Red channel value." )
  56. FIELD( green, green, 1, "Green channel value." )
  57. FIELD( blue, blue, 1, "Blue channel value." )
  58. FIELD( alpha, alpha, 1, "Alpha channel value." )
  59. END_IMPLEMENT_STRUCT;
  60. IMPLEMENT_STRUCT( LinearColorF,
  61. LinearColorF,,
  62. "RGBA color quadruple in 32bit floating-point precision per channel." )
  63. FIELD( red, red, 1, "Red channel value." )
  64. FIELD( green, green, 1, "Green channel value." )
  65. FIELD( blue, blue, 1, "Blue channel value." )
  66. FIELD( alpha, alpha, 1, "Alpha channel value." )
  67. END_IMPLEMENT_STRUCT;
  68. // Vectors
  69. IMPLEMENT_STRUCT( Vector< bool >,
  70. BoolVector,,
  71. "" )
  72. VectorFieldEngineExport::getElementCountField< bool >(),
  73. VectorFieldEngineExport::getArraySizeField< bool >(),
  74. VectorFieldEngineExport::getArrayField< bool >(),
  75. END_IMPLEMENT_STRUCT;
  76. IMPLEMENT_STRUCT( Vector< S32 >,
  77. IntVector,,
  78. "" )
  79. VectorFieldEngineExport::getElementCountField< S32 >(),
  80. VectorFieldEngineExport::getArraySizeField< S32 >(),
  81. VectorFieldEngineExport::getArrayField< S32 >(),
  82. END_IMPLEMENT_STRUCT;
  83. IMPLEMENT_STRUCT( Vector< F32 >,
  84. FloatVector,,
  85. "" )
  86. VectorFieldEngineExport::getElementCountField< F32 >(),
  87. VectorFieldEngineExport::getArraySizeField< F32 >(),
  88. VectorFieldEngineExport::getArrayField< F32 >(),
  89. END_IMPLEMENT_STRUCT;
  90. IMPLEMENT_STRUCT( Vector< Point3F >,
  91. Point3FVector,,
  92. "" )
  93. VectorFieldEngineExport::getElementCountField< Point3F >(),
  94. VectorFieldEngineExport::getArraySizeField< Point3F >(),
  95. VectorFieldEngineExport::getArrayField< Point3F >(),
  96. END_IMPLEMENT_STRUCT;
  97. IMPLEMENT_STRUCT(Vector< PlaneF >,
  98. PlaneFVector, ,
  99. "")
  100. VectorFieldEngineExport::getElementCountField< PlaneF >(),
  101. VectorFieldEngineExport::getArraySizeField< PlaneF >(),
  102. VectorFieldEngineExport::getArrayField< PlaneF >(),
  103. END_IMPLEMENT_STRUCT;
  104. IMPLEMENT_STRUCT(Vector< PolyhedronData::Edge >,
  105. EdgeVector, ,
  106. "")
  107. VectorFieldEngineExport::getElementCountField< PolyhedronData::Edge >(),
  108. VectorFieldEngineExport::getArraySizeField< PolyhedronData::Edge >(),
  109. VectorFieldEngineExport::getArrayField< PolyhedronData::Edge >(),
  110. END_IMPLEMENT_STRUCT;
  111. IMPLEMENT_STRUCT(Vector< const char* >,
  112. StringVector, ,
  113. "")
  114. VectorFieldEngineExport::getElementCountField< const char* >(),
  115. VectorFieldEngineExport::getArraySizeField< const char* >(),
  116. VectorFieldEngineExport::getArrayField< const char* >(),
  117. END_IMPLEMENT_STRUCT;