Итак, у меня есть структура, которую мне нужно создать. По сути, его цель состоит в том, что массив этих структур будет возвращен из множества функций. Все эти структуры будут собраны (возможно, несколько сотен), и тогда мне понадобится норма для наименьшего из них.
Итак, чтобы подвести итог, у меня есть ситуация, когда таких структур будет много, однако нормальное значение потребуется только для одного из них.
Как таковой, я пытался создать структуру, которая отражает эту идею. Таким образом, выбранная структура может содержать нормальный метод или метод для ее вычисления. Поэтому я разработал следующую структуру:
struct result {
float t;
bool calculated; // Tells whether to use result.normal.norm or result.norm.calculate()
union normal {
float2 norm;
float2 (*calculate)();
};
};
Это правильный способ выразить эту идею?
* Для примера некоторые из этих нормальных вычислений могут включать в себя некоторые вычисления, такие как триг, чтобы вычислить нормаль на сложной криволинейной поверхности. Мы хотели бы рассчитать это только в случае крайней необходимости.