public void Parse(CommandFileParser parser) { parser.ParserRead(); while (!parser.IsEndElement("rtspec")) { if (parser.IsElement() && (!parser.IsElement("rtspec"))) { if (parser.IsElement("generation")) { mGeneration = parser.ReadInt(); } else if (parser.IsElement("shadow")) { mComputeShadow = parser.ReadBool(); } else if (parser.IsElement("reflection")) { mComputeReflection = parser.ReadBool(); } else if (parser.IsElement("background")) { mBgColor = parser.ReadVector3(); } else { parser.ParserError("RTWorld"); } } else { parser.ParserRead(); } } }
private bool mUseDepthMap = false; // off /// <summary> /// Constructor from parser. /// Please DO NOT change the parsing routine unless you know what you are doing). /// </summary> /// <param name="parser"></param> public RTLightType_Spot(CommandFileParser parser) { mLightSourceType = RTLightSourceType.RTLightSourceTypeSpot; while (!parser.IsEndElement("light")) { if (parser.IsElement() && (!parser.IsElement("light"))) { if (parser.IsElement("color")) { mColor = parser.ReadVector3(); } else if (parser.IsElement("position")) { mPosition = parser.ReadVector3(); } else if (parser.IsElement("direction")) { mDirection = parser.ReadVector3(); } else if (parser.IsElement("innerAngle")) { mInnerAngle = MathHelper.ToRadians(parser.ReadFloat()); } else if (parser.IsElement("outerAngle")) { mOuterAngle = MathHelper.ToRadians(parser.ReadFloat()); } else if (parser.IsElement("falloff")) { mFallOff = parser.ReadFloat(); } else if (parser.IsElement("depthMap")) { mUseDepthMap = parser.ReadBool(); } else if (parser.IsElement("depthMapResolution")) { mRes = parser.ReadInt(); } else if (parser.IsElement("depthMapFilterRes")) { mFilterRes = parser.ReadInt(); } else { parser.ParserError("Light"); } } else { parser.ParserRead(); } } mDirection = -Vector3.Normalize(mDirection); mCosInAngle = (float)Math.Cos(mInnerAngle / 2); mCosOutAngle = (float)Math.Cos(mOuterAngle / 2); mFallOffDenominator = 1f / (mCosInAngle - mCosOutAngle); }
public void Parse(CommandFileParser parser) { parser.ParserRead(); while (!parser.IsEndElement("rtspec")) { if (parser.IsElement() && (!parser.IsElement("rtspec"))) { if (parser.IsElement("generation")) mGeneration = parser.ReadInt(); else if (parser.IsElement("shadow")) mComputeShadow = parser.ReadBool(); else if (parser.IsElement("reflection")) mComputeReflection = parser.ReadBool(); else if (parser.IsElement("background")) mBgColor = parser.ReadVector3(); else parser.ParserError("RTWorld"); } else parser.ParserRead(); } }
private bool mUseDepthMap = false; // off #endregion Fields #region Constructors /// <summary> /// Constructor from parser. /// Please DO NOT change the parsing routine unless you know what you are doing). /// </summary> /// <param name="parser"></param> public RTLightType_Spot(CommandFileParser parser) { mLightSourceType = RTLightSourceType.RTLightSourceTypeSpot; while (!parser.IsEndElement("light")) { if (parser.IsElement() && (!parser.IsElement("light"))) { if (parser.IsElement("color")) mColor = parser.ReadVector3(); else if (parser.IsElement("position")) mPosition = parser.ReadVector3(); else if (parser.IsElement("direction")) mDirection = parser.ReadVector3(); else if (parser.IsElement("innerAngle")) mInnerAngle = MathHelper.ToRadians(parser.ReadFloat()); else if (parser.IsElement("outerAngle")) mOuterAngle = MathHelper.ToRadians(parser.ReadFloat()); else if (parser.IsElement("falloff")) mFallOff = parser.ReadFloat(); else if (parser.IsElement("depthMap")) mUseDepthMap = parser.ReadBool(); else if (parser.IsElement("depthMapResolution")) mRes = parser.ReadInt(); else if (parser.IsElement("depthMapFilterRes")) mFilterRes = parser.ReadInt(); else parser.ParserError("Light"); } else parser.ParserRead(); } mDirection = -Vector3.Normalize(mDirection); mCosInAngle = (float) Math.Cos(mInnerAngle / 2); mCosOutAngle = (float)Math.Cos(mOuterAngle / 2); mFallOffDenominator = 1f / (mCosInAngle - mCosOutAngle); }