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,6 +14,14 @@
#include <stdlib.h>
#ifndef _MAX_PATH
# ifdef _MSC_VER
# define _MAX_PATH 260
# else
# define _MAX_PATH 4096
# endif
#endif
#ifdef WIN32
# pragma warning (disable:4090)
# define _CRT_SECURE_NO_DEPRECATE 1
@@ -27,7 +35,7 @@
#ifdef __APPLE__
# include "TargetConditionals.h"
# if TARGET_OS_IPHONE == 1 || TARGET_IPHONE_SIMULATOR == 1
# if TARGET_OS_MACCATALYST != 1 && (TARGET_OS_IPHONE == 1 || TARGET_IPHONE_SIMULATOR == 1)
# include "tinyxml.h"
# include "common.hpp"
# else
@@ -44,57 +52,79 @@
# include "../common.hpp"
#endif
#if !defined(__ANDROID__) && !defined(APPLE_IOS)
//######################################################################################################################
void ShowUsage(MY_CHAR** ppcArgv);
//######################################################################################################################
bool ParseArgs(A3DInt32 iArgc, MY_CHAR** ppcArgv,
MY_CHAR(&acSrcFileName)[_MAX_PATH * 2],
MY_CHAR(&acDstFileName)[_MAX_PATH * 2],
MY_CHAR(&acLogFileName)[_MAX_PATH * 2],
unsigned& uPrc2xmlFlagArgs);
#endif // !defined(__ANDROID__) && !defined(APPLE_IOS)
//######################################################################################################################
A3DStatus ProcessFile(
A3DSDKHOOPSExchangeLoader& sHoopsExchangeLoader,
A3DImport& sImport,
const MY_CHAR* pcPRCFile,
const MY_CHAR* pcXMLFile);
const MY_CHAR* pcXMLFile,
bool bDumpPictures);
//######################################################################################################################
void _SetAttributePtr(_TiXmlElement* psElement, const A3DUTF8Char* pcAttribName, void* pValue);
void setTextureDirectory(const MY_CHAR *texturePath); // use this to also output texture pictures files
//######################################################################################################################
void _SetDoubleAttribute(_TiXmlElement* psElement, const char* name, double val);
void setAttributePtr(const A3DUTF8Char* pcAttribName, const A3DEntity* pElement, _TiXmlElement* setting);
//######################################################################################################################
int traverseDoubles(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DDouble* pd, _TiXmlElement* setting);
unsigned int getPRC2XMLID(const A3DEntity* pElement);
//######################################################################################################################
int traverseUInts(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns32* pui, _TiXmlElement* setting);
void setAttributePRC2XMLID(const A3DEntity* pElement, _TiXmlElement* setting);
//######################################################################################################################
int traverseUChars(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns8* pui, _TiXmlElement* setting);
A3DStatus traversePRC2XMLIDs(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DEntity** pp, _TiXmlElement* setting);
//######################################################################################################################
int traverseBools(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DBool* pb, _TiXmlElement* setting);
void setDoubleAttribute(_TiXmlElement* psElement, const char* name, double val);
//######################################################################################################################
int traverseVoids(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DVoid** pp, _TiXmlElement* setting);
A3DStatus traverseDoubles(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DDouble* pd, _TiXmlElement* setting);
//######################################################################################################################
int traversePoint2d(const A3DUTF8Char* name, const A3DVector2dData& sData, _TiXmlElement* setting);
A3DStatus traverseUInts(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns32* pui, _TiXmlElement* setting);
//######################################################################################################################
int traversePoint(const A3DUTF8Char* name, const A3DVector3dData& sData, _TiXmlElement* setting);
A3DStatus traverseUChars(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns8* pui, _TiXmlElement* setting);
//######################################################################################################################
int traversePoints(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DVector3dData* pv, _TiXmlElement* setting);
A3DStatus traverseBools(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DBool* pb, _TiXmlElement* setting);
//######################################################################################################################
int traverseInterval(const A3DIntervalData* pData, _TiXmlElement* setting);
A3DStatus traversePoint2d(const A3DUTF8Char* name, const A3DVector2dData& sData, _TiXmlElement* setting);
//######################################################################################################################
int traverseDomain(const A3DDomainData* pData, _TiXmlElement* setting);
A3DStatus traversePoint(const A3DUTF8Char* name, const A3DVector3dData& sData, _TiXmlElement* setting);
//######################################################################################################################
int traverseBoundingBox(const A3DBoundingBoxData* pData, _TiXmlElement* setting);
A3DStatus traversePoints(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DVector3dData* pv, _TiXmlElement* setting);
//######################################################################################################################
int traverseParam(const A3DParameterizationData* pData, _TiXmlElement* setting);
A3DStatus traverseInterval(const A3DIntervalData* pData, _TiXmlElement* setting);
//######################################################################################################################
int traverseUVParam(const A3DUVParameterizationData* pData, _TiXmlElement* setting);
A3DStatus traverseDomain(const A3DDomainData* pData, _TiXmlElement* setting);
//######################################################################################################################
A3DStatus traverseBoundingBox(const A3DBoundingBoxData* pData, _TiXmlElement* setting);
//######################################################################################################################
A3DStatus traverseParam(const A3DParameterizationData* pData, _TiXmlElement* setting);
//######################################################################################################################
A3DStatus traverseUVParam(const A3DUVParameterizationData* pData, _TiXmlElement* setting);
//######################################################################################################################
A3DStatus traverseTransformation(const A3DMiscTransformation* pTrsf, _TiXmlElement *setting);
@@ -106,114 +136,125 @@ A3DStatus traverseCartesianTransformationData(const A3DMiscCartesianTransformati
A3DStatus traverseCartesianTransformation(const A3DMiscCartesianTransformation* pTransfo3d, _TiXmlElement* setting);
//######################################################################################################################
int traverseSource(const A3DEntity* pEntity, _TiXmlElement* setting);
A3DStatus traverseSource(const A3DEntity* pEntity, _TiXmlElement* setting);
//######################################################################################################################
int traverseGlobal(const A3DGlobal* pGlobal, _TiXmlElement* setting);
A3DStatus traverseGlobal(const A3DGlobal* pGlobal, _TiXmlElement* setting);
//######################################################################################################################
int traverseModel(const A3DAsmModelFile* pModelFile, _TiXmlElement* setting);
A3DStatus traverseModel(const A3DAsmModelFile* pModelFile, _TiXmlElement* setting);
//######################################################################################################################
int dumpRelationships(const A3DBIMData* pBimData, _TiXmlElement* model);
//######################################################################################################################
int traverseFonts(_TiXmlElement* setting);
A3DStatus traverseFonts(_TiXmlElement* setting);
//######################################################################################################################
int traverseCurve(const A3DCrvBase* pCrv, _TiXmlElement* setting);
A3DStatus traverseCurve(const A3DCrvBase* pCrv, _TiXmlElement* setting);
//######################################################################################################################
int traverseSurface(const A3DSurfBase* pSrf, _TiXmlElement* setting);
A3DStatus traverseSurface(const A3DSurfBase* pSrf, _TiXmlElement* setting);
//######################################################################################################################
int traverseSrfPlane(const A3DSurfPlane* pSrf, _TiXmlElement* setting);
A3DStatus traverseSrfPlane(const A3DSurfPlane* pSrf, _TiXmlElement* setting);
//######################################################################################################################
int traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* setting);
A3DStatus traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting);
A3DStatus traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting);
//######################################################################################################################
int traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElement* setting);
A3DStatus traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElement* setting);
//######################################################################################################################
int traverseEntityReference(const A3DMiscEntityReference* pEntityReference, _TiXmlElement* setting);
A3DStatus traverseEntityReference(const A3DMiscEntityReference* pEntityReference, _TiXmlElement* setting);
//######################################################################################################################
int traverseSingleWireBody(const A3DTopoSingleWireBody* pSingleWireBody, _TiXmlElement* setting);
A3DStatus traverseSingleWireBody(const A3DTopoSingleWireBody* pSingleWireBody, _TiXmlElement* setting);
//######################################################################################################################
int traverseTopoContext(const A3DTopoContext* pContext, _TiXmlElement* setting);
A3DStatus traverseTopoContext(const A3DTopoContext* pContext, _TiXmlElement* setting);
//######################################################################################################################
int traverseBodyContent(const A3DTopoBody* pBody, _TiXmlElement* setting,unsigned char &ucBehav);
A3DStatus traverseBodyContent(const A3DTopoBody* pBody, _TiXmlElement* setting,unsigned char &ucBehav);
//######################################################################################################################
int traverseBrepData(const A3DTopoBrepData* pBrepData, _TiXmlElement* setting);
A3DStatus traverseBrepData(const A3DTopoBrepData* pBrepData, _TiXmlElement* setting);
//######################################################################################################################
int traverseTessBase(const A3DTessBase* pTess, _TiXmlElement* setting);
A3DStatus traverseTessBase(const A3DTessBase* pTess, _TiXmlElement* setting);
//######################################################################################################################
int traverseView(const A3DMkpView* pView, _TiXmlElement* setting);
A3DStatus traverseView(const A3DMkpView* pView, _TiXmlElement* setting);
//######################################################################################################################
int traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* setting);
A3DStatus traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* setting);
//######################################################################################################################
int traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting);
A3DStatus traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting);
//######################################################################################################################
int traverseTextureApplication(const A3DGraphTextureApplicationData& sData, _TiXmlElement* setting);
A3DStatus traverseTextureApplication(const A3DGraphTextureApplicationData& sData, _TiXmlElement* setting);
//######################################################################################################################
int traverseTextureDefinition(const A3DGraphTextureDefinitionData& sData, _TiXmlElement* setting);
A3DStatus traverseTextureDefinition(const A3DGraphTextureDefinitionData& sData, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupTess(const A3DTessMarkup* pMarkupTess, _TiXmlElement* setting);
A3DStatus traverseMarkupTess(const A3DTessMarkup* pMarkupTess, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupDefinition(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupDefinition(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupText(const A3DMarkupText* pA3DMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupText(const A3DMarkupText* pA3DMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupRichText(const A3DMarkupRichText* pA3DMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupRichText(const A3DMarkupRichText* pA3DMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupDatum(const A3DMarkupDatum* pA3DMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupDatum(const A3DMarkupDatum* pA3DMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupTextProperties(const A3DMDTextProperties* pA3DTextProperties, _TiXmlElement* setting);
A3DStatus traverseMarkupTextProperties(const A3DMDTextProperties* pA3DTextProperties, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupGDT(const A3DMarkupGDT* psMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupGDT(const A3DMarkupGDT* psMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseMarkupDimension(const A3DMarkupDimension* pMarkup, _TiXmlElement* setting);
A3DStatus traverseMarkupDimension(const A3DMarkupDimension* pMarkup, _TiXmlElement* setting);
//######################################################################################################################
int traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting);
A3DStatus traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting);
//######################################################################################################################
int traverseMaterial(const A3DGraphMaterialData& sData, _TiXmlElement* setting);
A3DStatus traverseMaterial(const A3DGraphMaterialData& sData, _TiXmlElement* setting);
//######################################################################################################################
int traverseMaterialProperties(const A3DEntity* pEntity, _TiXmlElement* xmlfather);
A3DStatus traverseMaterialProperties(const A3DEntity* pEntity, _TiXmlElement* xmlfather);
//######################################################################################################################
A3DVoid traverseFeatureTree(const A3DFRMTree* pFeatFeatureTree, _TiXmlElement* xmlfather);
//######################################################################################################################
int traverseToleranceSizeValue(const A3DMDToleranceSizeValue* pToleranceSizeValue, _TiXmlElement* setting);
A3DStatus traverseToleranceSizeValue(const A3DMDToleranceSizeValue* pToleranceSizeValue, _TiXmlElement* setting);
//######################################################################################################################
int traverseConstraint(const A3DAsmConstraint* pAsmConstraint, _TiXmlElement* xmlfather);
A3DStatus traverseConstraint(const A3DAsmConstraint* pAsmConstraint, _TiXmlElement* xmlfather);
//######################################################################################################################
A3DStatus traversePublicationSet(const A3DAsmPublicationSet* pPublicationSet, _TiXmlElement* pXMLParent);
//######################################################################################################################
enum PRC2XMLFlagArgs
{
EMPTY=0x0,
DUMPPICTURES=0x1,
DUMPRELATIONSHIPS=0x2
};
#endif /* __A3DTESTERREAD_H__ */