Turn
Turns an entity by the specified euler rotation in local or global space. This function is more accurate than simply adding units to the rotation axes and will avoid problems with Gimbal lock.
Syntax
- void Turn(float pitch, float yaw, float roll, bool global=false);
Parameters
- pitch: the X component of the rotation to apply..
- yaw: the Y component of the rotation to apply.
- roll: the Z component of the rotation to apply.
- global: if set to true the rotation will be applied in global space, otherwise it will be applied in local space.
Example
#include "Leadwerks.h"
using namespace Leadwerks;
Model* model = NULL;
int counter;
void UpdateMatrixHook(Entity* entity)
{
counter++;
}
int main(int argc, const char *argv[])
{
Leadwerks::Window* window = Leadwerks::Window::Create();
Context* context = Context::Create(window);
World* world = World::Create();
Camera* camera = Camera::Create();
camera->Move(0, 1, -3);
Light* light = DirectionalLight::Create();
light->SetRotation(35, 35, 0);
//Create a model
model = Model::Box();
model->SetColor(0.0, 0.0, 1.0);
model->SetRotation(0, -90, 0);
while (true)
{
if (window->Closed() || window->KeyDown(Key::Escape)) return false;
model->Turn(0, Leadwerks::Time::GetSpeed()*0.5, 0);
model->Move(0, 0, 0.1);
Leadwerks::Time::Update();
world->Update();
world->Render();
context->Sync();
}
return 0;
}