GLSL-подобный векторный доступ в C - PullRequest
0 голосов
/ 30 мая 2018

В GLSL вы можете получить доступ к компонентам вектора, используя как имена, так и индексы, например.если у вас есть vec2 foo, то вы можете делать такие вещи, как foo.x и foo[0].

Возможно ли воспроизвести этот интерфейс в C?

В настоящее время у меня есть следующее:

typedef union{
  struct{  float x1, x2;  };
  struct{  float  x,  y;  };
  float d[2];
}vec2;

, который позволяет мне получить доступ к компонентам vec2 foo, таким как foo.x и foo.d[0].

Можно ли обойтись без этого неприятного .d, прибывающего вfoo[0]?(Каким-либо образом, возможно, используя какой-то (еще более противный) трюк с макросом?)

...