Пример #1
0
        public static Entity createGeometryMap()
        {
            Entity e = ecs_instance.create();

            GeometryMap geometry = new GeometryMap();

            PresentationParameters pp = GameContainer.SpriteBatch.GraphicsDevice.PresentationParameters;
            int           width       = pp.BackBufferWidth;
            int           height      = pp.BackBufferHeight;
            SurfaceFormat format      = pp.BackBufferFormat;

            geometry.ColorMap   = new RenderTarget2D(GameContainer.SpriteBatch.GraphicsDevice, width, height);
            geometry.NormalMap  = new RenderTarget2D(GameContainer.SpriteBatch.GraphicsDevice, width, height);
            geometry.DepthMap   = new RenderTarget2D(GameContainer.SpriteBatch.GraphicsDevice, width, height);
            geometry.ShadingMap = new RenderTarget2D(GameContainer.SpriteBatch.GraphicsDevice, width, height, false, format, pp.DepthStencilFormat, pp.MultiSampleCount, RenderTargetUsage.DiscardContents);

            geometry.AmbientColor = new Vector4(.1f, .1f, .1f, .1f);

            ecs_instance.add_component(e, geometry);

            ecs_instance.tag_manager.tag_entity("GEOMETRY", e);

            ecs_instance.resolve(e);

            return(e);
        }
Пример #2
0
        public GeometryMap LoadGeometryXML(string fileName)
        {
            var result = new GeometryMap();
            var serializer = new XmlSerializer(typeof(GeometryTypes.TBuilding));
            var reader = new FileStream(fileName, FileMode.Open);
            var building = serializer.Deserialize(reader) as GeometryTypes.TBuilding;
            foreach (var floor in building.FloorList)
            {
                var geometryList = new List<GeometryTypes.TGeometryItem>();
                foreach (var room in floor.RoomList)
                {
                    foreach(var geometryItem in room.Geometry)
                        geometryList.Add(geometryItem);
                }

                result.Add(floor.Number, geometryList);
            }
            return result;
        }