package
{
        import org.papervision3d.materials.MovieMaterial;
        import org.papervision3d.materials.utils.MaterialsList;
        import org.papervision3d.objects.DisplayObject3D;

        public class ApplicationManager
        {
                protected static var instance:ApplicationManager = null;
                protected var mesh:MeshObject = null;
                protected var materials:MaterialsList = null;

                public static function get Instance():ApplicationManager
                {
                        if (instance == null)
                        instance = new ApplicationManager();
                        return instance;
                }

                public function ApplicationManager()
                {
                }

                public function startupApplicationManager():void
                {
                        // create a model to render to the screen
                        materials = new MaterialsList();
                        materials.addMaterial(ResourceManager.SF02_Tex, "sf-01");
                        mesh = new MeshObject().startupModelObject(ResourceManager.Fighter1XML, materials);
                }

                public function shutdown():void
                {
                        mesh.shutdown();
                }

                public function set shipMaterial(material:MovieMaterial):void
                {
                        for each (var child:DisplayObject3D in mesh.model.children)
                        mesh.model.setChildMaterialByName(child.name, material);
                }
        }
}