char clsQuadTree::CheckInChildRect(RECT rInner) { if(CheckRectInRect(rInner,GetChildRect(m_Screen,TR_TL))) return TR_TL; if(CheckRectInRect(rInner,GetChildRect(m_Screen,TR_TR))) return TR_TR; if(CheckRectInRect(rInner,GetChildRect(m_Screen,TR_BL))) return TR_BL; if(CheckRectInRect(rInner,GetChildRect(m_Screen,TR_BR))) return TR_BR; else return TR_NONE; }
bool clsQuadTree::Add(clsObject* _newObj, bool isStatic) { if(_newObj==NULL) return false; char CheckTypeRect = CheckInChildRect(_newObj->m_Rect); if(CheckTypeRect==TR_NONE||m_level >= MAX_LEVEL) //Khong the chua trong HCN con { if (isStatic==true) l_StaticObj.push_back(_newObj); else l_DynamicObj.push_back(_newObj); _newObj->m_oldNode = this; return true; } else { RECT Temp; clsQuadTree** qt_Child = GetNodeFromChildRect(CheckTypeRect); if(*qt_Child==NULL) { Temp=GetChildRect(m_Screen,CheckTypeRect); (*qt_Child)=new clsQuadTree(Temp.left,Temp.top,Temp.right-Temp.left, m_level+1); //(*qt_Child)=new clsQuadTree(Temp.left,Temp.top,Temp.right-Temp.left, Temp.bottom - Temp.top); //(*qt_Child)=new clsQuadTree(Temp.left,Temp.top,Temp.right-Temp.left, Temp.bottom - Temp.top, m_level+1); } (*qt_Child)->Add(_newObj,isStatic); } }
BOOL CViewPanel::OnInitDialog() { CDialog::OnInitDialog(); CRect modelRect = GetChildRect(IDC_MODEL_LISTBOX); m_pModelFileListBox = new CModelFielListBox(); m_pModelFileListBox->Create(CModelFielListBox::IDD, this); m_pModelFileListBox->MoveWindow(modelRect); m_pModelFileListBox->ShowWindow(SW_SHOW); CRect aniRect = GetChildRect(IDC_ANI_LISTBOX); m_pAniFileListBox = new CAniFileListBox(); m_pAniFileListBox->Create(CAniFileListBox::IDD, this); m_pAniFileListBox->MoveWindow(aniRect); m_pAniFileListBox->ShowWindow(SW_SHOW); return TRUE; }