/// <summary> /// Renders the Xray image on the CPU. /// </summary> /// <param name="bsource"></param> /// <param name="sourceObject"></param> /// <param name="viewObject"></param> /// <param name="xrayImageEffect"></param> /// <param name="trimatEffect"></param> /// <param name="effects"></param> /// <param name="displayWidth"></param> /// <param name="displayHeight"></param> /// <param name="adornerLayerManager"></param> /// <param name="displayAnnotations"></param> /// <param name="displayMeasurements"></param> /// <returns>The newly rendered bitmap.</returns> public static BitmapSource GetRenderedXrayImage(BitmapSource bsource, SourceObject sourceObject, ViewObject viewObject, ShaderEffect xrayOrTrimateImageEffect, List<Effect> effects, double displayWidth, double displayHeight, AdornerLayerManager adornerLayerManager, bool displayAnnotations, bool displayMeasurements) { if (xrayOrTrimateImageEffect != null && xrayOrTrimateImageEffect.GetType() == typeof(XrayImageEffect)) { RenderXrayImage_XRayImageEffect(ref bsource, (XrayImageEffect)xrayOrTrimateImageEffect, sourceObject); } //else if (xrayOrTrimateImageEffect.GetType() == typeof(TrimatEffect)) //{ // RenderXrayImage_TrimatEffect(ref bsource, (TrimatEffect)xrayOrTrimateImageEffect, sourceObject, viewObject); //} foreach (Effect effect in effects) { ApplyEffectToBitmap(ref bsource, effect); } if (displayAnnotations) { RenderAnnotations(ref bsource, displayWidth, displayHeight, adornerLayerManager); } if (displayMeasurements) { RenderMeasurements(ref bsource, displayWidth, displayHeight, adornerLayerManager); } return bsource; }
public string GetEffectName(ShaderEffect shaderEffect) { string effectName = "no effect"; if (shaderEffect != null) { var descriptionAttribute = (DescriptionAttribute)Attribute.GetCustomAttribute(shaderEffect.GetType(), typeof(DescriptionAttribute)); if (descriptionAttribute == null) { effectName = shaderEffect.GetType().Name; } else { effectName = descriptionAttribute.Description; } } return effectName; }