public ModelCollectionContent(MaterialCollectionContent materials, MeshCollectionContent meshes, ArmatureContent[] armatures, ModelContent[] models, int defaultModelIndex) { _SharedMaterials = materials; _SharedMeshes = meshes; _SharedArmatures = armatures; _Models = models; _DefaultModelIndex = defaultModelIndex; }
private static IEnumerable <(XNAV3 A, XNAV3 B, XNAV3 C)> EvaluateTriangles(ModelInstance srcModel, MeshCollectionContent srcMeshes) { foreach (var drawable in srcModel.DrawableInstances) { var controller = drawable.Transform; XNAV3 transform(XNAV3 pos, Microsoft.Xna.Framework.Graphics.PackedVector.BoneInfluences blend) { return(controller.TransformPosition(pos, null, blend)); } foreach (var tri in srcMeshes.EvaluateTriangles(drawable.Content.MeshIndex, transform)) { yield return(tri); } } }
private static Microsoft.Xna.Framework.BoundingSphere EvaluateBoundingSphere(ModelInstance srcModel, MeshCollectionContent srcMeshes) { var triangles = EvaluateTriangles(srcModel, srcMeshes) .SelectMany(item => new[] { item.A, item.B, item.C }); return(Microsoft.Xna.Framework.BoundingSphere.CreateFromPoints(triangles)); }