#include "SceneEntityConverter.h" #include "SceneEntity.h" #include "Geometry.h" #include "Shape.h" using namespace std; namespace CHCDemoEngine { SceneEntity *SceneEntityConverter::ConvertBox(const AxisAlignedBox3 &box, Material *mat, Transform3 *trafo) { SceneEntity *ent = new SceneEntity(trafo); vector triangles; box.Triangulate(triangles); Vector3 *vertices = new Vector3[36]; Vector3 *normals = new Vector3[36]; for (size_t i = 0; i < triangles.size(); ++ i) { Triangle3 tri = triangles[i]; vertices[i * 3 + 0] = tri.mVertices[0]; vertices[i * 3 + 1] = tri.mVertices[1]; vertices[i * 3 + 2] = tri.mVertices[2]; Vector3 normal = tri.GetNormal(); normals[i * 3 + 0] = normal; normals[i * 3 + 1] = normal; normals[i * 3 + 2] = normal; } Geometry *geom = new Geometry(vertices, normals, NULL, 36, false, NULL); Shape *shape = new Shape(geom, mat); ent->AddShape(shape); LODLevel lodLevel(0); lodLevel.AddShape(shape); ent->AddLODLevel(lodLevel); return ent; } }