Esempio n. 1
0
        public static void ComputeLocalToWorld(OpsFrame root, Matrix ParentWorld)
        {
            root.LocalToWorld = root.TransformationMatrix * ParentWorld;

            for (OpsMeshContainer mc = root.MeshContainer as OpsMeshContainer;
                 mc != null;
                 mc = mc.NextContainer as OpsMeshContainer)
            {
                mc.LocalToWorld = root.LocalToWorld;
            }

            for (OpsFrame f = root.FrameFirstChild as OpsFrame;
                 f != null;
                 f = f.FrameSibling as OpsFrame)
            {
                ComputeLocalToWorld(f, root.LocalToWorld);
            }
        }
Esempio n. 2
0
            //AllocateHierarchy
            public override MeshContainer CreateMeshContainer(
                string name,
                MeshData meshData,
                ExtendedMaterial[] materials,
                EffectInstance[] effectInstances,
                GraphicsStream adjacency,
                SkinInformation skinInfo)
            {
                if (meshData.Mesh == null)
                {
                    throw new OpsException("Expecting Microsoft.DirectX.Direct3D.Mesh not Microsoft.DirectX.Direct3D.ProgressiveMesh or Microsoft.DirectX.Direct3D.PatchMesh.");
                }

                OpsMeshContainer mc = new OpsMeshContainer();

                mc.Name     = name;
                mc.MeshData = meshData;
                mc.SetMaterials(materials);
                mc.SetEffectInstances(effectInstances);
                mc.SetAdjacency(adjacency);
                mc.SkinInformation = skinInfo;

                return(mc);
            }
Esempio n. 3
0
            //AllocateHierarchy
            public override MeshContainer CreateMeshContainer(
                string name,
                MeshData meshData,
                ExtendedMaterial[] materials,
                EffectInstance[] effectInstances,
                GraphicsStream adjacency,
                SkinInformation skinInfo)
            { 
                if(meshData.Mesh == null )
                    throw new OpsException("Expecting Microsoft.DirectX.Direct3D.Mesh not Microsoft.DirectX.Direct3D.ProgressiveMesh or Microsoft.DirectX.Direct3D.PatchMesh.");

                OpsMeshContainer mc= new OpsMeshContainer();
                mc.Name= name;
                mc.MeshData= meshData;
                mc.SetMaterials(materials);
                mc.SetEffectInstances(effectInstances);
                mc.SetAdjacency(adjacency);
                mc.SkinInformation = skinInfo;

                return mc;
            }