This commit is contained in:
ninja
2025-12-15 23:22:33 +08:00
parent 019570564b
commit 8782765fbc
809 changed files with 118753 additions and 18289 deletions

View File

@@ -1,6 +1,6 @@
/***********************************************************************************************************************
*
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
* 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
@@ -14,15 +14,16 @@
#include "PRC2XML.h"
//######################################################################################################################
static int stTraverseAnnotationSet(const A3DMkpAnnotationSet* pAnnot, _TiXmlElement* setting)
static A3DStatus stTraverseAnnotationSet(const A3DMkpAnnotationSet* pAnnot, _TiXmlElement* setting)
{
A3DMkpAnnotationSetData sData;
A3D_INITIALIZE_DATA(A3DMkpAnnotationSetData, sData);
_TiXmlElement* annotset = new _TiXmlElement("A3DMkpAnnotationSetData");
setAttributePRC2XMLID(pAnnot, annotset);
traverseSource(pAnnot, annotset);
A3DInt32 iRet = A3DMkpAnnotationSetGet(pAnnot, &sData);
A3DStatus iRet = A3DMkpAnnotationSetGet(pAnnot, &sData);
if(iRet == A3D_SUCCESS)
{
for(A3DUns32 ui = 0; ui < sData.m_uiAnnotationsSize; ++ui)
@@ -32,14 +33,14 @@ static int stTraverseAnnotationSet(const A3DMkpAnnotationSet* pAnnot, _TiXmlElem
}
else
{
annotset->SetAttribute("error", iRet);
annotset->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(annotset);
return iRet;
}
//######################################################################################################################
static int stTraverseAnnotationReference(const A3DMkpAnnotationReference* pAnnot, _TiXmlElement* setting)
static A3DStatus stTraverseAnnotationReference(const A3DMkpAnnotationReference* pAnnot, _TiXmlElement* setting)
{
A3DMkpAnnotationReferenceData sData;
A3D_INITIALIZE_DATA(A3DMkpAnnotationReferenceData, sData);
@@ -47,7 +48,7 @@ static int stTraverseAnnotationReference(const A3DMkpAnnotationReference* pAnnot
_TiXmlElement* ref = new _TiXmlElement("A3DMkpAnnotationReferenceData");
traverseSource(pAnnot, ref);
A3DInt32 iRet = A3DMkpAnnotationReferenceGet(pAnnot, &sData);
A3DStatus iRet = A3DMkpAnnotationReferenceGet(pAnnot, &sData);
if(iRet == A3D_SUCCESS)
{
for(A3DUns32 ui = 0; ui < sData.m_uiLinkedItemsSize; ++ui)
@@ -57,22 +58,23 @@ static int stTraverseAnnotationReference(const A3DMkpAnnotationReference* pAnnot
}
else
{
ref->SetAttribute("error", iRet);
ref->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(ref);
return iRet;
}
//######################################################################################################################
static int stTraverseAnnotationItem(const A3DMkpAnnotationItem* pAnnot, _TiXmlElement* setting)
static A3DStatus stTraverseAnnotationItem(const A3DMkpAnnotationItem* pAnnot, _TiXmlElement* setting)
{
A3DMkpAnnotationItemData sData;
A3D_INITIALIZE_DATA(A3DMkpAnnotationItemData, sData);
_TiXmlElement* annotitem = new _TiXmlElement("A3DMkpAnnotationItemData");
setAttributePRC2XMLID(pAnnot, annotitem);
traverseSource(pAnnot, annotitem);
A3DInt32 iRet = A3DMkpAnnotationItemGet(pAnnot, &sData);
A3DStatus iRet = A3DMkpAnnotationItemGet(pAnnot, &sData);
if(iRet == A3D_SUCCESS)
{
traverseMarkup(sData.m_pMarkup, annotitem);
@@ -80,17 +82,17 @@ static int stTraverseAnnotationItem(const A3DMkpAnnotationItem* pAnnot, _TiXmlEl
}
else
{
annotitem->SetAttribute("error", iRet);
annotitem->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(annotitem);
return iRet;
}
//######################################################################################################################
int traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* setting)
A3DStatus traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* setting)
{
A3DEEntityType eType;
A3DInt32 iRet = A3DEntityGetType(pAnnot, &eType);
A3DStatus iRet = A3DEntityGetType(pAnnot, &eType);
if(iRet == A3D_SUCCESS)
{
switch(eType)
@@ -109,12 +111,12 @@ int traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* sett
}
//######################################################################################################################
int traverseAmbientLight(const A3DGraphAmbientLight *pLight, _TiXmlElement* setting)
A3DStatus traverseAmbientLight(const A3DGraphAmbientLight *pLight, _TiXmlElement* setting)
{
if (!pLight)
{
setting->SetAttribute("Light", "Bad cast");
return -1;
return A3D_ERROR;
}
_TiXmlElement* light = new _TiXmlElement("A3DGraphAmbientLightData");
A3DStatus iRet;
@@ -130,19 +132,19 @@ int traverseAmbientLight(const A3DGraphAmbientLight *pLight, _TiXmlElement* sett
}
else
{
light->SetAttribute("Error", iRet);
light->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(light);
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traversePointLight(const A3DGraphPointLight* pLight, _TiXmlElement* setting)
A3DStatus traversePointLight(const A3DGraphPointLight* pLight, _TiXmlElement* setting)
{
if (!pLight)
{
setting->SetAttribute("Light", "Bad cast");
return -1;
return A3D_ERROR;
}
_TiXmlElement* light = new _TiXmlElement("A3DGraphPointLightData");
@@ -162,19 +164,19 @@ int traversePointLight(const A3DGraphPointLight* pLight, _TiXmlElement* setting)
}
else
{
light->SetAttribute("Error", iRet);
light->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(light);
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traverseSpotLight(const A3DGraphSpotLight* pLight, _TiXmlElement* setting)
A3DStatus traverseSpotLight(const A3DGraphSpotLight* pLight, _TiXmlElement* setting)
{
if (!pLight)
{
setting->SetAttribute("Light", "Bad cast");
return -1;
return A3D_ERROR;
}
_TiXmlElement* light = new _TiXmlElement("A3DGraphSpotLightData");
@@ -197,19 +199,19 @@ int traverseSpotLight(const A3DGraphSpotLight* pLight, _TiXmlElement* setting)
}
else
{
light->SetAttribute("Error", iRet);
light->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(light);
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traverseDirectionalLight(const A3DGraphDirectionalLight* pLight, _TiXmlElement* setting)
A3DStatus traverseDirectionalLight(const A3DGraphDirectionalLight* pLight, _TiXmlElement* setting)
{
if (!pLight)
{
setting->SetAttribute("Light", "Bad cast");
return -1;
return A3D_ERROR;
}
_TiXmlElement* light = new _TiXmlElement("A3DGraphDirectionalLightData");
@@ -227,20 +229,20 @@ int traverseDirectionalLight(const A3DGraphDirectionalLight* pLight, _TiXmlEleme
}
else
{
light->SetAttribute("Error", iRet);
light->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
setting->LinkEndChild(light);
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traverseLight(const A3DGraphLight* pLight, _TiXmlElement* setting)
A3DStatus traverseLight(const A3DGraphLight* pLight, _TiXmlElement* setting)
{
if (!pLight)
{
setting->SetAttribute("Light", "empty");
return -1;
return A3D_ERROR;
}
A3DEEntityType eType = kA3DTypeUnknown;
@@ -263,11 +265,11 @@ int traverseLight(const A3DGraphLight* pLight, _TiXmlElement* setting)
setting->SetAttribute("Light", "Unknown Type");
break;
}
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traverseCamera(const A3DGraphCamera* pCamera, _TiXmlElement* setting)
A3DStatus traverseCamera(const A3DGraphCamera* pCamera, _TiXmlElement* setting)
{
_TiXmlElement* camera = new _TiXmlElement("A3DGraphCameraData");
if (pCamera)
@@ -292,7 +294,7 @@ int traverseCamera(const A3DGraphCamera* pCamera, _TiXmlElement* setting)
}
else
{
camera->SetAttribute("Error", iRet);
camera->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
}
A3DGraphCameraGet(NULL, &oData);
}
@@ -301,9 +303,9 @@ int traverseCamera(const A3DGraphCamera* pCamera, _TiXmlElement* setting)
}
//######################################################################################################################
int traverseGraphScene(const A3DGraphSceneDisplayParametersData& sData, _TiXmlElement* setting)
A3DStatus traverseGraphScene(const A3DGraphSceneDisplayParametersData& sData, _TiXmlElement* setting)
{
A3DInt32 iRet = A3D_SUCCESS;
A3DStatus iRet = A3D_SUCCESS;
_TiXmlElement* graphscene = new _TiXmlElement("A3DGraphSceneDisplayParametersData");
graphscene->SetAttribute("NumberOfPlanes", sData.m_uiPlaneSize);
@@ -337,11 +339,11 @@ int traverseGraphScene(const A3DGraphSceneDisplayParametersData& sData, _TiXmlEl
}
//######################################################################################################################
int traverseGraphScene(const A3DGraphSceneDisplayParameters * pGraphSceneParam, _TiXmlElement* setting)
A3DStatus traverseGraphScene(const A3DGraphSceneDisplayParameters * pGraphSceneParam, _TiXmlElement* setting)
{
A3DGraphSceneDisplayParametersData sData;
A3D_INITIALIZE_DATA(A3DGraphSceneDisplayParametersData, sData);
A3DInt32 iRet = A3DGraphSceneDisplayParametersGet(pGraphSceneParam, &sData);
A3DStatus iRet = A3DGraphSceneDisplayParametersGet(pGraphSceneParam, &sData);
traverseGraphScene(sData, setting);
@@ -350,9 +352,9 @@ int traverseGraphScene(const A3DGraphSceneDisplayParameters * pGraphSceneParam,
}
//######################################################################################################################
int traverseDisplayFilter(A3DAsmFilter* pFilter, _TiXmlElement* setting)
A3DStatus traverseDisplayFilter(A3DAsmFilter* pFilter, _TiXmlElement* setting)
{
A3DInt32 iRet = A3D_SUCCESS;
A3DStatus iRet = A3D_SUCCESS;
_TiXmlElement* filter = new _TiXmlElement("A3DAsmFilterData");
traverseSource(pFilter, filter);
@@ -360,7 +362,7 @@ int traverseDisplayFilter(A3DAsmFilter* pFilter, _TiXmlElement* setting)
if (!pFilter)
{
filter->SetAttribute("Filter", "empty");
return -1;
return A3D_ERROR;
}
A3DAsmFilterData oData;
@@ -426,28 +428,29 @@ int traverseDisplayFilter(A3DAsmFilter* pFilter, _TiXmlElement* setting)
}
//######################################################################################################################
int traverseDisplayFilters(A3DUns32 uiSize,A3DAsmFilter** ppFilters , _TiXmlElement* setting)
A3DStatus traverseDisplayFilters(A3DUns32 uiSize,A3DAsmFilter** ppFilters , _TiXmlElement* setting)
{
for (A3DUns32 uk = 0; uk < uiSize; ++uk)
traverseDisplayFilter(ppFilters[uk], setting);
return 0;
return A3D_SUCCESS;
}
//######################################################################################################################
int traverseView(const A3DMkpView* pView, _TiXmlElement* setting)
A3DStatus traverseView(const A3DMkpView* pView, _TiXmlElement* setting)
{
A3DMkpViewData sData;
A3D_INITIALIZE_DATA(A3DMkpViewData, sData);
_TiXmlElement* view = new _TiXmlElement("A3DMkpViewData");
setAttributePRC2XMLID(pView, view);
traverseSource(pView, view);
A3DInt32 iRet = A3DMkpViewGet(pView, &sData);
A3DStatus iRet = A3DMkpViewGet(pView, &sData);
if(iRet == A3D_SUCCESS)
{
view->SetAttribute("m_bIsAnnotationView", sData.m_bIsAnnotationView);
view->SetAttribute("m_bIsDefaultView", sData.m_bIsDefaultView);
traverseVoids("m_ppAnnotations", sData.m_uiAnnotationsSize, (const A3DVoid**)sData.m_ppAnnotations, view);
traversePRC2XMLIDs("m_ppAnnotations", sData.m_uiAnnotationsSize, (const A3DVoid**)sData.m_ppAnnotations, view);
traverseSrfPlane(sData.m_pPlane, view);
traverseGraphScene(sData.m_pSceneDisplayParameters, view);
@@ -580,15 +583,16 @@ static void stTraverseMarkupTypeAndSubType(const A3DEMarkupType& eType, const A3
}
//######################################################################################################################
int traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting)
A3DStatus traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting)
{
A3DMkpMarkupData sData;
A3D_INITIALIZE_DATA(A3DMkpMarkupData, sData);
_TiXmlElement* markup = new _TiXmlElement("A3DMkpMarkupData");
setAttributePRC2XMLID(pMarkup, markup);
traverseSource(pMarkup, markup);
A3DInt32 iRet = A3DMkpMarkupGet(pMarkup, &sData);
A3DStatus iRet = A3DMkpMarkupGet(pMarkup, &sData);
A3DRootBaseData sBaseData;
A3D_INITIALIZE_DATA(A3DRootBaseData, sBaseData);
iRet = A3DRootBaseGet(pMarkup, &sBaseData);
@@ -646,7 +650,7 @@ int traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting)
A3DMkpMarkupGet(NULL, &sData);
}
else
markup->SetAttribute("error", iRet);
markup->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
setting->LinkEndChild(markup);
@@ -715,14 +719,14 @@ void setLeaderSymbolType(_TiXmlElement* setting, const char* name, const A3DMDLe
}
//######################################################################################################################
int stTraverseLeaderSymbol(const A3DMDLeaderSymbol* pSymbol, _TiXmlElement* setting)
A3DStatus stTraverseLeaderSymbol(const A3DMDLeaderSymbol* pSymbol, _TiXmlElement* setting)
{
A3DMDLeaderSymbolData sData;
A3D_INITIALIZE_DATA(A3DMDLeaderSymbolData, sData);
_TiXmlElement* symbol = new _TiXmlElement("A3DMDLeaderSymbolData");
A3DInt32 iRet = A3DMDLeaderSymbolGet(pSymbol, &sData);
A3DStatus iRet = A3DMDLeaderSymbolGet(pSymbol, &sData);
if(iRet == A3D_SUCCESS)
{
symbol->SetDoubleAttribute("m_dAdditionalParameter", sData.m_dAdditionalParameter);
@@ -735,14 +739,14 @@ int stTraverseLeaderSymbol(const A3DMDLeaderSymbol* pSymbol, _TiXmlElement* sett
}
//######################################################################################################################
int stTraverseLeaderStub(const A3DMDMarkupLeaderStub* pStub, _TiXmlElement* setting)
A3DStatus stTraverseLeaderStub(const A3DMDMarkupLeaderStub* pStub, _TiXmlElement* setting)
{
A3DMDMarkupLeaderStubData sData;
A3D_INITIALIZE_DATA(A3DMDMarkupLeaderStubData, sData);
_TiXmlElement* stub = new _TiXmlElement("A3DMDMarkupLeaderStubData");
A3DInt32 iRet = A3DMDMarkupLeaderStubGet(pStub, &sData);
A3DStatus iRet = A3DMDMarkupLeaderStubGet(pStub, &sData);
if(iRet == A3D_SUCCESS)
{
traverseDoubles("m_pdValues" , sData.m_uiValuesAndAnchorTypesSize, sData.m_pdValues , stub);
@@ -754,14 +758,14 @@ int stTraverseLeaderStub(const A3DMDMarkupLeaderStub* pStub, _TiXmlElement* sett
}
//######################################################################################################################
int stTraverseMDPosition2D(const A3DMDPosition2D* pPos, _TiXmlElement* setting)
A3DStatus stTraverseMDPosition2D(const A3DMDPosition2D* pPos, _TiXmlElement* setting)
{
A3DMDPosition2DData sData;
A3D_INITIALIZE_DATA(A3DMDPosition2DData, sData);
_TiXmlElement* pos = new _TiXmlElement("A3DMDPosition2DData");
A3DInt32 iRet = A3DMDPosition2DGet(pPos, &sData);
A3DStatus iRet = A3DMDPosition2DGet(pPos, &sData);
if(iRet == A3D_SUCCESS)
{
pos->SetDoubleAttribute("m_dOffset", sData.m_dOffset);
@@ -774,14 +778,14 @@ int stTraverseMDPosition2D(const A3DMDPosition2D* pPos, _TiXmlElement* setting)
}
//######################################################################################################################
int stTraverseMDPosition3D(const A3DMDPosition3D* pPos, _TiXmlElement* setting)
A3DStatus stTraverseMDPosition3D(const A3DMDPosition3D* pPos, _TiXmlElement* setting)
{
A3DMDPosition3DData sData;
A3D_INITIALIZE_DATA(A3DMDPosition3DData, sData);
_TiXmlElement* pos = new _TiXmlElement("A3DMDPosition3DData");
A3DInt32 iRet = A3DMDPosition3DGet(pPos, &sData);
A3DStatus iRet = A3DMDPosition3DGet(pPos, &sData);
if(iRet == A3D_SUCCESS)
{
traversePoint("m_sPosition", sData.m_sPosition, pos);
@@ -792,14 +796,14 @@ int stTraverseMDPosition3D(const A3DMDPosition3D* pPos, _TiXmlElement* setting)
}
//######################################################################################################################
int stTraverseMDPositionReference(const A3DMDPositionReference* pPos, _TiXmlElement* setting)
A3DStatus stTraverseMDPositionReference(const A3DMDPositionReference* pPos, _TiXmlElement* setting)
{
A3DMDPositionReferenceData sData;
A3D_INITIALIZE_DATA(A3DMDPositionReferenceData, sData);
_TiXmlElement* pos = new _TiXmlElement("A3DMDPositionReferenceData");
A3DInt32 iRet = A3DMDPositionReferenceGet(pPos, &sData);
A3DStatus iRet = A3DMDPositionReferenceGet(pPos, &sData);
if(iRet == A3D_SUCCESS)
{
// traverseLinkedItem(sData.m_psLinkedItem, pos); // avoid recursive visitation...
@@ -812,10 +816,10 @@ int stTraverseMDPositionReference(const A3DMDPositionReference* pPos, _TiXmlElem
}
//######################################################################################################################
int stTraverseMDPosition(const A3DMDPosition* pPos, _TiXmlElement* setting)
A3DStatus stTraverseMDPosition(const A3DMDPosition* pPos, _TiXmlElement* setting)
{
A3DEEntityType eType = kA3DTypeUnknown;
A3DInt32 iRet = A3DEntityGetType(pPos, &eType);
A3DStatus iRet = A3DEntityGetType(pPos, &eType);
if(iRet == A3D_SUCCESS)
{
switch(eType)
@@ -838,14 +842,14 @@ int stTraverseMDPosition(const A3DMDPosition* pPos, _TiXmlElement* setting)
}
//######################################################################################################################
int stTraverseLeaderDefinition(const A3DMDLeaderDefinition* pLeaderDef, _TiXmlElement* setting)
A3DStatus stTraverseLeaderDefinition(const A3DMDLeaderDefinition* pLeaderDef, _TiXmlElement* setting)
{
A3DMDLeaderDefinitionData sData;
A3D_INITIALIZE_DATA(A3DMDLeaderDefinitionData, sData);
_TiXmlElement* definition = new _TiXmlElement("A3DMDLeaderDefinitionData");
A3DInt32 iRet = A3DMDLeaderDefinitionGet(pLeaderDef, &sData);
A3DStatus iRet = A3DMDLeaderDefinitionGet(pLeaderDef, &sData);
if(iRet == A3D_SUCCESS)
{
setLeaderSymbolType(definition, "m_eTailSymbol", sData.m_eTailSymbol);
@@ -876,7 +880,7 @@ int stTraverseLeaderDefinition(const A3DMDLeaderDefinition* pLeaderDef, _TiXmlEl
}
//######################################################################################################################
int traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting)
A3DStatus traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting)
{
A3DMkpLeaderData sData;
A3D_INITIALIZE_DATA(A3DMkpLeaderData, sData);
@@ -884,23 +888,32 @@ int traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting)
_TiXmlElement* leader = new _TiXmlElement("A3DMkpLeaderData");
traverseSource(pLeader, leader);
A3DInt32 iRet = A3DMkpLeaderGet(pLeader, &sData);
A3DStatus iRet = A3DMkpLeaderGet(pLeader, &sData);
if(iRet == A3D_SUCCESS)
{
traverseLinkedItem(sData.m_pLinkedItem, leader);
traverseTessBase(sData.m_pTessellation, leader);
if(sData.m_pLinkedItem)
{
traverseLinkedItem(sData.m_pLinkedItem, leader);
}
if (sData.m_pTessellation)
{
traverseTessBase(sData.m_pTessellation, leader);
}
stTraverseLeaderDefinition(pLeader, leader);
A3DMkpLeaderGet(NULL, &sData);
}
else
leader->SetAttribute("error", iRet);
leader->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
setting->LinkEndChild(leader);
return iRet;
}
//######################################################################################################################
int traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElement* setting)
A3DStatus traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElement* setting)
{
A3DMiscMarkupLinkedItemData sData;
A3D_INITIALIZE_DATA(A3DMiscMarkupLinkedItemData, sData);
@@ -908,8 +921,8 @@ int traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElem
_TiXmlElement* mkplinkeditem = new _TiXmlElement("A3DMiscMarkupLinkedItemData");
traverseSource(pMkpLinkedItem, mkplinkeditem);
A3DInt32 iRet = A3DMiscMarkupLinkedItemGet(pMkpLinkedItem, &sData);
if(pMkpLinkedItem && iRet == A3D_SUCCESS)
A3DStatus iRet = A3DMiscMarkupLinkedItemGet(pMkpLinkedItem, &sData);
if(iRet == A3D_SUCCESS && pMkpLinkedItem)
{
traverseEntityReference((A3DMiscEntityReference*)pMkpLinkedItem, mkplinkeditem);
mkplinkeditem->SetAttribute("m_bMarkupShowControl", sData.m_bMarkupShowControl);
@@ -917,12 +930,12 @@ int traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElem
mkplinkeditem->SetAttribute("m_bLeaderShowControl", sData.m_bLeaderShowControl);
mkplinkeditem->SetAttribute("m_bLeaderDeleteControl", sData.m_bLeaderDeleteControl);
if(sData.m_pTargetProductOccurrence != NULL)
_SetAttributePtr(mkplinkeditem, "m_pTargetProductOccurrence", (void*) sData.m_pTargetProductOccurrence);
setAttributePtr("m_pTargetProductOccurrence", sData.m_pTargetProductOccurrence, mkplinkeditem);
A3DMiscMarkupLinkedItemGet(NULL, &sData);
}
else
mkplinkeditem->SetAttribute("error", pMkpLinkedItem ? iRet : A3D_INVALID_ENTITY_NULL);
mkplinkeditem->SetAttribute("error", pMkpLinkedItem ? A3DMiscGetErrorMsg(iRet) : A3DMiscGetErrorMsg(A3D_INVALID_ENTITY_NULL));
setting->LinkEndChild(mkplinkeditem);
return iRet;
}
}