using System; using ANX.Framework; using ANX.Framework.Content; using ANX.Framework.Graphics; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace BasicEffectSample { public abstract class BaseScene { protected BasicEffect effect; protected VertexBuffer vertices; protected IndexBuffer indices; public abstract string Name { get; } public abstract void Initialize(ContentManager content, GraphicsDevice graphicsDevice); public abstract void Draw(GraphicsDevice graphicsDevice); protected void EnableLightingMode(LightingMode mode) { effect.LightingEnabled = true; if (mode == LightingMode.VertexLighting) { effect.EnableDefaultLighting(); effect.PreferPerPixelLighting = false; } else if (mode == LightingMode.OneLight) { effect.DirectionalLight0.Enabled = true; effect.DirectionalLight1.Enabled = false; effect.DirectionalLight2.Enabled = false; effect.PreferPerPixelLighting = false; } else if (mode == LightingMode.PixelLighting) { effect.EnableDefaultLighting(); effect.PreferPerPixelLighting = true; } } protected void ToggleFog(bool enabled) { if (enabled) { effect.FogStart = 1f; effect.FogEnd = 15f; effect.FogColor = Color.Gray.ToVector3(); } effect.FogEnabled = enabled; } protected void SetCameraMatrices() { effect.World = Camera.World; effect.View = Camera.View; effect.Projection = Camera.Projection; } } }