SmApiUsdHeal.h#
Fully qualified name: SM_API_USD/inc/SmApiUsdHeal.h
File members: SM_API_USD/inc/SmApiUsdHeal.h
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
/******************************************************************/
#ifndef _SM_API_USD_HEAL_H_
#define _SM_API_USD_HEAL_H_
#include "SmApiUsdConfig.h"
#include <SmMessages.h>
#include "UsdBrepHeaders.h" // pxr headers with warning suppression (BREP_USD_DATA)
#include <pxr/usd/sdf/layer.h>
#include <pxr/usd/sdf/path.h>
#include <pxr/usd/usd/prim.h>
#include <pxr/usd/usd/stage.h>
#include <cstddef>
#include <memory>
#include <string>
#include <vector>
namespace UsdBrepData
{
class UsdBrepArrayData;
}
struct SmApiUsdBrepArraySite
{
pxr::SdfLayerHandle m_sLayer;
pxr::SdfPath m_sSpecPath;
std::vector<pxr::SdfPath> m_sPrimPaths;
std::string m_sProblem;
};
SM_API_USD_EXPORT SmStatus SmApiUsdFindBrepArraySites
(
const pxr::UsdStagePtr & crStage,
std::vector<SmApiUsdBrepArraySite> & rSites
);
struct SmApiUsdHealedBrepArray
{
pxr::SdfPath m_sPrimPath;
std::string m_sMessage;
std::size_t m_lBrepCount = 0;
std::shared_ptr<const UsdBrepData::UsdBrepArrayData> m_pArrays;
};
SM_API_USD_EXPORT SmStatus SmApiUsdHealBrepArray
(
const pxr::UsdPrim & crBrepArray,
SmApiUsdHealedBrepArray & rHealed
);
SM_API_USD_EXPORT SmStatus SmApiUsdWriteHealedBrepArray
(
const SmApiUsdHealedBrepArray & crHealed,
const pxr::UsdStagePtr & crStage,
std::string & rMessage
);
#endif // _SM_API_USD_HEAL_H_