wyRect wyNode::getBoundingBoxRelativeToParent() { wyRect r = { 0, 0, m_width, m_height }; updateNodeToParentTransform(); return wyaTransformRect(m_transformMatrix, r); }
void wyNode::updateParentToNodeTransform() { if(m_inverseDirty) { updateNodeToParentTransform(); m_inverseMatrix = m_transformMatrix; wyaInverse(&m_inverseMatrix); m_inverseDirty = false; } }
wyAffineTransform wySpriteEx::getNodeToBatchNodeTransform() { updateNodeToParentTransform(); wyAffineTransform t = m_transformMatrix; for(wyNode* p = m_parent; p != m_batchNode; p = p->getParent()) { wyAffineTransform tp = p->getTransformMatrix(); wyaConcat(&t, &tp); } return t; }
wyAffineTransform wyNode::getNodeToWorldTransform() { updateNodeToParentTransform(); wyAffineTransform t = m_transformMatrix; for(wyNode* p = m_parent; p != NULL; p = p->m_parent) { p->updateNodeToParentTransform(); wyaConact(&t, &(p->m_transformMatrix)); } return t; }
wyPoint wyNode::nodeToParentSpace(wyPoint p) { updateNodeToParentTransform(); return wyaTransformPoint(m_transformMatrix, p); }
wyAffineTransform wyNode::getTransformMatrix() { updateNodeToParentTransform(); return m_transformMatrix; }