//---------------------------------------------------------------------------------------- // Check ok to move //---------------------------------------------------------------------------------------- void Camera::CheckCamera() { if (MoveFBOK()) MoveFB(); if (MoveLROK()) MoveLR(); if (MoveUDOK()) MoveUD(); if (RotateLROK()) RotateLR(); if (LookUDOK()) LookUD(); }
// 트리의 균형을 잡는다. BTreeNode * Rebalance(BTreeNode ** pRoot) { int hDiff = GetHeightDiff(*pRoot); if(hDiff > 1) // 왼쪽 서브 트리 방향으로 높이가 2 이상 크다면 { if(GetHeightDiff(GetLeftSubTree(*pRoot)) > 0) *pRoot = RotateLL(*pRoot); else *pRoot = RotateLR(*pRoot); } if(hDiff < -1) // 오른쪽 서브 트리 방향으로 2 이상 크다면 { if(GetHeightDiff(GetRightSubTree(*pRoot)) < 0) *pRoot = RotateRR(*pRoot); else *pRoot = RotateRL(*pRoot); } return *pRoot; }