Files
Hoops_Exchange/exchange/exchangesource/Collision/visitor/BrepTraverse.h
2025-12-15 23:22:33 +08:00

146 lines
3.8 KiB
C++

/***********************************************************************************************************************
*
* 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 TOPO_TRAVERSE
#define TOPO_TRAVERSE
#include "Connector.h"
class A3DVisitor;
////////////////////////////////////////////////
// Brep
////////////////////////////////////////////////
class A3DBrepDataConnector : public A3DConnector
{
public:
A3DTopoBrepDataData m_sBrepData;
A3DBrepDataConnector(const A3DTopoBrepData *pBrep);
~A3DBrepDataConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// connex
////////////////////////////////////////////////
class A3DConnexConnector : public A3DConnector
{
public:
A3DTopoConnexData m_sConnexData;
A3DConnexConnector(const A3DTopoConnex *pConnex);
~A3DConnexConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// Shell
////////////////////////////////////////////////
class A3DShellConnector : public A3DConnector
{
public:
A3DTopoShellData m_sShellData;
A3DShellConnector(const A3DTopoShell *pShell);
~A3DShellConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// Face
////////////////////////////////////////////////
class A3DFaceConnector : public A3DConnector
{
public:
A3DTopoFaceData m_sFaceData;
A3DFaceConnector(const A3DTopoFace *pFace);
~A3DFaceConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// Loop
////////////////////////////////////////////////
class A3DLoopConnector : public A3DConnector
{
public:
A3DTopoLoopData m_sLoopData;
A3DLoopConnector(const A3DTopoLoop *pLoop);
~A3DLoopConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// CoEdge
////////////////////////////////////////////////
class A3DCoEdgeConnector : public A3DConnector
{
public:
A3DTopoCoEdgeData m_sCoEdgeData;
A3DCoEdgeConnector(const A3DTopoCoEdge *pCoEdge);
~A3DCoEdgeConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// Edge
////////////////////////////////////////////////
class A3DEdgeConnector : public A3DConnector
{
public:
A3DTopoEdgeData m_sEdgeData;
A3DEdgeConnector(const A3DTopoEdge *pEdge);
~A3DEdgeConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
////////////////////////////////////////////////
// Vertex
////////////////////////////////////////////////
class A3DUniqueVertexConnector : public A3DConnector
{
public:
A3DTopoUniqueVertexData m_sVertexData;
A3DUniqueVertexConnector(const A3DTopoVertex *pVertex);
~A3DUniqueVertexConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
class A3DMultipleVertexConnector : public A3DConnector
{
public:
A3DTopoMultipleVertexData m_sVertexData;
A3DMultipleVertexConnector(const A3DTopoVertex *pVertex);
~A3DMultipleVertexConnector();
A3DStatus Traverse(A3DVisitorContainer* psVisitor) const;
};
#endif