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);
	}
}
Beispiel #3
0
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;
}