Close

Relief for ODA Team in Ukraine

Learn more
ODA Drawings SDK
OdDb3dSolid::getSlice Method (OdDbSurface*, bool, OdDb3dSolidPtr&)
Syntax
C++
virtual OdResult getSlice(OdDbSurface* pSurface, bool bGetNegHalfToo, OdDb3dSolidPtr& pNegHalfSolid);

Slices the solid with a surface and transforms the native solid to be the portion remaining on the positive side of the slicing surface normal. 

 

Parameters
Description
pSurface
[in] Pointer to a slicing surface.
bGetNegHalfToo
[in] Flag determining whether the other (negative) part of the native solid should be created as a separate solid (when true).
pNegHalfSolid
[out] Reference to a pointer to the created solid representing the negative half of the native solid. If bGetNegHalfToo is false, the NULL value is returned.

eOk if the native solid was successfully sliced or an appropriate error code in other case. If pSurface pointer is NULL or the solid is empty, returns eInvalidInput. If the specified surface does not intersect this solid, then this solid and pNegHalfSolid are left unchanged, eNotApplicable is returned.

The native solid will be transformed to a resulting body which is located in the negative side of the surface normal. 

The caller of this function is responsible for the memory used by the object pointed to by pNegHalfSolid (negative part of the sliced solid) when the function finishes. In case when pNegHalfSolid is added to a database, the database takes responsibility for the memory. In case when pNegHalfSolid is not added to a database, the caller must release memory when it is no longer needed to avoid a memory leak.

Copyright © 2002-2022. Open Design Alliance All rights reserved.