SmApiTrimmedSurfaces.h#

Fully qualified name: SM_API/inc/SmApiTrimmedSurfaces.h

File members: SM_API/inc/SmApiTrimmedSurfaces.h

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

/**********************************************************************
FILE NAME: SmApiTrimmedSurfaces.h

PURPOSE:
    Contains API-level functions and utilities for creating and
    manipulating trimmed surfaces (surface trimming operations,
    helpers, and related types).

GENERAL NOTES:
    High level functions may assume some input parameters
    for ease of use. For maximum flexibility, related functions
    can be found in SMLib.
**********************************************************************/

#ifndef __SmApiTrimmedSurfaces_H__
#define __SmApiTrimmedSurfaces_H__

#ifndef __SmApiTypes_H__
#include <SmApiTypes.h>
#endif

#include <SmTArray.h>

class SmContext;
class SmBrep;
class SmSurface;
class SmVector3d;

SMAPI_EXPORT SmApiStatus SmApiTrimSurfaceWith3dCurves(
    SmSurface* pSurface,
    const SmTArray<ULONG>& crCurveLoops,
    const SmTArray<SmCurve*>& cr3DCurves,
    SmBrep*& rpResult
);

SMAPI_EXPORT SmApiStatus SmApiTrimProjectParallel(
    SmObject* pObject,
    SmBSplineCurve* crCurveToProject,
    const SmVector3d& crProjectionDirection,
    const SmPoint3d & crReferencePoint,
    SmTrimType eTrimType,
    SmBrep*& rpResult
);

SMAPI_EXPORT SmApiStatus SmApiCreatePlanarFaces(
    const SmTArray<SmCurve*>& crPlanarCurves,
    SmBrep*& rpResult
);

#endif