SmApiPrimitives.h#
Fully qualified name: SM_API/inc/SmApiPrimitives.h
File members: SM_API/inc/SmApiPrimitives.h
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
/**********************************************************************
FILE NAME: SmPrimitives.h
PURPOSE:
Contains popular, high level "C" type functions that create
primitive objects (cube, sphere, etc).
GENERAL NOTES:
High level functions may assume some input parameters
for ease of use. For maximum flexibility, related functions
can be found in SmPrimitiveCreation
**********************************************************************/
#ifndef __SmApiPrimitives_H__
#define __SmApiPrimitives_H__
#ifndef __SmApiTypes_H__
#include <SmApiTypes.h>
#endif
#include <SmTArray.h>
class SmContext;
class SmBrep;
class SmEdge;
class SmEdgeuse;
class SmFace;
class SmVector3d;
class SmBSplineCurve;
SMAPI_EXPORT SmApiStatus SmApiCreatePlane
(
const SmVector3d& crOrigin,
double dX,
double dY,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePlane
(
const SmVector3d& crOrigin,
double dLength,
double dWidth,
SmPlane*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePlanarCircle
(
const SmVector3d& crOrigin,
double dRadius,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateBox
(
const SmVector3d& crOrigin,
double dLength,
double dWidth,
double dHeight,
SmBrep*& pResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateSphere
(
const SmVector3d& crOrigin,
double dRadius,
SmBrep*& pResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateCone
(
const SmVector3d& crOrigin,
double dRadiusBase,
double dRadiusTop,
double dHeight,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateCone
(
const SmVector3d& crOrigin,
double dRadiusBase,
double dRadiusTop,
double dHeight,
SmSurface*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateCylinder
(
const SmVector3d& crOrigin,
double dRadius,
double dHeight,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateCylinder
(
const SmVector3d& crOrigin,
double dRadius,
double dHeight,
SmSurface*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateTorus
(
const SmVector3d& crOrigin,
double dRadiusMajor,
double dRadiusMinor,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateTorus
(
const SmVector3d& crOrigin,
double dRadiusMajor,
double dRadiusMinor,
SmSurface*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePyramid
(
const SmVector3d& crOrigin,
double dLength,
double dHeight,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateCylindricalBox
(
const SmVector3d& crOrigin,
double dLength,
double dInsideRadius,
double dOutsideRadius,
double dStartAngleDeg,
double dEndAngleDeg,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePartialSphere
(
const SmVector3d& crOrigin,
double dRadius,
double dStartAngleDeg,
double dEndAngleDeg,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateSphereNoPole
(
const SmVector3d& crCenter,
double dRadius,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePartialCone
(
const SmVector3d& crOrigin,
double dRadiusBase,
double dRadiusTop,
double dHeight,
double dStartAngleDeg,
double dEndAngleDeg,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateConeEllipticEnds
(
double dFrontRadius,
double dRearRadius,
double dHeight,
double dFrontYTiltDeg,
double dRearYTiltDeg,
double dFrontXTiltDeg,
double dRearXTiltDeg,
SmBoolean bEndCaps,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePartialCylinder
(
const SmVector3d& crOrigin,
double dRadius,
double dHeight,
double dStartAngleDeg,
double dEndAngleDeg,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreatePartialTorus
(
const SmVector3d& crOrigin,
double dRadiusMajor,
double dRadiusMinor,
double dStartAngleDeg,
double dEndAngleDeg,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateOffsetProfile
(
const SmTArray<SmCurve*>& rPlanarCurves,
double dOffsetDistance,
ULONG lOffsetType,
SmBoolean bRoundCorners,
SmBoolean bShellResult,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateBlendPrimitive
(
SmBrep* pBrep,
SmEdge* pEdge1,
SmFace* pFace1,
SmEdge* pEdge2,
SmFace* pFace2,
SmBoolean bSameDirCurves,
SmFace*& rpBlendFace
);
SMAPI_EXPORT SmApiStatus SmApiCreateSwungPrimitive
(
SmTArray<SmCurve*>& rXYCurves,
SmTArray<SmCurve*>& rXZCurves,
double dScale,
SmBrep*& rpResult
);
SMAPI_EXPORT SmApiStatus SmApiCreateSkinPrimitive
(
const SmTArray<ULONG>& rCurvesInEachProfile,
const SmTArray<const SmCurve*>& r3DCurves,
ULONG lDegree,
SmBoolean bCapEnds,
SmBrep*& rpResult,
SmTArray<SmFace*>* pOptStartFaces,
SmTArray<SmFace*>* pOptSideFaces,
SmTArray<SmFace*>* pOptEndFaces
);
SMAPI_EXPORT SmApiStatus SmApiCreateSkinFromFaces
(
SmTArray<SmFace*>& rFaces,
ULONG lDegree,
SmTArray<SmFace*>& rNewFaces,
SmBrep*& rpResult
);
#endif