FAQ: What are the AdaptAndReplace/CopyAndAdapt parameters used during a STEP export?

During a STEP export with HOOPS Exchange, some NURBS conversion of the model is performed.

The same result can be reproduced by calling the AdaptAndReplace or CopyAndAdapt functions, as shown in the BrepAdaptor sample, with the following parameters:

const A3DUns32 NUM_VALID_SURFACES = 0; // All surfaces are converted
A3DUns32 ACCEPTED_SURFACES[NUM_VALID_SURFACES] = {};

const A3DUns32 NUM_VALID_CURVES = 0;  // All curves are converted
A3DUns32 ACCEPTED_CURVES[NUM_VALID_CURVES] = {};

sCopyAndAdaptBrepModelData.m_dTol = 0.;	  // Keep the model tolerance
sCopyAndAdaptBrepModelData.m_bUseSameParam = false;
sCopyAndAdaptBrepModelData.m_bForceComputeUV = true;
sCopyAndAdaptBrepModelData.m_bForceCompute3D = true;
sCopyAndAdaptBrepModelData.m_bSplitFaces = true;
sCopyAndAdaptBrepModelData.m_bSplitClosedFaces = true;
sCopyAndAdaptBrepModelData.m_bDeleteCrossingUV = true;
sCopyAndAdaptBrepModelData.m_bAllowUVCrossingSeams = false;
sCopyAndAdaptBrepModelData.m_bForceDuplicateGeometries = true;
sCopyAndAdaptBrepModelData.m_bClampTolerantUVCurvesInsideUVDomain = false;
sCopyAndAdaptBrepModelData.m_bContinueOnError = false;
sCopyAndAdaptBrepModelData.m_uiAcceptableSurfacesSize = NUM_VALID_SURFACES;
sCopyAndAdaptBrepModelData.m_puiAcceptableSurfaces = &ACCEPTED_SURFACES[0];
sCopyAndAdaptBrepModelData.m_uiAcceptableCurvesSize = NUM_VALID_CURVES;
sCopyAndAdaptBrepModelData.m_puiAcceptableCurves = &ACCEPTED_CURVES[0];