MCPcopy Create free account
hub / github.com/defold/defold / LuaSetRotation

Function LuaSetRotation

engine/gui/src/gui_script.cpp:4340–4374  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4338 }
4339
4340 int LuaSetRotation(lua_State* L)
4341 {
4342 HNode hnode;
4343 InternalNode* n = LuaCheckNodeInternal(L, 1, &hnode);
4344 if (n->m_Node.m_IsBone) {
4345 return 0;
4346 }
4347 Quat r;
4348 Vector4 v;
4349 Vector3* v3;
4350 Vector4* v4;
4351 if ((v3 = dmScript::ToVector3(L, 2)))
4352 {
4353 Scene* scene = GetScene(L);
4354 Vector4 original = dmGui::GetNodeProperty(scene, hnode, PROPERTY_EULER);
4355 v = Vector4(*v3, original.getW());
4356 r = dmVMath::EulerToQuat(v.getXYZ());
4357 }
4358 else if ((v4 = dmScript::ToVector4(L, 2)))
4359 {
4360 v = *v4;
4361 r = dmVMath::EulerToQuat(v.getXYZ());
4362 }
4363 else
4364 {
4365 Quat* q = dmScript::CheckQuat(L, 2);
4366 v = Vector4(dmVMath::QuatToEuler(q->getX(), q->getY(), q->getZ(), q->getW()));
4367 r = *q;
4368 }
4369
4370 n->m_Node.m_Properties[PROPERTY_ROTATION] = Vector4(r);
4371 n->m_Node.m_Properties[PROPERTY_EULER] = v;
4372 n->m_Node.m_DirtyLocal = 1;
4373 return 0;
4374 }
4375
4376
4377 // Euler

Callers

nothing calls this directly

Calls 14

LuaCheckNodeInternalFunction · 0.85
ToVector3Function · 0.85
GetSceneFunction · 0.85
ToVector4Function · 0.85
CheckQuatFunction · 0.85
GetNodePropertyFunction · 0.70
Vector4Class · 0.50
EulerToQuatFunction · 0.50
QuatToEulerFunction · 0.50
getWMethod · 0.45
getXYZMethod · 0.45
getXMethod · 0.45

Tested by

no test coverage detected