Files
Hoops_Exchange/exchange/exchangesource/Collision/visitor/VisitorTessellation.cpp
2025-12-15 22:06:49 +08:00

91 lines
3.0 KiB
C++

/***********************************************************************************************************************
*
* 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.
*
***********************************************************************************************************************/
#include "VisitorTessellation.h"
#include "TessConnector.h"
#include "VisitorTessellation.h"
#include "TessConnector.h"
A3DStatus A3DVisitorTessellation::visitEnter(const A3DTessDataConnector& sTessConnector)
{
m_uCurrentFaceIndice = 0;
//Get point Array
A3DStatus iRet = A3D_SUCCESS;
unsigned int uPointSize, uNormalSize, uUVSize, uFaceSize;
double* pdPoint, *pdNormal, *pdUV;
CHECK_RET(sTessConnector.Points(pdPoint, uPointSize));
CHECK_RET(sTessConnector.Normals(pdNormal, uNormalSize));
CHECK_RET(sTessConnector.UV(pdUV, uUVSize));
uFaceSize = sTessConnector.FacesSize();
unsigned int uIFaceCount;
for(uIFaceCount = 0; uIFaceCount<uFaceSize; uIFaceCount++)
{
std::vector<unsigned> auTriangleWithPointNormalInidces;
std::vector<unsigned> auTrinagleWithPointNromalUVindices;
CHECK_RET(sTessConnector.IndicesPerFaceAsTriangle(uIFaceCount,
auTriangleWithPointNormalInidces,
auTrinagleWithPointNromalUVindices));
/****************************************************************************
Please create Your mesh here
*****************************************************************************/
}
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitLeave(const A3DTessDataConnector& /*sTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitEnter(const A3DFaceTessDataConnector& /*sTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitLeave(const A3DFaceTessDataConnector& /*sTessConnector*/)
{
m_uCurrentFaceIndice++;
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitEnter(const A3DRiConnector& /*sTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitLeave(const A3DRiConnector& /*sTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitEnter(const A3DMarkupTessConnector& /*sMarkupTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitLeave(const A3DMarkupTessConnector& /*sMarkupTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitEnter(const A3DWireTessDataConnector& /*sWireTessConnector*/)
{
return A3D_SUCCESS;
}
A3DStatus A3DVisitorTessellation::visitLeave(const A3DWireTessDataConnector& /*sWireTessConnector*/)
{
return A3D_SUCCESS;
}