#include "Plane.h" Plane::Plane(const glm::mat4& transform, int axis, int direction) { // -x, +x, -y, +y, -z, +z glm::vec3 worldNormal = glm::vec3(0.0f); worldNormal[axis] = 1.0f; worldNormal *= direction; glm::vec4 origin = transform * glm::vec4(( worldNormal * 1.5f ), 1.0f); glm::vec3 worldU = glm::vec3(worldNormal[1], worldNormal[2], worldNormal[0]); glm::vec3 worldV = glm::vec3(worldNormal[2], worldNormal[0], worldNormal[1]); glm::vec3 planeNormal = transform * glm::vec4(worldNormal, 0.0f); glm::vec3 planeU = transform * glm::vec4(worldU, 0.0f); glm::vec3 planeV = transform * glm::vec4(worldV, 0.0f); _transform = glm::mat4(glm::vec4(planeU, 0.0f), glm::vec4(planeV, 0.0f), glm::vec4(planeNormal, 0.0f), origin); }