/// <summary> /// Initializes a new instance of the ExtendedModel class. /// </summary> /// <param name="content">The ContentManager to use to load the asset.</param> /// <param name="assetName">The name of the asset to load.</param> /// <exception cref="InvalidOperationException">Vertex data missing or in invalid format.</exception> private ExtendedModel(PackFileContentManager content, string assetName) { this.model = content.Load<Model>(assetName); try { if (this.model.Tag != null && this.model.Tag is Vector3[]) { this.vertices = (Vector3[])this.model.Tag; } else { throw new InvalidOperationException(Resources.VertexDataMissingInvalid); } this.BoundingSphere = BoundingSphere.CreateFromPoints(this.vertices); this.BoundingBox = BoundingBox.CreateFromPoints(this.vertices); } finally { this.model.Tag = null; } ExtendedModel.cache.Add(assetName, this); }
/// <summary> /// Initializes a new instance of the GameEngine class. /// </summary> /// <param name="deviceManager">The GraphicsDeviceManager to manage rendering.</param> /// <param name="contentManager">The ContentManager for the content pipeline to load content from.</param> /// <exception cref="System.ArgumentNullException">GraphicsDeviceManager is null -or- ContentManager is null.</exception> public GameEngine(GraphicsDeviceManager deviceManager, PackFileContentManager contentManager) : this(contentManager) { if (deviceManager == null) { throw new ArgumentNullException("deviceManager"); } this.GraphicsDeviceManager = deviceManager; }
/// <summary> /// Initializes a new instance of the GameEngine class. /// </summary> /// <param name="content">The ContentManager for the content pipeline to load content from.</param> /// <exception cref="System.ArgumentNullException">ContentManager is null.</exception> private GameEngine(PackFileContentManager content) : this() { if (content == null) { throw new ArgumentNullException("content"); } this.Content = content; this.FontCreator = new SpriteFontCreator(content.ServiceProvider); }
/// <summary> /// Loads a model from an XNB asset. /// </summary> /// <param name="content">The ContentManager to use to load the asset.</param> /// <param name="assetName">The name of the asset to load.</param> /// <returns>See summary.</returns> public static ExtendedModel Load(PackFileContentManager content, string assetName) { if (ExtendedModel.cache.ContainsKey(assetName)) { return ExtendedModel.cache[assetName]; } else { return new ExtendedModel(content, assetName); } }