Init
This commit is contained in:
206
exchange/exchangesource/DumpFeatureTree/Visitor/Visitors.h
Normal file
206
exchange/exchangesource/DumpFeatureTree/Visitor/Visitors.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 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 A3D_VISITOR
|
||||
#define A3D_VISITOR
|
||||
|
||||
//#define CONNECT_TRANSFO 0x0001
|
||||
//#define CONNECT_COLORS 0x0002
|
||||
//#define CONNECT_MESH 0x0004
|
||||
#define CONNECT_ASSEMBLY_TREE 0x008
|
||||
//#define CONNECT_BREP 0x0010
|
||||
//#define CONNECT_PMI 0x00020
|
||||
//#define CONNECT_VIEWS 0x00040
|
||||
#define CONNECT_FEATURE 0x00080
|
||||
|
||||
|
||||
#include "TreeTraverse.h"
|
||||
#ifdef CONNECT_PMI
|
||||
#include "MarkupTraverse.h"
|
||||
#endif
|
||||
#ifdef CONNECT_BREP
|
||||
#include "BrepTraverse.h"
|
||||
#endif
|
||||
#ifdef CONNECT_PMI
|
||||
#include "MarkupTraverse.h"
|
||||
#endif
|
||||
#ifdef CONNECT_MESH
|
||||
#include "TessConnector.h"
|
||||
#endif
|
||||
#ifdef CONNECT_VIEWS
|
||||
#include "ViewTraverse.h"
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
|
||||
#ifndef CALL_A3D_FCTION
|
||||
#define CALL_A3D_FCTION(fctname, params) \
|
||||
fctname params
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_RET_CALL_A3D_FCTION
|
||||
#define CHECK_RET_CALL_A3D_FCTION(fctname, params) \
|
||||
{ \
|
||||
if ((iRet = fctname params)!=A3D_SUCCESS) \
|
||||
{ /*__debugbreak();*/ return iRet; } \
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_RET
|
||||
#define CHECK_RET(function_call) \
|
||||
{\
|
||||
if ((iRet = function_call)!=A3D_SUCCESS) \
|
||||
return iRet; \
|
||||
}
|
||||
#endif
|
||||
|
||||
class A3DConnector;
|
||||
class A3DVisitorContainer;
|
||||
class A3DVisitor
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4251) // Suppress the warning C4251 because it leads to have that kind of warning : "warning
|
||||
// C4251: 'A3DVisitorColorMaterials::m_apsCascadedAttribute' : class 'std::vector<_Ty>' needs to have dll-interface to
|
||||
// be used by clients of class 'A3DVisitorColorMaterials"
|
||||
// This is because of the "dllexport" on the visitor classes, as they use stl members and it seems that stl causes
|
||||
// warning with dllexport with microsoft compiler
|
||||
#endif // _MSC_VER
|
||||
|
||||
protected:
|
||||
A3DVisitorContainer* m_psContainer;
|
||||
std::string m_strName;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif // _MSC_VER
|
||||
|
||||
public :
|
||||
A3DVisitor(std::string strName, A3DVisitorContainer* psContainer = NULL)
|
||||
: m_strName(strName), m_psContainer(psContainer){}
|
||||
|
||||
virtual ~A3DVisitor() {}
|
||||
|
||||
virtual std::string GetName() const { return m_strName; }
|
||||
|
||||
//Assembly
|
||||
#ifdef CONNECT_ASSEMBLY_TREE
|
||||
virtual A3DStatus visitEnter(const A3DModelFileConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DModelFileConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DProductOccurrenceConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DProductOccurrenceConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DPartConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DPartConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DRiConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiBrepModelConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DRiBrepModelConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiSetConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DRiSetConnector& /*sConnector*/) { return A3D_SUCCESS;}
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DPolyRiBrepModelConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DPolyRiBrepModelConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
#endif
|
||||
//Markup
|
||||
#ifdef CONNECT_PMI
|
||||
virtual A3DStatus visitEnter(const A3DMkpAnnotationEntityConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMkpAnnotationEntityConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMkpAnnotationSetConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMkpAnnotationSetConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMkpAnnotationItemConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMkpAnnotationItemConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMarkupConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMarkupConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMarkupDimensionConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMarkupDimensionConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMarkupGDTConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMarkupGDTConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMarkupDatumConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMarkupDatumConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMarkupTessConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMarkupTessConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
#endif
|
||||
//Brep
|
||||
#ifdef CONNECT_BREP
|
||||
virtual A3DStatus visitEnter(const A3DBrepDataConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DBrepDataConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DConnexConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DConnexConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DShellConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DShellConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DFaceConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFaceConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DLoopConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DLoopConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DCoEdgeConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DCoEdgeConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DEdgeConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DEdgeConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DUniqueVertexConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DUniqueVertexConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DMultipleVertexConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMultipleVertexConnector&) { return A3D_SUCCESS; }
|
||||
#endif
|
||||
//Mesh
|
||||
#ifdef CONNECT_MESH
|
||||
virtual A3DStatus visitEnter(const A3DTessDataConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DTessDataConnector&) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DFaceTessDataConnector&) {return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFaceTessDataConnector&) {return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DWireTessDataConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DWireTessDataConnector&) { return A3D_SUCCESS; }
|
||||
#endif
|
||||
//Views
|
||||
#ifdef CONNECT_VIEWS
|
||||
virtual A3DStatus visitEnter(const A3DMkpViewConnector&) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DMkpViewConnector&) { return A3D_SUCCESS; }
|
||||
#endif
|
||||
#ifdef CONNECT_FEATURE
|
||||
virtual A3DStatus visitEnter(const A3DFRMFeatureConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFRMFeatureConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DFRMParameterConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFRMParameterConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DFRMTreeConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFRMTreeConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DFRMLinkedItemConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DFRMLinkedItemConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user