Ich habe eine Struktur, die einen Scheitelpunkt darstellt. Es hat x, y und z Felder sowie mehrere andere. Vor kurzem kam ich zu dem Schluss, dass ich für bestimmte Funktionen auf die Koordinaten des Scheitelpunkts als Array zugreifen muss. Ich wollte den Code nicht mit temporären Variablen "verschmutzen" oder alle Stellen ändern, die wie folgt aussehen v.y
hierzu v.coord[1]
was weder schön noch elegant ist. Also habe ich über eine Vereinigung nachgedacht. Etwas wie dies sollte funktionieren:
struct {
float x,y,z;
} Point;
struct {
union {
float coord[3];
Point p;
};
} Vertex;
Das ist gut, aber nicht perfekt. Die Punktklasse hat keinen Sinn, da zu sein. Ich möchte in der Lage sein, die y-Koordinate einfach durch Eingabe von v.y
(und nicht v.p.y
).
Können Sie einen Hack vorschlagen, um dieses Problem zu lösen (oder mir sagen, dass dies nicht möglich ist)?