public void SampleLrtf() { ComplexLens lens = ComplexLens.CreateDoubleGaussLens(Materials.Fixed.AIR, 4.0); LensRayTransferFunction lrtf = new LensRayTransferFunction(lens); var defaultParameters = new LensRayTransferFunction.Parameters(0.5, 0.5, 1.0, 0.5); var table = lrtf.SampleLrtf1D(defaultParameters, LensRayTransferFunction.VariableParameter.DirectionTheta, 101); //int i = 0; //foreach (LensRayTransferFunction.Parameters rayParams in table) //{ // Console.WriteLine("[{0}]: {1}", i, rayParams); // if (rayParams != null) // { // //Console.WriteLine(" {0}", lens.ConvertParametersToFrontSurfaceRay(rayParams)); // } // i++; //} Console.WriteLine("{{ {0} }}", string.Join(",\n", table.Select((item) => (item != null) ? item.ToString() : "Null").ToArray())); }
private void Recompute() { if (!initialized) { return; } double positionTheta = (double)positionThetaNumeric.Value; double positionPhi = (double)positionPhiNumeric.Value; double directionTheta = (double)directionThetaNumeric.Value; double directionPhi = (double)directionPhiNumeric.Value; var inputRay = new LensRayTransferFunction.Parameters( positionTheta, positionPhi, directionTheta, directionPhi); var variableParam = (LensRayTransferFunction.VariableParameter) variableParameterComboBox.SelectedValue; outgoingRays = lrtf.SampleLrtf1D(inputRay, variableParam, sampleCount); InvalidatePanels(); }