SmApiBoolean#

Defined in SM_API/inc/SmApiBrep.h

SmApiStatus SmApiBoolean(
SmBrep *pBrep1,
SmBrep *pBrep2,
SmBooleanOperationType lOperation,
SmBrep *&rpResult,
)#

Two-Brep Booleans (SmApiBoolean, SmApiBooleanUnion, SmApiBooleanDifference, SmApiBooleanIntersection, SmApiBooleanMerge, SmApiBooleanWithCurves, SmApiBooleanWithOptions, SmApiNonManifoldBoolean), in addition to the per-parameter notes:

  • pBrep2 is not deleted for SM_BO_PARTIAL_MERGE, SM_BO_IMPRINT_CLASSIFY, or SmApiBooleanWithOptions with bKeepOtherBrep = TRUE. SM_BO_IMPRINT does delete it.

  • A NULL operand, pBrep1 == pBrep2, or SM_BO_EXTRACT_SEPARATE (which has no single result) returns SM_ERR_INVALID_INPUT with both inputs untouched.

  • rpResult is NULL on failure.

Parameters:
  • pBrep1 –

    [in/out]: Modified in place and returned as rpResult on success;

    remains allocated but may be modified on failure

  • pBrep2 –

    [in ]: Deleted on success; remains allocated but may be modified

    on failure

  • lOperation – [in ]: specify boolean operation

  • rpResult – [out]: Aliases pBrep1 on success; NULL on failure