SmApiPolygons.h#
Fully qualified name: SM_API/inc/SmApiPolygons.h
File members: SM_API/inc/SmApiPolygons.h
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
/**********************************************************************
FILE NAME: SmApiPolygons.h
PURPOSE:
Contains high level "C" type functions that operate on SmPolyBreps.
GENERAL NOTES:
High level functions may assume some input parameters
for ease of use. For maximum flexibility, related functions
can be found in SmMerge, etc
**********************************************************************/
#ifndef __SmApiPolygons_H__
#define __SmApiPolygons_H__
#ifndef __SmApiTypes_H__
#include <SmApiTypes.h>
#endif
#include <SmPolyMerge.h>
class SmContext;
class SmBrep;
class SmPolyBrep;
SMAPI_EXPORT SmApiStatus SmApiPolyBoolean(
SmPolyBrep* pPolyBrep1,
SmPolyBrep* pPolyBrep2,
SmPolyBooleanOperationType lOperation,
SmPolyBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiPolyBooleanUnion(
SmPolyBrep* pPolyBrep1,
SmPolyBrep* pPolyBrep2,
SmPolyBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiPolyBooleanDifference(
SmPolyBrep* pPolyBrep1,
SmPolyBrep* pPolyBrep2,
SmPolyBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiPolyBooleanIntersection(
SmPolyBrep* pPolyBrep1,
SmPolyBrep* pPolyBrep2,
SmPolyBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiPolyBooleanMerge(
SmPolyBrep* pPolyBrep1,
SmPolyBrep* pPolyBrep2,
SmPolyBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiPolyBrepIsManifoldSolid(
const SmPolyBrep* pPolyBrep,
SmBoolean & rbIsManifoldSolid
);
SMAPI_EXPORT SmApiStatus SmApiPolyBrepComputeVolume(
const SmPolyBrep* pPolyBrep,
double & rdVolume
);
SMAPI_EXPORT SmApiStatus SmApiPolyBrepComputeMassProperties(
const SmPolyBrep* pPolyBrep,
double dDensity,
const SmPoint3d & crOrigin,
double & rdArea,
double & rdVolume,
double & rdMass,
SmPoint3d & rCentroid,
SmVector3d & rMomentsOfInertia,
SmVector3d & rProductsOfInertia
);
SMAPI_EXPORT SmApiStatus SmApiPolyBrepCopy(
const SmPolyBrep* pPolyBrep,
SmPolyBrep*& rpResult
);
#endif