95 lines
2.3 KiB
C++
95 lines
2.3 KiB
C++
//-------------------------------------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TArchPerBlockData Àà
|
|
// = Version : ver2.0
|
|
// = Author : wlw
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: TArchPerBlockData ¶¨Òå
|
|
// = Maintainers:
|
|
//
|
|
//-------------------------------------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "TArchPerBlockData.h"
|
|
#include "TDbColumn.h"
|
|
#include "TDPtrList.h"
|
|
#include "CFindShortWallDlg.h"
|
|
#include "TSearchSpaceFromWall.h"
|
|
#include "TSearchException.h"
|
|
#include "TDupWallException.h"
|
|
|
|
TArchPerBlockData::TArchPerBlockData(AcDbObjectId idBlock)
|
|
: m_idBlock(idBlock)
|
|
{
|
|
|
|
}
|
|
|
|
AcDbObjectId TArchPerBlockData::GetBlockId() const
|
|
{
|
|
return m_idBlock;
|
|
}
|
|
|
|
long TArchPerBlockData::GetUpdateScale() const
|
|
{
|
|
return m_lstCornersToBeUpdated.Length();
|
|
}
|
|
|
|
void TArchPerBlockData::Reset()
|
|
{
|
|
m_lstCornersToBeUpdated.Reset();
|
|
m_lstColumnsChanged.Reset();
|
|
}
|
|
|
|
bool TArchPerBlockData::operator == (const TArchPerBlockData&d) const
|
|
{
|
|
return m_idBlock == d.GetBlockId();
|
|
}
|
|
|
|
bool TArchPerBlockData::operator!=(const TArchPerBlockData&d) const
|
|
{
|
|
return !((*this) == d);
|
|
}
|
|
|
|
bool TArchPerBlockData::operator >(const TArchPerBlockData&d) const
|
|
{
|
|
return m_idBlock>d.GetBlockId();
|
|
}
|
|
|
|
bool TArchPerBlockData::operator <(const TArchPerBlockData&d) const
|
|
{
|
|
return d > (*this);
|
|
}
|
|
|
|
void TArchPerBlockData::Initialize()
|
|
{
|
|
}
|
|
|
|
void TArchPerBlockData::UpdateExtend()
|
|
{
|
|
}
|
|
|
|
void TArchPerBlockData::AddWallCorners(const TDbWall *pWall)
|
|
{
|
|
m_lstCornersToBeUpdated.NewAppend(pWall->StartPoint());
|
|
m_lstCornersToBeUpdated.NewAppend(pWall->EndPoint());
|
|
if (pWall->m_ptOldStart != pWall->m_ptOldEnd)
|
|
{
|
|
m_lstCornersToBeUpdated.NewAppend(pWall->m_ptOldStart);
|
|
m_lstCornersToBeUpdated.NewAppend(pWall->m_ptOldEnd);
|
|
}
|
|
}
|
|
|
|
void TArchPerBlockData::AddChangedColumn(const TDbColumn *pColumn)
|
|
{
|
|
if (!m_lstColumnsChanged.FindNode(&pColumn->m_ptLocation, TColumnData::CompareByLocForFind))
|
|
{
|
|
m_lstColumnsChanged.Append(new TColumnData(*pColumn));
|
|
}
|
|
}
|
|
|
|
void TArchPerBlockData::UpdateCorners(LPVOID pReserve)
|
|
{
|
|
::ModifyWallAtCorner(m_lstCornersToBeUpdated, m_lstColumnsChanged,m_idBlock,pReserve); //add by xlc on 100531 ÌáËÙÓÅ»¯
|
|
m_lstCornersToBeUpdated.Reset();
|
|
m_lstColumnsChanged.Reset();
|
|
}
|