CCPoint CCNode::convertToNodeSpace(CCPoint worldPoint) { CCPoint ret; if(CC_CONTENT_SCALE_FACTOR() == 1) { ret = CCPointApplyAffineTransform(worldPoint, worldToNodeTransform()); } else { ret = ccpMult(worldPoint, CC_CONTENT_SCALE_FACTOR()); ret = CCPointApplyAffineTransform(ret, worldToNodeTransform()); ret = ccpMult(ret, 1/CC_CONTENT_SCALE_FACTOR()); } return ret; }
KKPoint convertToNodeSpace(const KKPoint &worldPoint) { kmMat4 *transform = worldToNodeTransform(); return KKPoint((float)((double)transform->mat[0]*worldPoint.x+(double)transform->mat[4]*worldPoint.y+transform->mat[12]), (float)((double)transform->mat[1]*worldPoint.x+(double)transform->mat[5]*worldPoint.y+transform->mat[13])); //TODO cocos2d-x // kmVec3 vec3 = {worldPoint, worldPoint, 0}; // kmVec3 ret; // kmVec3Transform(&ret, &vec3, transform); // return KKPoint(ret.x, ret.y); }
void CAWebView::update(float dt) { do { CC_BREAK_IF(!CAApplication::getApplication()->isDrawing()); CCPoint point = this->convertToWorldSpace(m_obPoint); CCSize contentSize = CCSizeApplyAffineTransform(m_obContentSize, worldToNodeTransform()); CC_BREAK_IF(m_obLastPoint.equals(point) && m_obLastContentSize.equals(contentSize)); m_obLastPoint = point; m_obLastContentSize = contentSize; CCSize size = getBounds().size; m_pLoadingView->setFrame(CCRect(size.width*0.5f, size.height*0.3f, size.width*0.2f, size.height*0.2f)); _impl->update(dt); } while (0); }
CCPoint CCNode::convertToNodeSpace(const CCPoint& worldPoint) { return worldToNodeTransform().apply(worldPoint); }