2025.6.1
This commit is contained in:
101
exchange/exchangesource/PRC2XML/PRC2XMLPublication.cpp
Normal file
101
exchange/exchangesource/PRC2XML/PRC2XMLPublication.cpp
Normal file
@@ -0,0 +1,101 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2025 by Tech Soft 3D, Inc.
|
||||
* The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., and considered a trade secret
|
||||
* as defined under civil and criminal statutes. Tech Soft 3D shall pursue its civil and criminal remedies in the event
|
||||
* of unauthorized use or misappropriation of its trade secrets. Use of this information by anyone other than authorized
|
||||
* employees of Tech Soft 3D, Inc. is granted only under a written non-disclosure agreement, expressly prescribing the
|
||||
* scope and manner of such use.
|
||||
*
|
||||
***********************************************************************************************************************/
|
||||
|
||||
#include <A3DSDKIncludes.h>
|
||||
#include "PRC2XML.h"
|
||||
|
||||
//######################################################################################################################
|
||||
A3DStatus traversePublicationLinkedItem(const A3DAsmPublicationLinkedItem* pPublicationLinkedItem,
|
||||
_TiXmlElement* pXMLParent)
|
||||
{
|
||||
if (pPublicationLinkedItem == nullptr)
|
||||
return A3D_SUCCESS;
|
||||
|
||||
_TiXmlElement* pXMLElement = new _TiXmlElement("A3DAsmPublicationLinkedItem");
|
||||
|
||||
A3DAsmPublicationLinkedItemData oPublicationLinkedItemData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmPublicationLinkedItemData, oPublicationLinkedItemData);
|
||||
|
||||
traverseSource(pPublicationLinkedItem, pXMLElement);
|
||||
|
||||
traverseEntityReference(
|
||||
pPublicationLinkedItem, pXMLElement);
|
||||
|
||||
if (A3DAsmPublicationLinkedItemGet(pPublicationLinkedItem, &oPublicationLinkedItemData) == A3D_SUCCESS)
|
||||
{
|
||||
if(oPublicationLinkedItemData.m_pTargetProductOccurrence)
|
||||
setAttributePtr("m_pTargetProductOccurrence", oPublicationLinkedItemData.m_pTargetProductOccurrence, pXMLElement);
|
||||
|
||||
A3DAsmPublicationLinkedItemGet(nullptr, &oPublicationLinkedItemData);
|
||||
}
|
||||
|
||||
pXMLParent->LinkEndChild(pXMLElement);
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
A3DStatus traversePublication(const A3DAsmPublication* pPublication,
|
||||
_TiXmlElement* pXMLParent)
|
||||
{
|
||||
if (pPublication == nullptr)
|
||||
return A3D_SUCCESS;
|
||||
|
||||
_TiXmlElement* pXMLElement = new _TiXmlElement("A3DAsmPublication");
|
||||
|
||||
A3DAsmPublicationData oPublicationData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmPublicationData, oPublicationData);
|
||||
|
||||
traverseSource(pPublication, pXMLElement);
|
||||
|
||||
if (A3DAsmPublicationGet(pPublication, &oPublicationData) == A3D_SUCCESS)
|
||||
{
|
||||
for (unsigned int i = 0; i < oPublicationData.m_uiLinkedItemsSize; i++)
|
||||
{
|
||||
traversePublicationLinkedItem(
|
||||
oPublicationData.m_ppLinkedItems[i], pXMLElement);
|
||||
}
|
||||
A3DAsmPublicationGet(nullptr, &oPublicationData);
|
||||
}
|
||||
|
||||
pXMLParent->LinkEndChild(pXMLElement);
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
A3DStatus traversePublicationSet(const A3DAsmPublicationSet* pPublicationSet,
|
||||
_TiXmlElement* pXMLParent)
|
||||
{
|
||||
// TODO: perhaps add a check on nullptr on pPublicationSet
|
||||
_TiXmlElement* pXMLElement = new _TiXmlElement("A3DAsmPublicationSet");
|
||||
|
||||
A3DAsmPublicationSetData oPublicationSetData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmPublicationSetData, oPublicationSetData);
|
||||
|
||||
traverseSource(pPublicationSet, pXMLElement);
|
||||
|
||||
if (A3DAsmPublicationSetGet(pPublicationSet, &oPublicationSetData) == A3D_SUCCESS)
|
||||
{
|
||||
for (unsigned int i = 0; i < oPublicationSetData.m_uiPublicationsSize; i++)
|
||||
{
|
||||
traversePublication(
|
||||
oPublicationSetData.m_ppPublications[i],
|
||||
pXMLElement);
|
||||
}
|
||||
|
||||
A3DAsmPublicationSetGet(nullptr, &oPublicationSetData);
|
||||
}
|
||||
|
||||
pXMLParent->LinkEndChild(pXMLElement);
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
Reference in New Issue
Block a user