/// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="graphVisualizer"></param>
 /// <param name="function"></param>
 public GradientProfileGraph(GraphVisualizer graphVisualizer, ProfileFunction function)
     : base(graphVisualizer, function)
 {
     Function = function;
     graphVisualizer.EnableAxisY2();  // the gradients are displayed on axis Y2
     Data.YAxisType = AxisType.Secondary;
 }
        public override void GenerateShader(MaterialGeneratorContext context)
        {
            var shaderSource = new ShaderMixinSource();

            shaderSource.Mixins.Add(new ShaderClassSource("MaterialSurfaceSubsurfaceScatteringShading"));

            TranslucencyMap.ClampFloat(0.0f, 1.0f);
            context.SetStream(ScatteringStrengthStream.Stream, TranslucencyMap, MaterialKeys.ScatteringStrengthMap, MaterialKeys.ScatteringStrengthValue);

            // TODO: Generate a hash with the scattering kernel and scattering width!

            var parameters = context.MaterialPass.Parameters;

            parameters.Set(Stride.Rendering.Materials.MaterialSurfaceSubsurfaceScatteringShadingKeys.Translucency, Translucency);
            parameters.Set(Stride.Rendering.Materials.MaterialSurfaceSubsurfaceScatteringShadingKeys.ScatteringWidth, ScatteringWidth);

            // Generate and set the scattering profile:
            shaderSource.AddComposition("scatteringProfileFunction", ProfileFunction.Generate(context));

            // Generate and set the scattering kernel:
            Vector4[] scatteringKernel = KernelFunction.Generate();
            parameters.Set(Stride.Rendering.Materials.MaterialSurfaceSubsurfaceScatteringShadingKeys.ScatteringKernel, scatteringKernel);

            /*
             * {
             *  Game game = Services.GetSafeServiceAs<Game>();
             *  SubsurfaceScatteringSettings settings = game.Settings.Configurations.Get<SubsurfaceScatteringSettings>();
             *  //SubsurfaceScatteringSettings settings = services.GetSafeServiceAs<SubsurfaceScatteringSettings>();  // TODO: Query the settings like this once the system is ready.
             * }
             */

            var shaderBuilder = context.AddShading(this);

            shaderBuilder.LightDependentSurface = shaderSource;
        }
 private void btnConfirm_Click(object sender, RoutedEventArgs e)
 {
     string irum = textName.Text;
     string juso = textAddress.Text;
     ProfileFunction pf = new ProfileFunction(irum,juso);
     pf.Return += new ReturnEventHandler<Employee>(pf_Return);
     NavigationService.Navigate(pf);
 }
        private static ProfileFunction <Source, Destination> AddFunction <Source, Destination>(Func <Source, Destination, Destination> func) where Source : class where Destination : class
        {
            var key             = NameCreator.CacheKey(typeof(Source), typeof(Destination));
            var profileFunction = new ProfileFunction <Source, Destination>();

            profileFunction.Function = func;
            MapperCore.ProfileFunctionList.TryAdd(key, profileFunction);
            return(profileFunction);
        }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = ScatteringWidth.GetHashCode();
         hashCode = (hashCode * 397) ^ Translucency.GetHashCode();
         hashCode = (hashCode * 397) ^ TranslucencyMap.GetHashCode();
         hashCode = (hashCode * 397) ^ ProfileFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ KernelFunction.GetHashCode();
         return(hashCode);
     }
 }
        /// <summary>
        ///     Handles the display
        /// </summary>
        /// <param name="maxDistance"></param>
        /// <param name="minDistance"></param>
        /// <param name="height"></param>
        protected override void HandleDisplay(double maxDistance, double minDistance, double height)
        {
            ProfileSetFunction profileSetFunction = Function as ProfileSetFunction;

            if (profileSetFunction != null && profileSetFunction.Functions.Count > 0)
            {
                ClearData();
                SpeedDistancePoint startingPoint = DisplayPreviousData(maxDistance);
                foreach (IGraph graph in profileSetFunction.Functions)
                {
                    DisplayGraph(graph, maxDistance, startingPoint);
                }
            }
            else
            {
                ProfileFunction profileFunction = Function as ProfileFunction;
                if (profileFunction != null && profileFunction.Function != null)
                {
                    ClearData();
                    SpeedDistancePoint startingPoint = DisplayPreviousData(maxDistance);
                    DisplayGraph(profileFunction.Function, maxDistance, startingPoint);
                }
            }
        }
Example #7
0
 public EfsProfileFunctionGraph(GraphVisualizer graphVisualizer, ProfileFunction function, string functionName)
     : base(graphVisualizer, function)
 {
     InitializeProperties(SeriesChartType.Line, functionName, functionName);
 }
 protected bool Equals(MaterialSubsurfaceScatteringFeature other)
 {
     return(ScatteringWidth.Equals(other.ScatteringWidth) && Translucency.Equals(other.Translucency) && TranslucencyMap.Equals(other.TranslucencyMap) && ProfileFunction.Equals(other.ProfileFunction) && KernelFunction.Equals(other.KernelFunction));
 }
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="graphVisualizer"></param>
 /// <param name="function"></param>
 public ProfileFunctionGraph(GraphVisualizer graphVisualizer, ProfileFunction function)
     : base(graphVisualizer)
 {
     Function = function;
 }