Поздно, конечно, но замена трансформатора всё решила. Транс — большой «бублик» с Караваевых. Полярность вторичных обмоток (их там две штуки) мерил тестером: тестер в режиме ~200 на концы, свободные концы замыкаю — если верно, на тестере 30, если нет — около 0.
Ещё раз. Если объект подлежит перемещению или копированию — оберни его во что-то с конструктором по умолчанию. Это позволит завести массив.
Если не подлежит — используй умные указатели. Если unique_ptr тоже запрещён — пиши сам, только операцию «присвоить» уничтожьб возможны трудноуловимые ошибки.
Потому что ориентированная площадь — не число. Представь себе: в космосе, где нет верха и низа, из одной точки торчат два вектора. И мы не можем сказать, что один левее, а другой правее.
Мы поступаем так: проводим третий вектор и говорим: если смотреть от него, первый будет левее, второй правее.
> Ориентированная площадь
С какой стороны смотреть на ориентацию? Посмотришь на пару векторов с другой стороны — и левый станет правым, а правый левым.
В трёхмерном пространстве нет косого произведения.
Есть смешанное произведение трёх векторов, которое ведёт себя в точности как косое в 2D, но является ориентированным объёмом косого параллелепипеда.
И есть векторное произведение двух векторов, которое является ориентированной площадью, но это вектор — нормаль к нашему параллелограмму.
Грубо говоря, косое произведение в 2D — это Z-координата векторного произведения векторов (x1,y1,0) и (x2,y2,0). X и Y у этого векторного произведения — нули.