| | |
| | | |
| | | CGlass::~CGlass() |
| | | { |
| | | |
| | | } |
| | | |
| | | void CGlass::reset() |
| | | { |
| | | CPath* pPath = m_pPath; |
| | | while (pPath != nullptr) { |
| | | CPath* pTemp = pPath->getNext(); |
| | |
| | | } |
| | | m_pPath = nullptr; |
| | | |
| | | if (m_pBuddy != nullptr && m_type == MaterialsType::G1) { |
| | | if (m_pBuddy != nullptr) { |
| | | m_pBuddy->release(); |
| | | } |
| | | } |
| | |
| | | return m_strID; |
| | | } |
| | | |
| | | CPath* CGlass::getPathWithSiteID(unsigned int nSiteId) |
| | | { |
| | | CPath* pPath = m_pPath; |
| | | while (pPath != nullptr) { |
| | | if (nSiteId == pPath->getSiteID()) { |
| | | return pPath; |
| | | } |
| | | pPath = pPath->getNext(); |
| | | } |
| | | |
| | | return nullptr; |
| | | } |
| | | |
| | | CPath* CGlass::getPath() |
| | | { |
| | | return m_pPath; |
| | | } |
| | | |
| | | void CGlass::addPath(unsigned int nSiteId) |
| | | CPath* CGlass::getPathWithEq(unsigned int nEqId, unsigned int nUnit) |
| | | { |
| | | CPath* pPath = new CPath(nSiteId); |
| | | CPath* pTemp = m_pPath; |
| | | while (pTemp != nullptr) { |
| | | if (pTemp->getEqID() == nEqId && pTemp->getUnit() == nUnit) { |
| | | return pTemp; |
| | | } |
| | | |
| | | pTemp = pTemp->getNext(); |
| | | } |
| | | |
| | | return nullptr; |
| | | } |
| | | |
| | | void CGlass::addPath(unsigned int nEqId, unsigned int nUnit) |
| | | { |
| | | CPath* pPath = new CPath(nEqId, nUnit); |
| | | if (m_pPath == nullptr) { |
| | | m_pPath = pPath; |
| | | } |
| | |
| | | m_pPath->serialize(ar); |
| | | } |
| | | char temp[JOBDATAS_SIZE] = { 0 }; |
| | | m_jobDataB.serialize(temp, JOBDATAB_SIZE); |
| | | ar.Write(temp, JOBDATAB_SIZE); |
| | | m_jobDataS.serialize(temp, JOBDATAS_SIZE); |
| | | ar.Write(temp, JOBDATAS_SIZE); |
| | | ar << (ULONGLONG)m_pBuddy; |
| | |
| | | m_pPath->serialize(ar); |
| | | } |
| | | char temp[JOBDATAS_SIZE]; |
| | | ar.Read(temp, JOBDATAB_SIZE); |
| | | m_jobDataB.unserialize(temp, JOBDATAB_SIZE); |
| | | ar.Read(temp, JOBDATAS_SIZE); |
| | | m_jobDataS.unserialize(temp, JOBDATAS_SIZE); |
| | | ar >> ullPath; // 这是m_pBuddy, 用不上 |
| | | ar >> ullPath; m_pBuddy = (CGlass*)ullPath; |
| | | ReadString(ar, m_strBuddyId); |
| | | Unlock(); |
| | | } |
| | | } |
| | | |
| | | void CGlass::setJobDataB(CJobDataB* pJobDataB) |
| | | { |
| | | m_jobDataB.copy(pJobDataB); |
| | | } |
| | | |
| | | CJobDataB* CGlass::getJobDataB() |
| | | { |
| | | return &m_jobDataB; |
| | | } |
| | | |
| | | void CGlass::setJobDataS(CJobDataS* pJobDataS) |
| | | { |
| | | m_jobDataS.copy(pJobDataS); |
| | | } |
| | | |
| | | void CGlass::updateJobDataS(CJobDataS* pJobDataS) |
| | | { |
| | | m_jobDataS.update(pJobDataS); |
| | | } |
| | | |
| | | CJobDataS* CGlass::getJobDataS() |
| | |
| | | if (m_pBuddy != nullptr) return FALSE; |
| | | if (pGlass->getType() == this->getType()) return FALSE; |
| | | m_pBuddy = pGlass; |
| | | if (m_type == MaterialsType::G1) { |
| | | m_pBuddy->addRef(); |
| | | } |
| | | m_pBuddy->addRef(); |
| | | m_strBuddyId = m_pBuddy->getID(); |
| | | |
| | | return TRUE; |
| | | } |
| | | |
| | | BOOL CGlass::forceSetBuddy(CGlass* pGlass) |
| | | { |
| | | m_pBuddy = pGlass; |
| | | m_pBuddy->addRef(); |
| | | m_strBuddyId = m_pBuddy->getID(); |
| | | |
| | | return TRUE; |
| | |
| | | { |
| | | return m_strBuddyId; |
| | | } |
| | | |
| | | void CGlass::processEnd(unsigned int nEqId, unsigned int nUnit) |
| | | { |
| | | CPath* pPath = getPathWithEq(nEqId, nUnit); |
| | | if (pPath != nullptr) { |
| | | pPath->processEnd(); |
| | | } |
| | | } |
| | | |
| | | BOOL CGlass::isProcessed(unsigned int nEqId, unsigned int nUnit) |
| | | { |
| | | CPath* pPath = getPathWithEq(nEqId, nUnit); |
| | | if (pPath == nullptr) return FALSE; |
| | | |
| | | return pPath->isProcessEnd(); |
| | | } |
| | | } |