2025.6.1
This commit is contained in:
@@ -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
|
||||
@@ -15,15 +15,16 @@
|
||||
#include <memory>
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting)
|
||||
A3DStatus traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiCoordinateSystemData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiCoordinateSystemData, sData);
|
||||
|
||||
_TiXmlElement* csys = new _TiXmlElement("A3DRiCoordinateSystemData");
|
||||
setAttributePRC2XMLID(pCSys, csys);
|
||||
traverseSource(pCSys, csys);
|
||||
|
||||
A3DInt32 iRet = A3DRiCoordinateSystemGet(pCSys, &sData);
|
||||
A3DStatus iRet = A3DRiCoordinateSystemGet(pCSys, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
iRet = traverseTransformation(sData.m_pTransformation, csys);
|
||||
@@ -31,7 +32,7 @@ int traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting)
|
||||
}
|
||||
else
|
||||
{
|
||||
csys->SetAttribute("error", iRet);
|
||||
csys->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
|
||||
}
|
||||
|
||||
setting->LinkEndChild(csys);
|
||||
@@ -39,9 +40,9 @@ int traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting)
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseRepItemContent(const A3DRiRepresentationItem* pRi, _TiXmlElement* setting)
|
||||
A3DStatus traverseRepItemContent(const A3DRiRepresentationItem* pRi, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
A3DRiRepresentationItemData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiRepresentationItemData, sData);
|
||||
|
||||
@@ -66,12 +67,13 @@ int traverseRepItemContent(const A3DRiRepresentationItem* pRi, _TiXmlElement* se
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traverseBrepModel(const A3DRiBrepModel* pBrepModel, _TiXmlElement* setting)
|
||||
static A3DStatus traverseBrepModel(const A3DRiBrepModel* pBrepModel, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiBrepModelData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiBrepModelData, sData);
|
||||
|
||||
_TiXmlElement* brep = new _TiXmlElement("A3DRiBrepModelData");
|
||||
setAttributePRC2XMLID(pBrepModel, brep);
|
||||
traverseSource(pBrepModel, brep);
|
||||
traverseRepItemContent(pBrepModel, brep);
|
||||
traverseMaterialProperties(pBrepModel, brep);
|
||||
@@ -85,7 +87,7 @@ static int traverseBrepModel(const A3DRiBrepModel* pBrepModel, _TiXmlElement* se
|
||||
psScale.m_dZ = 1;
|
||||
A3DPhysicalPropertiesData physicalPropertiesData;
|
||||
A3D_INITIALIZE_A3DPhysicalPropertiesData(physicalPropertiesData);
|
||||
A3DInt32 iRet = A3DComputePhysicalProperties(pBrepModel, &psScale, &physicalPropertiesData);
|
||||
A3DStatus iRet = A3DComputePhysicalProperties(pBrepModel, &psScale, &physicalPropertiesData);
|
||||
|
||||
if (iRet == A3D_SUCCESS)
|
||||
{
|
||||
@@ -99,10 +101,10 @@ static int traverseBrepModel(const A3DRiBrepModel* pBrepModel, _TiXmlElement* se
|
||||
}
|
||||
else
|
||||
{
|
||||
physicalprops->SetAttribute("error", iRet);
|
||||
physicalprops->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
|
||||
}
|
||||
|
||||
setting->LinkEndChild(physicalprops);
|
||||
brep->LinkEndChild(physicalprops);
|
||||
iRet = A3DRiBrepModelGet(pBrepModel, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
@@ -115,12 +117,13 @@ static int traverseBrepModel(const A3DRiBrepModel* pBrepModel, _TiXmlElement* se
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traversePolyBrepModel(const A3DRiPolyBrepModel* pPolyBrepModel, _TiXmlElement* setting)
|
||||
static A3DStatus traversePolyBrepModel(const A3DRiPolyBrepModel* pPolyBrepModel, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiPolyBrepModelData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiPolyBrepModelData, sData);
|
||||
|
||||
_TiXmlElement* polybrep = new _TiXmlElement("A3DRiPolyBrepModelData");
|
||||
setAttributePRC2XMLID(pPolyBrepModel, polybrep);
|
||||
traverseSource(pPolyBrepModel, polybrep);
|
||||
traverseRepItemContent(pPolyBrepModel, polybrep);
|
||||
traverseMaterialProperties(pPolyBrepModel, polybrep);
|
||||
@@ -132,7 +135,7 @@ static int traversePolyBrepModel(const A3DRiPolyBrepModel* pPolyBrepModel, _TiXm
|
||||
psScale.m_dX = 1;
|
||||
psScale.m_dY = 1;
|
||||
psScale.m_dZ = 1;
|
||||
A3DInt32 iRet = A3DComputePolyBrepPhysicalProperties(pPolyBrepModel, &psScale, &physicalPropertiesData);
|
||||
A3DStatus iRet = A3DComputePolyBrepPhysicalProperties(pPolyBrepModel, &psScale, &physicalPropertiesData);
|
||||
|
||||
_TiXmlElement* physicalprops = new _TiXmlElement("A3DPhysicalPropertiesData");
|
||||
physicalprops->SetAttribute("m_bVolumecomputed", physicalPropertiesData.m_bVolumeComputed);
|
||||
@@ -143,7 +146,7 @@ static int traversePolyBrepModel(const A3DRiPolyBrepModel* pPolyBrepModel, _TiXm
|
||||
physicalprops->SetDoubleAttribute("m_sGravityCenter.m_dY", (double)physicalPropertiesData.m_sGravityCenter.m_dY);
|
||||
physicalprops->SetDoubleAttribute("m_sGravityCenter.m_dZ",(double) physicalPropertiesData.m_sGravityCenter.m_dZ);
|
||||
|
||||
setting->LinkEndChild(physicalprops);
|
||||
polybrep->LinkEndChild(physicalprops);
|
||||
|
||||
iRet = A3DRiPolyBrepModelGet(pPolyBrepModel, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
@@ -157,17 +160,33 @@ static int traversePolyBrepModel(const A3DRiPolyBrepModel* pPolyBrepModel, _TiXm
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traverseRICurve(const A3DRiCurve* pRICrv, _TiXmlElement* setting)
|
||||
static A3DStatus traversePolyWire(const A3DRiPolyWire* pPolyWire, _TiXmlElement* setting)
|
||||
{
|
||||
_TiXmlElement* pPolyWireElement = new _TiXmlElement("A3DRiPolyWireData");
|
||||
|
||||
setAttributePRC2XMLID(pPolyWire, pPolyWireElement);
|
||||
traverseSource(pPolyWire, pPolyWireElement);
|
||||
traverseRepItemContent(pPolyWire, pPolyWireElement);
|
||||
traverseMaterialProperties(pPolyWire, pPolyWireElement);
|
||||
|
||||
setting->LinkEndChild(pPolyWireElement);
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static A3DStatus traverseRICurve(const A3DRiCurve* pRICrv, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiCurveData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiCurveData, sData);
|
||||
|
||||
_TiXmlElement* ricrv = new _TiXmlElement("A3DRiCurveData");
|
||||
setAttributePRC2XMLID(pRICrv, ricrv);
|
||||
traverseSource(pRICrv, ricrv);
|
||||
traverseRepItemContent(pRICrv, ricrv);
|
||||
traverseMaterialProperties(pRICrv, ricrv);
|
||||
|
||||
A3DInt32 iRet = A3DRiCurveGet(pRICrv, &sData);
|
||||
A3DStatus iRet = A3DRiCurveGet(pRICrv, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
traverseSingleWireBody(sData.m_pBody, ricrv);
|
||||
@@ -179,17 +198,18 @@ static int traverseRICurve(const A3DRiCurve* pRICrv, _TiXmlElement* setting)
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traverseRIPlane(const A3DRiPlane* pRIPlane, _TiXmlElement* setting)
|
||||
static A3DStatus traverseRIPlane(const A3DRiPlane* pRIPlane, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiPlaneData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiPlaneData, sData);
|
||||
|
||||
_TiXmlElement* riplane = new _TiXmlElement("A3DRiPlaneData");
|
||||
setAttributePRC2XMLID(pRIPlane, riplane);
|
||||
traverseSource(pRIPlane, riplane);
|
||||
traverseRepItemContent(pRIPlane, riplane);
|
||||
traverseMaterialProperties(pRIPlane, riplane);
|
||||
|
||||
A3DInt32 iRet = A3DRiPlaneGet(pRIPlane, &sData);
|
||||
A3DStatus iRet = A3DRiPlaneGet(pRIPlane, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
traverseBrepData(sData.m_pBrepData, riplane);
|
||||
@@ -201,16 +221,17 @@ static int traverseRIPlane(const A3DRiPlane* pRIPlane, _TiXmlElement* setting)
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traverseDirection(const A3DRiDirection* pDirection, _TiXmlElement* setting)
|
||||
static A3DStatus traverseDirection(const A3DRiDirection* pDirection, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiDirectionData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiDirectionData, sData);
|
||||
|
||||
_TiXmlElement* dir = new _TiXmlElement("A3DRiDirectionData");
|
||||
setAttributePRC2XMLID(pDirection, dir);
|
||||
traverseSource(pDirection, dir);
|
||||
traverseRepItemContent(pDirection, dir);
|
||||
|
||||
A3DInt32 iRet = A3DRiDirectionGet(pDirection, &sData);
|
||||
A3DStatus iRet = A3DRiDirectionGet(pDirection, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
traversePoint("m_sOrigin" , sData.m_sOrigin , dir);
|
||||
@@ -219,7 +240,7 @@ static int traverseDirection(const A3DRiDirection* pDirection, _TiXmlElement* se
|
||||
}
|
||||
else
|
||||
{
|
||||
dir->SetAttribute("error", iRet);
|
||||
dir->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
|
||||
}
|
||||
|
||||
setting->LinkEndChild(dir);
|
||||
@@ -227,17 +248,18 @@ static int traverseDirection(const A3DRiDirection* pDirection, _TiXmlElement* se
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traversePointSet(const A3DRiPointSet* pPointSet, _TiXmlElement* setting)
|
||||
static A3DStatus traversePointSet(const A3DRiPointSet* pPointSet, _TiXmlElement* setting)
|
||||
{
|
||||
A3DRiPointSetData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiPointSetData, sData);
|
||||
|
||||
_TiXmlElement* pointset = new _TiXmlElement("A3DRiPointSetData");
|
||||
setAttributePRC2XMLID(pPointSet, pointset);
|
||||
traverseSource(pPointSet, pointset);
|
||||
traverseRepItemContent(pPointSet, pointset);
|
||||
traverseMaterialProperties(pPointSet, pointset);
|
||||
|
||||
A3DInt32 iRet = A3DRiPointSetGet(pPointSet, &sData);
|
||||
A3DStatus iRet = A3DRiPointSetGet(pPointSet, &sData);
|
||||
if(iRet == A3D_SUCCESS)
|
||||
{
|
||||
for(A3DUns32 ui = 0; ui < sData.m_uiSize; ++ui)
|
||||
@@ -246,7 +268,7 @@ static int traversePointSet(const A3DRiPointSet* pPointSet, _TiXmlElement* setti
|
||||
}
|
||||
else
|
||||
{
|
||||
pointset->SetAttribute("error", iRet);
|
||||
pointset->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
|
||||
}
|
||||
|
||||
setting->LinkEndChild(pointset);
|
||||
@@ -254,13 +276,14 @@ static int traversePointSet(const A3DRiPointSet* pPointSet, _TiXmlElement* setti
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
static int traverseSet(const A3DRiSet* pSet, _TiXmlElement* setting)
|
||||
static A3DStatus traverseSet(const A3DRiSet* pSet, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
A3DRiSetData sData;
|
||||
A3D_INITIALIZE_DATA(A3DRiSetData, sData);
|
||||
|
||||
_TiXmlElement* set = new _TiXmlElement("A3DRiSetData");
|
||||
setAttributePRC2XMLID(pSet, set);
|
||||
traverseSource(pSet, set);
|
||||
traverseRepItemContent(pSet, set);
|
||||
traverseMaterialProperties(pSet, set);
|
||||
@@ -275,7 +298,7 @@ static int traverseSet(const A3DRiSet* pSet, _TiXmlElement* setting)
|
||||
}
|
||||
else
|
||||
{
|
||||
set->SetAttribute("error", iRet);
|
||||
set->SetAttribute("error", A3DMiscGetErrorMsg(iRet));
|
||||
}
|
||||
|
||||
setting->LinkEndChild(set);
|
||||
@@ -283,9 +306,9 @@ static int traverseSet(const A3DRiSet* pSet, _TiXmlElement* setting)
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseDrawingBlock(const A3DDrawingBlock *pDrwBlock, _TiXmlElement* setting)
|
||||
A3DStatus traverseDrawingBlock(const A3DDrawingBlock *pDrwBlock, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
A3DDrawingBlockBasicData sDrwBlockData;
|
||||
A3D_INITIALIZE_DATA(A3DDrawingBlockBasicData, sDrwBlockData);
|
||||
@@ -293,6 +316,7 @@ int traverseDrawingBlock(const A3DDrawingBlock *pDrwBlock, _TiXmlElement* settin
|
||||
CHECK_RET( A3DDrawingBlockBasicGet( (A3DDrawingBlockBasic const*) pDrwBlock, &sDrwBlockData));
|
||||
|
||||
_TiXmlElement* drwBlock = new _TiXmlElement("A3DDrawingBlockData");
|
||||
setAttributePRC2XMLID(pDrwBlock, drwBlock);
|
||||
traverseSource(pDrwBlock, drwBlock);
|
||||
|
||||
drwBlock->SetAttribute("Nb_Entities", sDrwBlockData.m_uiDrwEntitiesSize);
|
||||
@@ -310,7 +334,7 @@ int traverseDrawingBlock(const A3DDrawingBlock *pDrwBlock, _TiXmlElement* settin
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseDrawingView(const A3DDrawingView *pDrwView, _TiXmlElement* setting)
|
||||
A3DStatus traverseDrawingView(const A3DDrawingView *pDrwView, _TiXmlElement* setting)
|
||||
{
|
||||
|
||||
A3DDrawingViewData sDrwViewData;
|
||||
@@ -320,7 +344,7 @@ int traverseDrawingView(const A3DDrawingView *pDrwView, _TiXmlElement* setting)
|
||||
_TiXmlElement* drwView = new _TiXmlElement("A3DDrawingViewData");
|
||||
|
||||
// Get the type of the drawing view
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
iRet = A3DDrawingViewGet(pDrwView, &sDrwViewData);
|
||||
|
||||
@@ -384,9 +408,9 @@ int traverseDrawingView(const A3DDrawingView *pDrwView, _TiXmlElement* setting)
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseDrawingSheet(const A3DDrawingSheet * pDrwSheet, _TiXmlElement* setting)
|
||||
A3DStatus traverseDrawingSheet(const A3DDrawingSheet * pDrwSheet, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
A3DDrawingSheetData sDrwSheetData;
|
||||
A3D_INITIALIZE_DATA(A3DDrawingSheetData, sDrwSheetData);
|
||||
@@ -408,9 +432,9 @@ int traverseDrawingSheet(const A3DDrawingSheet * pDrwSheet, _TiXmlElement* setti
|
||||
}
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting)
|
||||
A3DStatus traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
A3DDrawingModelData sDrwModelData;
|
||||
A3D_INITIALIZE_DATA(A3DDrawingModelData, sDrwModelData);
|
||||
@@ -437,9 +461,9 @@ int traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting)
|
||||
|
||||
|
||||
//######################################################################################################################
|
||||
int traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* setting)
|
||||
A3DStatus traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* setting)
|
||||
{
|
||||
A3DInt32 iRet = A3D_SUCCESS;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
A3DEEntityType eType;
|
||||
|
||||
CHECK_RET(A3DEntityGetType(pRepItem, &eType));
|
||||
@@ -470,6 +494,9 @@ int traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* sett
|
||||
case kA3DTypeRiPolyBrepModel:
|
||||
iRet = traversePolyBrepModel(pRepItem, setting);
|
||||
break;
|
||||
case kA3DTypeRiPolyWire:
|
||||
iRet = traversePolyWire(pRepItem, setting);
|
||||
break;
|
||||
default:
|
||||
iRet = A3D_NOT_IMPLEMENTED;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user