/*********************************************************************************************************************** * * 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 #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; }