Root/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | #region License /* FNA - XNA4 Reimplementation for Desktop Platforms * Copyright 2009-2016 Ethan Lee and the MonoGame Team * * Released under the Microsoft Public License. * See LICENSE for details. */ #endregion namespace Microsoft.Xna.Framework.Graphics { public sealed class DirectionalLight { #region Public Properties private Vector3 INTERNAL_diffuseColor; public Vector3 DiffuseColor { get { return INTERNAL_diffuseColor; } set { INTERNAL_diffuseColor = value; if (Enabled && diffuseColorParameter != null ) { diffuseColorParameter.SetValue(INTERNAL_diffuseColor); } } } private Vector3 INTERNAL_direction; public Vector3 Direction { get { return INTERNAL_direction; } set { INTERNAL_direction = value; if (directionParameter != null ) { directionParameter.SetValue(INTERNAL_direction); } } } private Vector3 INTERNAL_specularColor; public Vector3 SpecularColor { get { return INTERNAL_specularColor; } set { INTERNAL_specularColor = value; if (Enabled && specularColorParameter != null ) { specularColorParameter.SetValue(INTERNAL_specularColor); } } } private bool INTERNAL_enabled; public bool Enabled { get { return INTERNAL_enabled; } set { if (INTERNAL_enabled != value) { INTERNAL_enabled = value; if (INTERNAL_enabled) { if (diffuseColorParameter != null ) { diffuseColorParameter.SetValue(DiffuseColor); } if (specularColorParameter != null ) { specularColorParameter.SetValue(SpecularColor); } } else { if (diffuseColorParameter != null ) { diffuseColorParameter.SetValue(Vector3.Zero); } if (specularColorParameter != null ) { specularColorParameter.SetValue(Vector3.Zero); } } } } } #endregion #region Internal Variables internal EffectParameter diffuseColorParameter; internal EffectParameter directionParameter; internal EffectParameter specularColorParameter; #endregion #region Public Constructor public DirectionalLight( EffectParameter directionParameter, EffectParameter diffuseColorParameter, EffectParameter specularColorParameter, DirectionalLight cloneSource ) { this .diffuseColorParameter = diffuseColorParameter; this .directionParameter = directionParameter; this .specularColorParameter = specularColorParameter; if (cloneSource != null ) { DiffuseColor = cloneSource.DiffuseColor; Direction = cloneSource.Direction; SpecularColor = cloneSource.SpecularColor; Enabled = cloneSource.Enabled; } } #endregion } } |