Пример #1
0
        public void TestRefractionAngleFromVectors()
        {
            Scientrace.UnitVector direction_incoming_trace = new Scientrace.UnitVector(1,0,1);
            Scientrace.Location loc = new Scientrace.Location(0,0,0);
            Scientrace.UnitVector surface_normal = new Scientrace.UnitVector(0,0,1);

            Scientrace.Trace aTrace =  DummyObjects.DummyTrace(600E-9);
                aTrace.traceline.direction = direction_incoming_trace;

            double refindex_from = 1;
            double refindex_to = 1.5;
            Scientrace.DielectricSurfaceInteraction fsi = new Scientrace.DielectricSurfaceInteraction(
                                                        aTrace, loc,
                                                        surface_normal, refindex_from, refindex_to, null);
            //Assert.AreEqual(fsi.dir_in.ToString(), fsi.surface_normal);
            Assert.AreEqual(fsi.dir_s.angleWith(fsi.dir_ip), Math.PI/2);
            Assert.AreEqual(Math.Abs(fsi.amp_ip), Math.Abs(fsi.amp_is), 1E-10);
        }
Пример #2
0
        public void TestRefractionAngleFromVectors()
        {
            Scientrace.UnitVector direction_incoming_trace = new Scientrace.UnitVector(1, 0, 1);
            Scientrace.Location   loc            = new Scientrace.Location(0, 0, 0);
            Scientrace.UnitVector surface_normal = new Scientrace.UnitVector(0, 0, 1);

            Scientrace.Trace aTrace = DummyObjects.DummyTrace(600E-9);
            aTrace.traceline.direction = direction_incoming_trace;

            double refindex_from = 1;
            double refindex_to   = 1.5;

            Scientrace.DielectricSurfaceInteraction fsi = new Scientrace.DielectricSurfaceInteraction(
                aTrace, loc,
                surface_normal, refindex_from, refindex_to, null);
            //Assert.AreEqual(fsi.dir_in.ToString(), fsi.surface_normal);
            Assert.AreEqual(fsi.dir_s.angleWith(fsi.dir_ip), Math.PI / 2);
            Assert.AreEqual(Math.Abs(fsi.amp_ip), Math.Abs(fsi.amp_is), 1E-10);
        }