Я не могу предложить решение, но могу, возможно, указать вам правильное направление.
То, что вам нужно, - это степень 2D-проекции куба на плоскость вида. Затем вы можете просто проверить минимальное и максимальное значения X & Y, чтобы увидеть, виден ли весь куб.
Добавление допускового коэффициента в степень позволит устранить любые ошибки округления.
РЕДАКТИРОВАТЬ: я только что сделал поиск Google для "2D проекции WPF", и эта ссылка появилась. Похоже, это адрес, что вы хотите.
ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Я скопировал соответствующий раздел кода по приведенной выше ссылке.
public static Rect Get2DBoundingBox(ModelVisual3D mv3d)
{
bool bOK;
Matrix3D m = MathUtils.TryWorldToViewportTransform(vpv, out bOK);
bool bFirst = true;
Rect r = new Rect();
if (mv3d.Content is GeometryModel3D)
{
GeometryModel3D gm3d = (GeometryModel3D) mv3d.Content;
if (gm3d.Geometry is MeshGeometry3D)
{
MeshGeometry3D mg3d = (MeshGeometry3D)gm3d.Geometry;
foreach (Point3D p3d in mg3d.Positions)
{
Point3D pb = m.Transform(p3d);
Point p2d = new Point(pb.X, pb.Y);
if (bFirst)
{
r = new Rect(p2d, new Size(1, 1));
bFirst = false;
}
else
{
r.Union(p2d);
}
}
}
}
return r;
}