Files
envi-code/SourceCode/Code2026/tg_shs/shs_kernal/TArchPerBlockData.cpp
T
2026-09-28 15:28:50 +08:00

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();
}