這是我的代碼無操作「*」這些操作數
glm::vec3 v(4, -6, 7);
glm::vec3 twiceV = 2 * v;
我已經包括GLM穩定和實驗GLM擴展匹配。 爲什麼我不能使用int * vec
?
這是我的代碼無操作「*」這些操作數
glm::vec3 v(4, -6, 7);
glm::vec3 twiceV = 2 * v;
我已經包括GLM穩定和實驗GLM擴展匹配。 爲什麼我不能使用int * vec
?
2
是一個整數,而glm::vec3
的元素是浮點數。試試這個:
glm::vec3 twiceV = 2.0f * v;
我也將通過浮點值構造函數(4.0f
),只是爲了明確你正在處理的浮動。
或者,您也可以使用一個整數向量glm::ivec3
:
glm::ivec3 v(4, -6, 7);
glm::ivec3 twiceV = 2 * v;
當然,整向量僅保留整數,你想要什麼這可能不是。
非常感謝! – Morovo
這是因爲形式
glm::vec3 operator*(int, const glm::vec3&)
任何機會是否v * 2
工作沒有全局重載操作? (A成員函數操作過載就足夠了點。)
或者甚至2f * v
,然後這將需要重載*
操作者的第一個參數是一個float
?
2f * v的作品,謝謝 – Morovo
是否有一個免費的函數提供支持glm 2 * v?嘗試v * 2,所以你實際上在vec3上調用operator *。 – carthurs
'基礎知識'標籤與此有什麼關係? – molbdnilo