/*********************************************************************************************************************** * * 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. * ***********************************************************************************************************************/ #ifndef __A3DTESTERREAD_H__ #define __A3DTESTERREAD_H__ #include #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 # ifdef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES # undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES # define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 # endif #else #define sprintf_s(buf, buf_size, ...) sprintf((buf), __VA_ARGS__) #endif #ifdef __APPLE__ # include "TargetConditionals.h" # if TARGET_OS_MACCATALYST != 1 && (TARGET_OS_IPHONE == 1 || TARGET_IPHONE_SIMULATOR == 1) # include "tinyxml.h" # include "common.hpp" # else # include # include # include "../common.hpp" # endif #elif defined(__ANDROID__) # include # include "common.hpp" #else # include # include # 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, bool bDumpPictures); //###################################################################################################################### void setTextureDirectory(const MY_CHAR *texturePath); // use this to also output texture pictures files //###################################################################################################################### void setAttributePtr(const A3DUTF8Char* pcAttribName, const A3DEntity* pElement, _TiXmlElement* setting); //###################################################################################################################### unsigned int getPRC2XMLID(const A3DEntity* pElement); //###################################################################################################################### void setAttributePRC2XMLID(const A3DEntity* pElement, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traversePRC2XMLIDs(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DEntity** pp, _TiXmlElement* setting); //###################################################################################################################### void setDoubleAttribute(_TiXmlElement* psElement, const char* name, double val); //###################################################################################################################### A3DStatus traverseDoubles(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DDouble* pd, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseUInts(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns32* pui, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseUChars(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DUns8* pui, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseBools(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DBool* pb, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traversePoint2d(const A3DUTF8Char* name, const A3DVector2dData& sData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traversePoint(const A3DUTF8Char* name, const A3DVector3dData& sData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traversePoints(const A3DUTF8Char* name, const A3DUns32 uiSize, const A3DVector3dData* pv, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseInterval(const A3DIntervalData* 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); //###################################################################################################################### A3DStatus traverseCartesianTransformationData(const A3DMiscCartesianTransformationData& oTrsf, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseCartesianTransformation(const A3DMiscCartesianTransformation* pTransfo3d, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseSource(const A3DEntity* pEntity, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseGlobal(const A3DGlobal* pGlobal, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseModel(const A3DAsmModelFile* pModelFile, _TiXmlElement* setting); //###################################################################################################################### int dumpRelationships(const A3DBIMData* pBimData, _TiXmlElement* model); //###################################################################################################################### A3DStatus traverseFonts(_TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseCurve(const A3DCrvBase* pCrv, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseSurface(const A3DSurfBase* pSrf, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseSrfPlane(const A3DSurfPlane* pSrf, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseAnnotation(const A3DMkpAnnotationEntity* pAnnot, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkup(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseLeader(const A3DMkpLeader* pLeader, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseLinkedItem(const A3DMiscMarkupLinkedItem* pMkpLinkedItem, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseEntityReference(const A3DMiscEntityReference* pEntityReference, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseSingleWireBody(const A3DTopoSingleWireBody* pSingleWireBody, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseTopoContext(const A3DTopoContext* pContext, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseBodyContent(const A3DTopoBody* pBody, _TiXmlElement* setting,unsigned char &ucBehav); //###################################################################################################################### A3DStatus traverseBrepData(const A3DTopoBrepData* pBrepData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseTessBase(const A3DTessBase* pTess, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseView(const A3DMkpView* pView, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseRepItem(const A3DRiRepresentationItem* pRepItem, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseCSys(const A3DRiCoordinateSystem* pCSys, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseTextureApplication(const A3DGraphTextureApplicationData& sData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseTextureDefinition(const A3DGraphTextureDefinitionData& sData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupTess(const A3DTessMarkup* pMarkupTess, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupDefinition(const A3DMkpMarkup* pMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupText(const A3DMarkupText* pA3DMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupRichText(const A3DMarkupRichText* pA3DMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupDatum(const A3DMarkupDatum* pA3DMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupTextProperties(const A3DMDTextProperties* pA3DTextProperties, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupGDT(const A3DMarkupGDT* psMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMarkupDimension(const A3DMarkupDimension* pMarkup, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseDrawing(const A3DDrawingModel * pDrawing, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMaterial(const A3DGraphMaterialData& sData, _TiXmlElement* setting); //###################################################################################################################### A3DStatus traverseMaterialProperties(const A3DEntity* pEntity, _TiXmlElement* xmlfather); //###################################################################################################################### A3DVoid traverseFeatureTree(const A3DFRMTree* pFeatFeatureTree, _TiXmlElement* xmlfather); //###################################################################################################################### A3DStatus traverseToleranceSizeValue(const A3DMDToleranceSizeValue* pToleranceSizeValue, _TiXmlElement* setting); //###################################################################################################################### 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__ */