Переделан проект под шаблон M-V-VM.
Создана View + забытые в прошлом коммите файлы
Завершение работы над формой + забытый gradle файл для модели
Добавлен ViewModel
Проверка корректности ввода
Исправление: в view и viewModel добавлена компонента вектора Z
Позитивный функциональный сценарий (пересечение с плоскостью есть)
Сценарарий с отстутствием пересечения
Рефакторинг: названия p1 и p2 для прямой заменены на point и dir, так как прямая задаётся не точнками, а точкой и направляющей
Биндинг view и viewModel.
Рефакторинг ViewModel: публичные поля сделаны приватными для однообразного доступа через сеттеры как в автоматически сгенерированном коде в View
Рефакторинг: правка мелочей форматирования
Рефакторинг класса view. Конструктор принимает ViewModel.Метод isModified удалён как неиспользуемый.
Заменяем устаревшее plain на plane
Переименовываем IntersectionComputer на IntersectionDetector
Корректируем названия тестов
Выводим сообщение о некорректном вводе
Переименовываем методы обмена данными View и ViewModel
Очищаем результат при вводе новых значений
Рефакторинг: переименование plain -> plane, и методы bind и backBind