#region File Description
//-----------------------------------------------------------------------------
// GameResourceModel.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#endregion
#region Using Statements
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
#endregion
namespace RobotGameData.Resource
{
///
/// saves the transform matrix of the read-in model class and the bones of
/// the model’s initial state.
///
public class ModelData
{
public Model model = null;
public Matrix[] boneTransforms = null;
}
///
/// a resource element structure with Model class.
/// When a model(.FBX or .X) file is loaded from the resource manager,
/// it gets stored here.
///
public class GameResourceModel : GameResourceBase
{
#region Fields
ModelData modelData = new ModelData();
#endregion
#region Properties
public ModelData ModelData
{
get { return modelData; }
}
#endregion
///
/// Constructor.
///
/// key name
/// asset name
/// model resource
public GameResourceModel(string key, string assetName, Model resource)
: base(key, assetName)
{
this.modelData.model = resource;
this.modelData.boneTransforms = new Matrix[resource.Bones.Count];
this.modelData.model.CopyBoneTransformsTo(this.modelData.boneTransforms);
this.resource = (object)this.modelData;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (modelData != null)
{
modelData.model = null;
modelData = null;
}
}
base.Dispose(disposing);
}
}
}