import ../camera , glm #[ Currently, shapes can either be ortho, or perspective. if they are ortho, we merely push the MVP. so with actions, we just update the mvp. But what about the camera??? ]# #[ proc rotate2*[T]( t: T , x: float32 , y: float32 , z: float32 = 0.0 ) = case t.camKind of Camera_Kind.Perspective: t.camPersp.rotation += vec3f(x,y,z) t.camPersp.updateViewMatrix t.ubo.proj = t.camPersp.matrices.persp t.ubo.view = t.camPersp.matrices.view t.ubo.mvp = t.ubo.proj * t.ubo.view * t.ubo.model t.camPersp.rotation += vec3f(x,y,z) t.camPersp.updateViewMatrix t.changed = true of Camera_Kind.Ortho: discard ]# proc translate*[T]( t: T , dt: Vec3[float32] ) = t.camera.pos += dt t.camera.updated = true t.camera.updateViewMatrix() t.changed = true