SmApiUsdGeometryValidate.h#

Fully qualified name: SM_API_USD/inc/SmApiUsdGeometryValidate.h

File members: SM_API_USD/inc/SmApiUsdGeometryValidate.h

// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
/******************************************************************/
#ifndef _SM_API_USD_GEOMETRY_VALIDATE_H_
#define _SM_API_USD_GEOMETRY_VALIDATE_H_

#include "SmApiUsdConfig.h"
#include <SmMessages.h>

#include "UsdBrepHeaders.h" // pxr headers with warning suppression (BREP_USD_DATA)
#include <pxr/usd/usd/prim.h>

#include <cstddef>
#include <string>
#include <vector>

struct SmApiUsdGeometryFailure
{
    std::size_t  m_lBrep = 0;
    std::string  m_sOwner;
    std::string  m_sCheck;
    std::string  m_sDetail;
};

struct SmApiUsdGeometryResult
{
    std::size_t                           m_lBrepCount = 0;
    std::size_t                           m_lInvalidBreps = 0;
    std::vector<SmApiUsdGeometryFailure>  m_sFailures;
    std::string                           m_sMessage;
    double                                m_dImportSeconds = 0.0;
    double                                m_dValidateSeconds = 0.0;
};

SM_API_USD_EXPORT SmStatus SmApiUsdGeometryValidate
(
    const pxr::UsdPrim                      & crBrepArray,
    int                                       iLevel,
    SmApiUsdGeometryResult                  & rResult
);

#endif // _SM_API_USD_GEOMETRY_VALIDATE_H_