Example #1
0
    public static ExpVector DirToPlane(this IPlane plane, ExpVector dir)
    {
        if (plane == null)
        {
            return(dir);
        }
        ExpVector result = new ExpVector(0, 0, 0);

        result.x = ExpVector.Dot(dir, plane.u);
        result.y = ExpVector.Dot(dir, plane.v);
        result.z = ExpVector.Dot(dir, plane.n);
        return(result);
    }
Example #2
0
    public void GenerateEquations(EquationSystem sys)
    {
        sys.AddParameters(parameters);

        sys.AddEquation(u.Magnitude() - 1.0);
        sys.AddEquation(v.Magnitude() - 1.0);

        var cross = ExpVector.Cross(u, v);
        var dot   = ExpVector.Dot(u, v);

        sys.AddEquation(Exp.Atan2(cross.Magnitude(), dot) - Math.PI / 2);
        sys.AddEquation(n - ExpVector.Cross(u, v));
    }
Example #3
0
 public static Exp angle3d(ExpVector d0, ExpVector d1)
 {
     return(Exp.Atan2(ExpVector.Cross(d0, d1).Magnitude(), ExpVector.Dot(d0, d1)));
 }