Examples of HitPoint


Examples of org.kalimullin.fsraytracer.ray.HitPoint

    @Test
    public void testRayTraceHit() {
        // test data has only one object
        SceneObject pyramid = (SceneObject) scene.getSceneObjects().toArray()[0];
        HitData expectedHitData = new HitData(new HitPoint(new Point(-0.5, -0.5, 0), Math.sqrt(9 * 3)), pyramid);
        assertEquals(expectedHitData, scene.traceRay(new Ray(new Point(-3.5, -3.5, -3), new Point(1, 1, 1))));
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

    }

    @Test
    public void testHitPoints() {
        Ray xyRay = new Ray(new Point(3, 3, -5), new Point(0, 0, 2));
        assertEquals(new HitPoint(new Point(3,3,0), 5), GeometryTestData.PYRAMID.getHitPoint(xyRay));
        Ray yzRay = new Ray(new Point(-10, 3, 3), new Point(2, 0, 0));
        assertEquals(new HitPoint(new Point(0, 3, 3), 10), GeometryTestData.PYRAMID.getHitPoint(yzRay));
        Ray xzRay = new Ray(new Point(3, -5, 3), new Point(0, 2, 0));
        assertEquals(new HitPoint(new Point(3, 0, 3), 5), GeometryTestData.PYRAMID.getHitPoint(xzRay));
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

        // coeff * QdotD = coeff * (O-V0)x(V1-V0)dotD
        double v = coefficient * (ray.getOriginPoint().getSubtraction(vList.get(0))
                .getCrossProduct(vList.get(1).getSubtraction(vList.get(0)))).getDotProduct(ray.getDirectionVector());
        if (u >= 0 && v >= 0 && u + v <= 1) {
            Point hitPoint = ray.getOriginPoint().getAddition(ray.getDirectionVector().getMultiplication(t));
            return new HitPoint(hitPoint, ray.getOriginPoint().getDistanceTo(hitPoint));
        }
        return HitPoint.MISSED;
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

     * Tracing ray and returning it's hit data.
     */
    public HitData traceRay(Ray ray) {
        HitData hitData = HitData.MISS;
        for (SceneObject sceneObject: getSceneObjects()) {
            HitPoint hitPoint = sceneObject.getHitPoint(ray);
            if (!HitPoint.MISSED.equals(hitPoint) && hitData.getHitPoint().compareTo(hitPoint) == 1)
                hitData = new HitData(hitPoint, sceneObject);
        }
        return hitData;
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

    }

    @Test
    public void testHitOneFace() {
        Ray hitRay = new Ray(new Point(5,5,3), new Point(-1,-1,-1));
        assertEquals(new HitPoint(new Point(2, 2, 0), Math.sqrt(27)), polygonOneFace.getHitPoint(hitRay));
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

    }

    @Test
    public void testHitTwoFaces() {
        Ray hitRay = new Ray(new Point(5,5,3), new Point(1,1,-1));
        assertEquals(new HitPoint(new Point(8, 8, 0), Math.sqrt(27)), polygonTwoFaces.getHitPoint(hitRay));
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

    }

    @Test
    public void testHit() {
        Ray hitRay = new Ray(new Point(5,5,3), new Point(-1,-1,-1));
        assertEquals(new HitPoint(new Point(2, 2, 0), Math.sqrt(27)),
                GeometryTestData.XY_PYRAMID_POLYGON_FACE.getHitPoint(hitRay));
    }
View Full Code Here

Examples of org.kalimullin.fsraytracer.ray.HitPoint

    }

    @Test
    public void testHitFromAnotherSide() {
        Ray hitRay = new Ray(new Point(5,5,-3), new Point(-1,-1,1));
        assertEquals(new HitPoint(new Point(2, 2, 0), Math.sqrt(27)),
                GeometryTestData.XY_PYRAMID_POLYGON_FACE.getHitPoint(hitRay));
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.