private Vector2d getBisector(Point2d p1, Point2d p2) { return Vector2dUtil.orthogonalRight(Vector2dUtil.fromTo(p1, p2)); }
private Vector3d calcFaceNormal(LineSegment2d edge, double heightFactor) { Vector2d edgeVector = Vector2dUtil.fromTo(edge.getBegin(), edge.getEnd()); edgeVector.normalize(); Vector2d edgeOrthogonal = Vector2dUtil.orthogonalLeft(edgeVector); Vector3d v1 = new Vector3d(edgeVector.x, 0, -edgeVector.y); Vector3d v2 = new Vector3d(edgeOrthogonal.x, heightFactor, -edgeOrthogonal.y); v1.cross(v1, v2); v1.normalize(); return v1; }