define([
  "dojo/_base/declare",
  "state/BoundingBoxUndefined",
  "state/BoundingBoxDefining",
  "state/BoundingBoxDefined",
  "state/WaitingForPortrayal",
  "state/FreezeScene",
  "state/SceneRendered"
], function (declare, BoundingBoxUndefined, BoundingBoxDefining, BoundingBoxDefined, WaitingForPortrayal, FreezeScene, SceneRendered) {

  return declare(null, {

    constructor: function () {

    },

    createState: function (stateName) {
      switch (stateName) {
        case "BoundingBoxUndefined":
          return new BoundingBoxUndefined();
          break;
        case "BoundingBoxDefining":
          return new BoundingBoxDefining();
          break;
        case "BoundingBoxDefined":
          return new BoundingBoxDefined();
          break;
        case "WaitingForPortrayal":
          return new WaitingForPortrayal();
          break;
        case "FreezeScene":
          return new FreezeScene();
          break;
        case "SceneRendered":
          return new SceneRendered();
          break;
        default:
          return new BoundingBoxUndefined();
      }
    }

  });

});