SmApiUsdTessellate.h#
Fully qualified name: SM_API_USD/inc/SmApiUsdTessellate.h
File members: SM_API_USD/inc/SmApiUsdTessellate.h
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
/******************************************************************/
#ifndef _SM_API_USD_TESSELLATE_H_
#define _SM_API_USD_TESSELLATE_H_
#include "SmApiUsdConfig.h"
#include <SmMessages.h>
#include <SmTypes.h>
#include <SmApiTessellationParams.h>
#include "UsdBrepHeaders.h" // pxr headers with warning suppression (BREP_USD_DATA)
#include <pxr/base/gf/vec3f.h>
#include <pxr/base/tf/token.h>
#include <pxr/base/vt/array.h>
#include <pxr/usd/sdf/path.h>
#include <cstdint>
#include <string>
#include <vector>
struct SmApiUsdTessellatedBrep
{
std::int64_t m_iPackedBrepIndex = -1;
SmStatus m_sStatus = SM_ERR;
std::string m_sMessage;
pxr::VtIntArray m_sFailedFaces;
SmStatus m_sBoundaryStatus = SM_SUCCESS;
pxr::VtArray<pxr::GfVec3f> m_sBoundaryPoints;
pxr::VtIntArray m_sBoundaryVertexCounts;
pxr::VtArray<pxr::GfVec3f> m_sExtent;
pxr::VtArray<pxr::GfVec3f> m_sPoints;
pxr::VtIntArray m_sFaceVertexCounts;
pxr::VtIntArray m_sFaceVertexIndices;
pxr::VtArray<pxr::GfVec3f> m_sNormals;
pxr::VtIntArray m_sNormalsIndices;
pxr::TfToken m_sNormalsInterpolation;
pxr::TfToken m_sSubdivisionScheme;
pxr::VtArray<pxr::VtIntArray> m_sSubsetIndices;
pxr::VtArray<pxr::SdfPath> m_sSubsetMaterialPaths;
pxr::SdfPath m_sMaterialPath;
};
SM_API_USD_EXPORT SmStatus SmApiUsdTessellateBrepArray
(
const pxr::UsdPrim & crBrepArray,
const SmTessellationParams & crParams,
SmBoolean bHealerIsEnabled,
double dBoundaryAngleTolDeg,
std::vector<SmApiUsdTessellatedBrep> & rResults
);
#endif // _SM_API_USD_TESSELLATE_H_