public void DrawVector( Point3D point, Vector3D vector, double length = 0.5, Color?color = null ) { if (MathHelpers.AlmostEqual(vector.Length, 0, double.Epsilon)) { return; } vector.Normalize(); var target = point + length * vector; var vectorColor = color ?? Colors.Red; FinishChain(); Connect(point, vectorColor); Connect(target, vectorColor); FinishChain(); }
protected int?FindCorner( double u, double v, double threshold = double.Epsilon ) { var uEquals0 = MathHelpers.AlmostEqual(u, 0, threshold); var uEquals1 = MathHelpers.AlmostEqual(u, 1, threshold); var vEquals0 = MathHelpers.AlmostEqual(v, 0, threshold); var vEquals1 = MathHelpers.AlmostEqual(v, 1, threshold); if (uEquals0) { if (vEquals0) { return(0); } if (vEquals1) { return(1); } } if (uEquals1) { if (vEquals0) { return(2); } if (vEquals1) { return(3); } } return(null); }