#ifndef __ENTITYMERGER_H #define __ENTITYMERGER_H #include "common.h" namespace CHCDemoEngine { class Material; class Transform3; class SceneEntity; class Geometry; class Shape; /** Class representing a scene entity merger It merges two scene entities and creates a new one */ class EntityMerger { public: /** Creates a scene entity. */ EntityMerger(SceneEntity *entity1, SceneEntity *entity2); ~EntityMerger(); SceneEntity *Merge(); protected: Geometry *MergeGeometry(Geometry *geom1, Geometry *geom2); Shape *MergeShapes(Shape *shape1, Shape *shape2, SceneEntity *parent); Geometry *MergeGeometries(const GeometryContainer &geometries); Shape *MergeShapes(const ShapeContainer &shapes, SceneEntity *parent); SceneEntity *mEntity1; SceneEntity *mEntity2; }; } #endif // __ENTITYMERGER_H