public ModelCollectionContent(MaterialCollectionContent materials, MeshCollectionContent meshes, ArmatureContent[] armatures, ModelContent[] models, int defaultModelIndex)
 {
     _SharedMaterials   = materials;
     _SharedMeshes      = meshes;
     _SharedArmatures   = armatures;
     _Models            = models;
     _DefaultModelIndex = defaultModelIndex;
 }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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));
        }