void SceneObject::getLightSource1(SceneObjects& sceneObjectColl, vec4& from, vec4& to) { from.set(0); to.set(0); // let them update model matrix, we'll take translation as mesh centre getRoot(sceneObjectColl).update(0, mat4(), mat4()); // these are mark meshes, not for display, but for light source SceneObjects::iterator _from = sceneObjectColl.find("light1/from"), _to = sceneObjectColl.find("light1/to"), light1 = sceneObjectColl.find("light1"); if(sceneObjectColl.end() == _from || sceneObjectColl.end() == _to || sceneObjectColl.end() == light1) return; mcemaths_quatcpy(from, &_from->second.m_model[12]); mcemaths_quatcpy(to, &_to->second.m_model[12]); from.w = to.w = 0; light1->second.m_children.clear(); sceneObjectColl.erase(_from); sceneObjectColl.erase(_to); }
void ToIntColour(const FColour& floatColour, vec4<I32>& colourOut) { colourOut.set(FLOAT_TO_SCHAR_SNORM(floatColour.r), FLOAT_TO_SCHAR_SNORM(floatColour.g), FLOAT_TO_SCHAR_SNORM(floatColour.b), FLOAT_TO_SCHAR_SNORM(floatColour.a)); }