MeshDataTests.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <memory>
  9. #include <AzTest/AzTest.h>
  10. #include <SceneAPI/SceneData/GraphData/MeshData.h>
  11. #include <SceneAPI/SceneCore/DataTypes/GraphData/IMeshData.h>
  12. namespace AZ
  13. {
  14. namespace SceneData
  15. {
  16. // ===================================================
  17. // == MeshData Construction ==
  18. // ===================================================
  19. TEST(MeshData_Construction, Constructor_DefaultConstruction_PositionCountEqualsZero)
  20. {
  21. AZ::SceneData::GraphData::MeshData meshData;
  22. EXPECT_EQ(0, meshData.GetVertexCount());
  23. }
  24. TEST(MeshData_Construction, Constructor_DefaultConstruction_HasNoNormalData)
  25. {
  26. AZ::SceneData::GraphData::MeshData meshData;
  27. EXPECT_FALSE(meshData.HasNormalData());
  28. }
  29. TEST(MeshData_Construction, AddPosition_AddVector3_GetVertexCountEqualsOne)
  30. {
  31. AZ::SceneData::GraphData::MeshData meshData;
  32. AZ::Vector3 position(1, 0, 0);
  33. meshData.AddPosition(position);
  34. EXPECT_EQ(1, meshData.GetVertexCount());
  35. }
  36. TEST(MeshData_Construction, AddPosition_AddVector3_GetPositionEqual)
  37. {
  38. AZ::SceneData::GraphData::MeshData meshData;
  39. AZ::Vector3 position(0.1f, 0.2f, 0.3f);
  40. meshData.AddPosition(position);
  41. const AZ::Vector3& storedPosition = meshData.GetPosition(0);
  42. EXPECT_FLOAT_EQ(position.GetX(), storedPosition.GetX());
  43. EXPECT_FLOAT_EQ(position.GetY(), storedPosition.GetY());
  44. EXPECT_FLOAT_EQ(position.GetZ(), storedPosition.GetZ());
  45. }
  46. TEST(MeshData_Construction, AddNormal_AddVector3_HasNormalData)
  47. {
  48. AZ::SceneData::GraphData::MeshData meshData;
  49. AZ::Vector3 normal(1, 0, 0);
  50. meshData.AddNormal(normal);
  51. EXPECT_TRUE(meshData.HasNormalData());
  52. }
  53. TEST(MeshData_Construction, AddNormal_AddVector3_GetNormalEqual)
  54. {
  55. AZ::SceneData::GraphData::MeshData meshData;
  56. AZ::Vector3 normal(0.1f, 0.2f, 0.3f);
  57. meshData.AddNormal(normal);
  58. const AZ::Vector3& storedNormal = meshData.GetNormal(0);
  59. EXPECT_FLOAT_EQ(normal.GetX(), storedNormal.GetX());
  60. EXPECT_FLOAT_EQ(normal.GetY(), storedNormal.GetY());
  61. EXPECT_FLOAT_EQ(normal.GetZ(), storedNormal.GetZ());
  62. }
  63. TEST(MeshData_Construction, AddFace_AddValidFace_GetFaceEqual)
  64. {
  65. AZ::SceneData::GraphData::MeshData meshData;
  66. AZ::SceneAPI::DataTypes::IMeshData::Face face;
  67. face.vertexIndex[0] = 0;
  68. face.vertexIndex[1] = 1;
  69. face.vertexIndex[2] = 2;
  70. meshData.AddFace(face);
  71. EXPECT_EQ(1, meshData.GetFaceCount());
  72. const AZ::SceneAPI::DataTypes::IMeshData::Face& testValue = meshData.GetFaceInfo(0);
  73. EXPECT_EQ(testValue.vertexIndex[0], face.vertexIndex[0]);
  74. EXPECT_EQ(testValue.vertexIndex[1], face.vertexIndex[1]);
  75. EXPECT_EQ(testValue.vertexIndex[2], face.vertexIndex[2]);
  76. }
  77. TEST(MeshData_Construction, AddFace_AddValidFaceIndexes_GetFaceEqual)
  78. {
  79. AZ::SceneData::GraphData::MeshData meshData;
  80. meshData.AddFace(0, 1, 2);
  81. EXPECT_EQ(1, meshData.GetFaceCount());
  82. const AZ::SceneAPI::DataTypes::IMeshData::Face& testValue = meshData.GetFaceInfo(0);
  83. EXPECT_EQ(testValue.vertexIndex[0], 0);
  84. EXPECT_EQ(testValue.vertexIndex[1], 1);
  85. EXPECT_EQ(testValue.vertexIndex[2], 2);
  86. }
  87. TEST(MeshData_Construction, AddFace_AddValidFace_GetFaceMaterialEqual)
  88. {
  89. AZ::SceneData::GraphData::MeshData meshData;
  90. AZ::SceneAPI::DataTypes::IMeshData::Face face;
  91. face.vertexIndex[0] = 0;
  92. face.vertexIndex[1] = 1;
  93. face.vertexIndex[2] = 2;
  94. meshData.AddFace(face);
  95. EXPECT_EQ(0, meshData.GetFaceMaterialId(0));
  96. }
  97. }
  98. }