Package toxi.test.geom

Source Code of toxi.test.geom.Line3DTest

package toxi.test.geom;

import java.util.HashMap;

import junit.framework.TestCase;
import toxi.geom.Line3D;
import toxi.geom.Vec3D;
import toxi.geom.mesh.WEVertex;
import toxi.geom.mesh.WingedEdge;
import toxi.math.MathUtils;

public class Line3DTest extends TestCase {

    public void testClosestPoint() {
        Vec3D a = new Vec3D();
        Vec3D b = new Vec3D(100, 0, 0);
        Vec3D c = new Vec3D(50, 50, 0);
        Line3D line = new Line3D(a, b);
        Vec3D isec = line.closestPointTo(c);
        assertEquals(MathUtils.abs(isec.x - c.x) < 0.5, true);
        c = new Vec3D(-50, -50, 0);
        isec = line.closestPointTo(c);
        assertEquals(isec.equals(a), true);
    }

    public void testHashing() {
        Line3D l1 = new Line3D(new Vec3D(100, 420, -50), new Vec3D(-888, 230,
                2999));
        Line3D l2 = new Line3D(new Vec3D(-888, 230, 2999), new Vec3D(100, 420,
                -50));
        assertTrue(l1.equals(l2));
        assertEquals(l1.hashCode(), l2.hashCode());
        l2.a = new Vec3D();
        assertFalse(l1.equals(l2));
        l1.b.clear();
        assertTrue(l1.equals(l2));
        HashMap<Line3D, WingedEdge> map = new HashMap<Line3D, WingedEdge>();
        map.put(l1, new WingedEdge(new WEVertex(l1.a, 0),
                new WEVertex(l1.b, 1), null, 0));
        WingedEdge e = map.get(l1);
        assertEquals(l1, e);
    }
}
TOP

Related Classes of toxi.test.geom.Line3DTest

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.